Upstream Changes#

Deprecated resources and functions#

The resources and functions listed below were renamed in a previous version. With this release, the original names have been fully deprecated. Any existing references to the original name will need to be updated.

{{< chooser language "typescript,python,go,csharp,java,yaml" >}}

{{% choosable language typescript %}}

- const test = new aws.applicationloadbalancing.TargetGroup("test", {
+ const test = new aws.lb.TargetGroup("test", {
      port: 80,
      protocol: "HTTP",
      vpcId: main.id,
});

{{% /choosable %}}

{{% choosable language python %}}

-  test = aws.applicationloadbalancing.TargetGroup("test",
+  test = aws.lb.TargetGroup("test",
       port=80,
       protocol="HTTP",
       vpc_id=main.id)

{{% /choosable %}}

{{% choosable language go %}}

- "github.com/pulumi/pulumi-aws/sdk/v5/go/aws/applicationloadbalancing"
+ "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb"
 
- _, err = applicationloadbalancing.NewTargetGroup(ctx, "test", &lb.TargetGroupArgs{
+ _, err = lb.NewTargetGroup(ctx, "test", &lb.TargetGroupArgs{
      Port:     pulumi.Int(80),
      Protocol: pulumi.String("HTTP"),
      VpcId:    main.ID(),
  })

{{% /choosable %}}

{{% choosable language csharp %}}

- var test = new Aws.ApplicationLoadBalancing.TargetGroup("test", new()
+ var test = new Aws.LB.TargetGroup("test", new()
  {
      Port = 80,
      Protocol = "HTTP",
      VpcId = main.Id,
  });

{{% /choosable %}}

{{% choosable language java %}}

- import com.pulumi.aws.applicationLoadBalancing.TargetGroup;
+ import com.pulumi.aws.lb.TargetGroup;
 
    var test = new TargetGroup("test", TargetGroupArgs.builder()
        .port(80)
        .protocol("HTTP")
        .vpcId(main.id())
        .build());

{{% /choosable %}}

{{% choosable language yaml %}}

- type: aws:applicationLoadBalancing:TargetGroup
+ type: aws:lb:TargetGroup
    properties:
      port: 80
      protocol: HTTP
      vpcId: ${main.id}

{{% /choosable %}}

{{< /chooser >}}

Resources#

Functions#

Remove the deprecated AWS SDK v2 aws.sdk property (TypeScript only)#

The aws.sdk property previously provided a direct way to access the AWS SDK v2 from runtime code. The AWS SDK v2 has been deprecated by AWS, and as a result this property is being removed. The AWS SDK v3 is available to import and use directly via the various @aws-sdk/client-* libraries. See https://github.com/pulumi/pulumi-aws/pull/2584 for more details.

import * as aws from "@pulumi/aws";
+ import * as s3sdk from "@aws-sdk/client-s3";
 
const bucket = new aws.s3.Bucket("my-bucket");
 
 bucket.onObjectCreated("bucket-callback", async (event) => {
-    const s3 = new aws.sdk.S3({});
+    const s3 = new s3sdk.S3({});
     const recordFile = "lastPutFile.json";
 
     const records = event.Records || [];
     for (const record of records) {
         const key = record.s3.object.key;
         if (key !== recordFile) {
             // Construct an event arguments object.
             const args = {
                 key: record.s3.object.key,
                 size: record.s3.object.size,
                 eventTime: record.eventTime,
             };
 
             const res = await s3.putObject({
                 Bucket: bucket.id.get(),
                 Key: recordFile,
                 Body: JSON.stringify(args),
-            }).promise();
+            }));
         }
     }
 });

WafV2 is now defined recursively#

The wafv2 module has been refactored to properly define recursive types resulting in a significant decrease in SDK size. Any references to RuleGroupRuleStatement or WebAclRuleStatement properties on a wafv2 resource, will need to be updated to use the new recursive types in the wafv2 module.

{{< chooser language "typescript,python,go,csharp,java,yaml" >}}

{{% choosable language typescript %}}

-aws.wafv2.inputs.RuleGroupRuleStatementAndStatementStatementGeoMatchStatement
+aws.wafv2.inputs.RuleGroupRuleStatement

{{% /choosable %}}

{{% choosable language python %}}

-pulumi_aws.wafv2.RuleGroupRuleStatementAndStatementStatementGeoMatchStatementArgs
+pulumi_aws.wafv2.RuleGroupRuleStatementArgs

{{% /choosable %}}

{{% choosable language go %}}

-wafv2.RuleGroupRuleStatementAndStatementStatementGeoMatchStatementArgs
+wafv2.RuleGroupRuleStatementArgs

{{% /choosable %}}

{{% choosable language csharp %}}

-Pulumi.Aws.WafV2.Inputs.RuleGroupRuleStatementAndStatementStatementGeoMatchStatementArgs
+Pulumi.Aws.WafV2.Inputs.RuleGroupRuleStatementArgs

{{% /choosable %}}

{{% choosable language java %}}

-com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementAndStatementStatementGeoMatchStatementArgs
+com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementArgs

{{% /choosable %}}

{{% choosable language yaml %}}

No changes are necessary.

{{% /choosable %}}

{{< /chooser >}}

Unused Quicksight types have been removed#

Unused types from the quicksight module have been removed. Specifically, types that begin with AnalysisDefinition, DashboardDefinition, or TemplateDefinition. Since these were purely type definitions, you can replicate them by copying them out of the v5 SDK. We have not removed any types used by quicksight resources or functions.

{{< chooser language "typescript,python,go,csharp,java,yaml" >}}

{{% choosable language typescript %}}

-function newDataSetReference(): aws.inputs.quicksight.TemplateSourceEntitySourceAnalysisDataSetReference { ... }
+interface TemplateSourceEntitySourceAnalysisDataSetReference {
+    dataSetArn: pulumi.Input<string>,
+    dataSetPlaceholder: pulumi.Input<string>,
+}
+function newDataSetReference(): TemplateSourceEntitySourceAnalysisDataSetReference { ... }

{{% /choosable %}}

{{% choosable language python %}}

-args = aws.quicksight.TemplateSourceEntitySourceAnalysisDataSetReferenceArgs(data_set_arn, data_set_placeholder)
+@pulumi.input_type
+class TemplateSourceEntitySourceAnalysisDataSetReferenceArgs:
+    def __init__(__self__, *,
+                 data_set_arn: pulumi.Input[str],
+                 data_set_placeholder: pulumi.Input[str]):
+        """
+        :param pulumi.Input[str] data_set_arn: Dataset Amazon Resource Name (ARN).
+        :param pulumi.Input[str] data_set_placeholder: Dataset placeholder.
+        """
+        pulumi.set(__self__, "data_set_arn", data_set_arn)
+        pulumi.set(__self__, "data_set_placeholder", data_set_placeholder)
+
+    @property
+    @pulumi.getter(name="dataSetArn")
+    def data_set_arn(self) -> pulumi.Input[str]:
+        """
+        Dataset Amazon Resource Name (ARN).
+        """
+        return pulumi.get(self, "data_set_arn")
+
+    @data_set_arn.setter
+    def data_set_arn(self, value: pulumi.Input[str]):
+        pulumi.set(self, "data_set_arn", value)
+
+    @property
+    @pulumi.getter(name="dataSetPlaceholder")
+    def data_set_placeholder(self) -> pulumi.Input[str]:
+        """
+        Dataset placeholder.
+        """
+        return pulumi.get(self, "data_set_placeholder")
+
+    @data_set_placeholder.setter
+    def data_set_placeholder(self, value: pulumi.Input[str]):
+        pulumi.set(self, "data_set_placeholder", value)
+
+args = TemplateSourceEntitySourceAnalysisDataSetReferenceArgs(data_set_arn, data_set_placeholder)

{{% /choosable %}}

{{% choosable language go %}}

-var args quicksight.TemplateSourceEntitySourceAnalysisDataSetReferenceArgs
+type TemplateSourceEntitySourceAnalysisDataSetReferenceArgs struct {
+	// Dataset Amazon Resource Name (ARN).
+	DataSetArn pulumi.StringInput `pulumi:"dataSetArn"`
+	// Dataset placeholder.
+	DataSetPlaceholder pulumi.StringInput `pulumi:"dataSetPlaceholder"`
+}
+
+var args TemplateSourceEntitySourceAnalysisDataSetReferenceArgs

{{% /choosable %}}

{{% choosable language csharp %}}

-var args Pulumi.Aws.Quicksight.Inputs.TemplateSourceEntitySourceAnalysisDataSetReferenceArgs;
+public sealed class TemplateSourceEntitySourceAnalysisDataSetReferenceArgs : global::Pulumi.ResourceArgs
+{
+    /// <summary>
+    /// Dataset Amazon Resource Name (ARN).
+    /// </summary>
+    [Input("dataSetArn", required: true)]
+    public Input<string> DataSetArn { get; set; } = null!;
+
+    /// <summary>
+    /// Dataset placeholder.
+    /// </summary>
+    [Input("dataSetPlaceholder", required: true)]
+    public Input<string> DataSetPlaceholder { get; set; } = null!;
+
+    public TemplateSourceEntitySourceAnalysisDataSetReferenceArgs()
+    {
+    }
+    public static new TemplateSourceEntitySourceAnalysisDataSetReferenceArgs Empty => new +TemplateSourceEntitySourceAnalysisDataSetReferenceArgs();
+}
+var args TemplateSourceEntitySourceAnalysisDataSetReferenceArgs;

{{% /choosable %}}

{{% choosable language java %}}

-private com.pulumi.aws.quicksight.inputs.TemplateSourceEntitySourceAnalysisDataSetReferenceArgs;
+/*
+ * Copy in this file:
+ * https://github.com/pulumi/pulumi-aws/blob/v5.42.0/sdk/java/src/main/java/com/pulumi/aws/quicksight/inputs/TemplateSourceEntitySourceAnalysisDataSetReferenceArgs.java 
+ */
+ private TemplateSourceEntitySourceAnalysisDataSetReferenceArgs;

{{% /choosable %}}

{{% choosable language yaml %}}

Pulumi YAML is structurally typed, so you don't need to make any changes.

{{% /choosable %}}

{{< /chooser >}}

Property name of organizations/getOrganizationalUnits resource changed from childrens to children#

The name of property aws:organizations/getOrganizationalUnits:getOrganizationalUnits has changed from childrens to children and the name of the associated type from children to child. The name change is because children is itself already plural and it's natural singular is child. See https://github.com/pulumi/pulumi-aws/pull/2634 for details.

{{< chooser language "typescript,python,go,csharp,java,yaml" >}}

{{% choosable language typescript %}}

 const units = aws.organizations.getOrganizationalUnitsOutput({
     parentId: "SomeId",
 });
-export const children = units.apply(units => units.childrens);
+export const children = units.apply(units => units.children);

{{% /choosable %}}

{{% choosable language python %}}

 units = aws.organizations.get_organizational_units_output(parent_id="SomeId")
-pulumi.export("children", units.childrens)
+pulumi.export("children", units.children)

{{% /choosable %}}

{{% choosable language go %}}

 units := originizations.GetOrganizationalUnitsOutput(&originizations.GetOrganizationalUnitsOutputArgs{
     ParentId: pulumi.String("SomeId"),
 })
-pulumi.Export("children", units.Childrens)
+pulumi.Export("children", units.Children)

{{% /choosable %}}

{{% choosable language csharp %}}

 var units = Aws.Organizations.GetOrganizationalUnits.Invoke(new()
 {
     ParentId = "SomeId",
 });
 
 return new Dictionary<string, object?>
 {
-    ["children"] = units.Apply(getOrganizationalUnitsResult => getOrganizationalUnitsResult.Childrens),
+    ["children"] = units.Apply(getOrganizationalUnitsResult => getOrganizationalUnitsResult.Children),
 }

{{% /choosable %}}

{{% choosable language java %}}

 OrganizationsFunctions.getOrganizationalUnits(GetOrganizationalUnitsArgs.builder()
             .parentId("SomeId")
             .build())
-            .Childrens()
+            .Children()

{{% /choosable %}}

{{% choosable language yaml %}}

 variables:
   units:
     fn::aws:organizations:getOrganizationalUnits:
       parentId: "SomeId"
 outputs:
-    children: ${units.childrens}
+    children: ${units.children}

{{% /choosable %}}

{{< /chooser >}}

Function signature change#

For three functions, the signature has changed to accommodate a new argument. The new argument is optional, so passing an empty argument block is sufficient. Any reference to these three functions will need to be updated. The three impacted functions are:

  • aws:index/getBillingServiceAccount:getBillingServiceAccount
  • aws:index/getCallerIdentity:getCallerIdentity
  • aws:index/getPartition:getPartition
-`(pulumi.InvokeOptions) -> T`
+ `(Args, pulumi.InvokeOptions) -> T`

{{< chooser language "typescript,python,go,csharp,java,yaml" >}}

{{% choosable language typescript %}}

-const result = getBillingServiceAccount(invokeOptions);
+const result = getBillingServiceAccount({ id }, invokeOptions);
 
-const result = getCallerIdentity(invokeOptions);
+const result = getCallerIdentity({ id }, invokeOptions);
 
+const result = getPartition(invokeOptions);
+const result = getPartition({ id }, invokeOptions);

{{% /choosable %}}

{{% choosable language python %}}

-result = get_billing_service_account(opts)
+result = get_billing_service_account(id, opts)
 
-result = get_caller_identity(opts)
+result = get_caller_identity(id, opts)
 
+result = get_partition(opts)
+result = get_partition(id, invokeOptions)

{{% /choosable %}}

{{% choosable language go %}}

-result, err := aws.GetBillingServiceAccount(ctx, opts)
+result, err := aws.GetBillingServiceAccount(ctx, &aws.GetBillingServiceAccountArgs{
+    Id: id,
+}, opts)
 
-result, err := aws.GetCallerIdentity(ctx, opts)
+result, err := aws.GetCallerIdentity(ctx, &aws.GetCallerIdentityArgs{
+    Id: id,
+}, opts)
 
-result, err := aws.GetPartition(ctx, opts)
+result, err := aws.GetPartition(ctx, &aws.GetPartitionArgs{
+    Id: id,
+}, opts)

{{% /choosable %}}

{{% choosable language csharp %}}

-var result = Aws.GetBillingServiceAccount.Invoke(opts);
+var result = Aws.GetBillingServiceAccount.Invoke(args, opts);
 
-var result = Aws.GetCallerIdentity.Invoke(opts);
+var result = Aws.GetCallerIdentity.Invoke(args, opts);
 
-var result = Aws.GetPartition.Invoke(opts);
+var result = Aws.GetPartition.Invoke(args, opts);

{{% /choosable %}}

{{% choosable language java %}}

-final var result AwsFunctions.getBillingServiceAccount(opts);
+final var result AwsFunctions.getBillingServiceAccount(args, opts);
 
-final var result AwsFunctions.getCallerIdentity(opts);
+final var result AwsFunctions.getCallerIdentity(args, opts);
 
-final var result AwsFunctions.getPartition(opts);
+final var result AwsFunctions.getPartition(args, opts);

{{% /choosable %}}

{{% choosable language yaml %}}

You may continue to use your existing code in Pulumi YAML.

{{% /choosable %}}

{{< /chooser >}}

Updated

Was this page helpful?