diff --git a/awsx/package.json b/awsx/package.json index 0f7bae4f1..026916885 100644 --- a/awsx/package.json +++ b/awsx/package.json @@ -21,9 +21,9 @@ }, "//": "Pulumi sub-provider dependencies must be pinned at an exact version because we extract this value to generate the correct dependency in the schema", "dependencies": { - "@pulumi/aws": "6.5.0", - "@pulumi/docker": "4.4.3", - "@pulumi/pulumi": "^3.81.0", + "@pulumi/aws": "6.7.0", + "@pulumi/docker": "4.4.4", + "@pulumi/pulumi": "^3.91.1", "@types/aws-lambda": "^8.10.23", "docker-classic": "npm:@pulumi/docker@3.6.1", "ip-address": "^8.1.0", diff --git a/awsx/schema-types.ts b/awsx/schema-types.ts index b37bdf9bf..ce8509743 100644 --- a/awsx/schema-types.ts +++ b/awsx/schema-types.ts @@ -281,6 +281,7 @@ export interface ApplicationLoadBalancerArgs { readonly defaultTargetGroup?: TargetGroupInputs; readonly defaultTargetGroupPort?: pulumi.Input; readonly desyncMitigationMode?: pulumi.Input; + readonly dnsRecordClientRoutingPolicy?: pulumi.Input; readonly dropInvalidHeaderFields?: pulumi.Input; readonly enableDeletionProtection?: pulumi.Input; readonly enableHttp2?: pulumi.Input; @@ -317,6 +318,7 @@ export interface NetworkLoadBalancerArgs { readonly defaultTargetGroup?: TargetGroupInputs; readonly defaultTargetGroupPort?: pulumi.Input; readonly desyncMitigationMode?: pulumi.Input; + readonly dnsRecordClientRoutingPolicy?: pulumi.Input; readonly dropInvalidHeaderFields?: pulumi.Input; readonly enableCrossZoneLoadBalancing?: pulumi.Input; readonly enableDeletionProtection?: pulumi.Input; @@ -1041,6 +1043,7 @@ export interface TargetGroupInputs { readonly stickiness?: pulumi.Input; readonly tags?: pulumi.Input>>; readonly targetFailovers?: pulumi.Input[]>; + readonly targetHealthStates?: pulumi.Input[]>; readonly targetType?: pulumi.Input; readonly vpcId?: pulumi.Input; } @@ -1063,6 +1066,7 @@ export interface TargetGroupOutputs { readonly stickiness?: pulumi.Output; readonly tags?: pulumi.Output>; readonly targetFailovers?: pulumi.Output; + readonly targetHealthStates?: pulumi.Output; readonly targetType?: pulumi.Output; readonly vpcId?: pulumi.Output; } diff --git a/awsx/schema.json b/awsx/schema.json index 158456dab..14129e357 100644 --- a/awsx/schema.json +++ b/awsx/schema.json @@ -32,15 +32,15 @@ }, "java": { "dependencies": { - "com.pulumi:aws": "6.5.0", - "com.pulumi:docker": "4.4.3" + "com.pulumi:aws": "6.7.0", + "com.pulumi:docker": "4.4.4" } }, "nodejs": { "dependencies": { "@aws-sdk/client-ecs": "^3.405.0", - "@pulumi/aws": "^6.5.0", - "@pulumi/docker": "^4.4.3", + "@pulumi/aws": "^6.7.0", + "@pulumi/docker": "^4.4.4", "@pulumi/pulumi": "^3.0.0", "@types/aws-lambda": "^8.10.23", "aws-sdk": "^2.1450.0", @@ -57,9 +57,9 @@ "liftSingleValueMethodReturns": true, "readme": "Pulumi Amazon Web Services (AWS) AWSX Components.", "requires": { - "pulumi": "\u003e=3.76.1,\u003c4.0.0", + "pulumi": "\u003e=3.91.1,\u003c4.0.0", "pulumi-aws": "\u003e=6.0.4,\u003c7.0.0", - "pulumi-docker": "\u003e=4.4.3,\u003c5.0.0" + "pulumi-docker": "\u003e=4.4.4,\u003c5.0.0" }, "usesIOClasses": true } @@ -99,7 +99,7 @@ "corsRules": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketCorsRule:BucketCorsRule" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketCorsRule:BucketCorsRule" }, "description": "A rule of [Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) (documented below).\n" }, @@ -110,7 +110,7 @@ "grants": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketGrant:BucketGrant" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketGrant:BucketGrant" }, "description": "An [ACL policy grant](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#sample-acl) (documented below). Conflicts with `acl`.\n" }, @@ -121,19 +121,19 @@ "lifecycleRules": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketLifecycleRule:BucketLifecycleRule" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketLifecycleRule:BucketLifecycleRule" }, "description": "A configuration of [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) (documented below).\n" }, "loggings": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketLogging:BucketLogging" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketLogging:BucketLogging" }, "description": "A settings of [bucket logging](https://docs.aws.amazon.com/AmazonS3/latest/UG/ManagingBucketLogging.html) (documented below).\n" }, "objectLockConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketObjectLockConfiguration:BucketObjectLockConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketObjectLockConfiguration:BucketObjectLockConfiguration", "description": "A configuration of [S3 object locking](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) (documented below)\n\n\u003e **NOTE:** You cannot use `acceleration_status` in `cn-north-1` or `us-gov-west-1`\n" }, "policy": { @@ -141,7 +141,7 @@ "description": "A valid [bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html) JSON document. Note that if the policy document is not specific enough (but still valid), this provider may view the policy as constantly changing in a `pulumi preview`. In this case, please make sure you use the verbose/specific version of the policy.\n" }, "replicationConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketReplicationConfiguration:BucketReplicationConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketReplicationConfiguration:BucketReplicationConfiguration", "description": "A configuration of [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) (documented below).\n" }, "requestPayer": { @@ -149,7 +149,7 @@ "description": "Specifies who should bear the cost of Amazon S3 data transfer.\nCan be either `BucketOwner` or `Requester`. By default, the owner of the S3 bucket would incur\nthe costs of any data transfer. See [Requester Pays Buckets](http://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html)\ndeveloper guide for more information.\n" }, "serverSideEncryptionConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration", "description": "A configuration of [server-side encryption configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) (documented below)\n" }, "tags": { @@ -160,11 +160,11 @@ "description": "A map of tags to assign to the bucket. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n" }, "versioning": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketVersioning:BucketVersioning", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketVersioning:BucketVersioning", "description": "A state of [versioning](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) (documented below)\n" }, "website": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:s3/BucketWebsite:BucketWebsite", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:s3/BucketWebsite:BucketWebsite", "description": "A website object (documented below).\n" }, "websiteDomain": { @@ -394,7 +394,7 @@ "inlinePolicies": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:iam/RoleInlinePolicy:RoleInlinePolicy" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:iam/RoleInlinePolicy:RoleInlinePolicy" }, "description": "Configuration block defining an exclusive set of IAM inline policies associated with the IAM role. See below. If no blocks are configured, the provider will not manage any inline policies in this resource. Configuring one empty block (i.e., `inline_policy {}`) will cause the provider to remove _all_ inline policies added out of band on `apply`.\n" }, @@ -458,14 +458,14 @@ "egress": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ec2/SecurityGroupEgress:SecurityGroupEgress" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ec2/SecurityGroupEgress:SecurityGroupEgress" }, "description": "Configuration block for egress rules. Can be specified multiple times for each egress rule. Each egress block supports fields documented below. This argument is processed in attribute-as-blocks mode.\n" }, "ingress": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ec2/SecurityGroupIngress:SecurityGroupIngress" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ec2/SecurityGroupIngress:SecurityGroupIngress" }, "description": "Configuration block for ingress rules. Can be specified multiple times for each ingress rule. Each ingress block supports fields documented below. This argument is processed in attribute-as-blocks mode.\n" }, @@ -621,7 +621,7 @@ "description": "Accept the VPC endpoint (the VPC endpoint and service need to be in the same AWS account)." }, "dnsOptions": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ec2/VpcEndpointDnsOptions:VpcEndpointDnsOptions", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ec2/VpcEndpointDnsOptions:VpcEndpointDnsOptions", "description": "The DNS options for the endpoint. See dns_options below.\n" }, "ipAddressType": { @@ -835,7 +835,7 @@ "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, "ephemeralStorage": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -851,7 +851,7 @@ "inferenceAccelerators": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" }, "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", "willReplaceOnChanges": true @@ -883,18 +883,18 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, "runtimePlatform": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -917,7 +917,7 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", "willReplaceOnChanges": true @@ -947,7 +947,7 @@ "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, "ephemeralStorage": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -963,7 +963,7 @@ "inferenceAccelerators": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" }, "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", "willReplaceOnChanges": true @@ -990,18 +990,18 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, "runtimePlatform": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -1024,7 +1024,7 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", "willReplaceOnChanges": true @@ -1421,7 +1421,7 @@ "type": "string" }, "targetGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2FtargetGroup:TargetGroup" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2FtargetGroup:TargetGroup" } }, "type": "object" @@ -1556,7 +1556,7 @@ "defaultActions": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/ListenerDefaultAction:ListenerDefaultAction" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/ListenerDefaultAction:ListenerDefaultAction" }, "description": "Configuration block for default actions. Detailed below.\n" }, @@ -1583,7 +1583,7 @@ "type": "object" }, "awsx:lb:TargetGroup": { - "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Instance Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder() \n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder() \n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n{{% /example %}}\n{{% example %}}\n### IP Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder() \n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder() \n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n{{% /example %}}\n{{% example %}}\n### Lambda Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {targetType: \"lambda\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\", target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder() \n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n targetType: lambda\n```\n{{% /example %}}\n{{% example %}}\n### ALB Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: aws_vpc.main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=aws_vpc[\"main\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = aws_vpc.Main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder() \n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(aws_vpc.main().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${aws_vpc.main.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n $ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n ", + "description": "Provides a Target Group resource for use with Load Balancer resources.\n\n\u003e **Note:** `aws.alb.TargetGroup` is known as `aws.lb.TargetGroup`. The functionality is identical.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Instance Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst test = new aws.lb.TargetGroup(\"test\", {\n port: 80,\n protocol: \"HTTP\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\ntest = aws.lb.TargetGroup(\"test\",\n port=80,\n protocol=\"HTTP\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var test = new Aws.LB.TargetGroup(\"test\", new()\n {\n Port = 80,\n Protocol = \"HTTP\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"test\", \u0026lb.TargetGroupArgs{\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder() \n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var test = new TargetGroup(\"test\", TargetGroupArgs.builder() \n .port(80)\n .protocol(\"HTTP\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lb:TargetGroup\n properties:\n port: 80\n protocol: HTTP\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n{{% /example %}}\n{{% example %}}\n### IP Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst main = new aws.ec2.Vpc(\"main\", {cidrBlock: \"10.0.0.0/16\"});\nconst ip_example = new aws.lb.TargetGroup(\"ip-example\", {\n port: 80,\n protocol: \"HTTP\",\n targetType: \"ip\",\n vpcId: main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.ec2.Vpc(\"main\", cidr_block=\"10.0.0.0/16\")\nip_example = aws.lb.TargetGroup(\"ip-example\",\n port=80,\n protocol=\"HTTP\",\n target_type=\"ip\",\n vpc_id=main.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var main = new Aws.Ec2.Vpc(\"main\", new()\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n\n var ip_example = new Aws.LB.TargetGroup(\"ip-example\", new()\n {\n Port = 80,\n Protocol = \"HTTP\",\n TargetType = \"ip\",\n VpcId = main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := ec2.NewVpc(ctx, \"main\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = lb.NewTargetGroup(ctx, \"ip-example\", \u0026lb.TargetGroupArgs{\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tTargetType: pulumi.String(\"ip\"),\n\t\t\tVpcId: main.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var main = new Vpc(\"main\", VpcArgs.builder() \n .cidrBlock(\"10.0.0.0/16\")\n .build());\n\n var ip_example = new TargetGroup(\"ip-example\", TargetGroupArgs.builder() \n .port(80)\n .protocol(\"HTTP\")\n .targetType(\"ip\")\n .vpcId(main.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n ip-example:\n type: aws:lb:TargetGroup\n properties:\n port: 80\n protocol: HTTP\n targetType: ip\n vpcId: ${main.id}\n main:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.0.0.0/16\n```\n{{% /example %}}\n{{% example %}}\n### Lambda Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst lambda_example = new aws.lb.TargetGroup(\"lambda-example\", {targetType: \"lambda\"});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nlambda_example = aws.lb.TargetGroup(\"lambda-example\", target_type=\"lambda\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var lambda_example = new Aws.LB.TargetGroup(\"lambda-example\", new()\n {\n TargetType = \"lambda\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"lambda-example\", \u0026lb.TargetGroupArgs{\n\t\t\tTargetType: pulumi.String(\"lambda\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var lambda_example = new TargetGroup(\"lambda-example\", TargetGroupArgs.builder() \n .targetType(\"lambda\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n lambda-example:\n type: aws:lb:TargetGroup\n properties:\n targetType: lambda\n```\n{{% /example %}}\n{{% example %}}\n### ALB Target Group\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst alb_example = new aws.lb.TargetGroup(\"alb-example\", {\n targetType: \"alb\",\n port: 80,\n protocol: \"TCP\",\n vpcId: aws_vpc.main.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nalb_example = aws.lb.TargetGroup(\"alb-example\",\n target_type=\"alb\",\n port=80,\n protocol=\"TCP\",\n vpc_id=aws_vpc[\"main\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var alb_example = new Aws.LB.TargetGroup(\"alb-example\", new()\n {\n TargetType = \"alb\",\n Port = 80,\n Protocol = \"TCP\",\n VpcId = aws_vpc.Main.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"alb-example\", \u0026lb.TargetGroupArgs{\n\t\t\tTargetType: pulumi.String(\"alb\"),\n\t\t\tPort: pulumi.Int(80),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Main.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var alb_example = new TargetGroup(\"alb-example\", TargetGroupArgs.builder() \n .targetType(\"alb\")\n .port(80)\n .protocol(\"TCP\")\n .vpcId(aws_vpc.main().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n alb-example:\n type: aws:lb:TargetGroup\n properties:\n targetType: alb\n port: 80\n protocol: TCP\n vpcId: ${aws_vpc.main.id}\n```\n{{% /example %}}\n{{% example %}}\n### Target group with unhealthy connection termination disabled\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst tcp_example = new aws.lb.TargetGroup(\"tcp-example\", {\n port: 25,\n protocol: \"TCP\",\n vpcId: aws_vpc.main.id,\n targetHealthStates: [{\n enableUnhealthyConnectionTermination: false,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntcp_example = aws.lb.TargetGroup(\"tcp-example\",\n port=25,\n protocol=\"TCP\",\n vpc_id=aws_vpc[\"main\"][\"id\"],\n target_health_states=[aws.lb.TargetGroupTargetHealthStateArgs(\n enable_unhealthy_connection_termination=False,\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var tcp_example = new Aws.LB.TargetGroup(\"tcp-example\", new()\n {\n Port = 25,\n Protocol = \"TCP\",\n VpcId = aws_vpc.Main.Id,\n TargetHealthStates = new[]\n {\n new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs\n {\n EnableUnhealthyConnectionTermination = false,\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := lb.NewTargetGroup(ctx, \"tcp-example\", \u0026lb.TargetGroupArgs{\n\t\t\tPort: pulumi.Int(25),\n\t\t\tProtocol: pulumi.String(\"TCP\"),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Main.Id),\n\t\t\tTargetHealthStates: lb.TargetGroupTargetHealthStateArray{\n\t\t\t\t\u0026lb.TargetGroupTargetHealthStateArgs{\n\t\t\t\t\tEnableUnhealthyConnectionTermination: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lb.TargetGroup;\nimport com.pulumi.aws.lb.TargetGroupArgs;\nimport com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var tcp_example = new TargetGroup(\"tcp-example\", TargetGroupArgs.builder() \n .port(25)\n .protocol(\"TCP\")\n .vpcId(aws_vpc.main().id())\n .targetHealthStates(TargetGroupTargetHealthStateArgs.builder()\n .enableUnhealthyConnectionTermination(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n tcp-example:\n type: aws:lb:TargetGroup\n properties:\n port: 25\n protocol: TCP\n vpcId: ${aws_vpc.main.id}\n targetHealthStates:\n - enableUnhealthyConnectionTermination: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nUsing `pulumi import`, import Target Groups using their ARN. For example:\n\n```sh\n $ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314\n```\n ", "properties": { "connectionTermination": { "type": "boolean", @@ -1594,7 +1594,7 @@ "description": "Amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.\n" }, "healthCheck": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/TargetGroupHealthCheck:TargetGroupHealthCheck", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/TargetGroupHealthCheck:TargetGroupHealthCheck", "description": "Health Check configuration block. Detailed below.\n" }, "ipAddressType": { @@ -1652,7 +1652,7 @@ "description": "Amount time for targets to warm up before the load balancer sends them a full share of requests. The range is 30-900 seconds or 0 to disable. The default value is 0 seconds.\n" }, "stickiness": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/TargetGroupStickiness:TargetGroupStickiness", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/TargetGroupStickiness:TargetGroupStickiness", "description": "Stickiness configuration block. Detailed below.\n" }, "tags": { @@ -1665,10 +1665,17 @@ "targetFailovers": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/TargetGroupTargetFailover:TargetGroupTargetFailover" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/TargetGroupTargetFailover:TargetGroupTargetFailover" }, "description": "Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information.\n" }, + "targetHealthStates": { + "type": "array", + "items": { + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/TargetGroupTargetHealthState:TargetGroupTargetHealthState" + }, + "description": "Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information.\n" + }, "targetType": { "type": "string", "description": "Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`.\n\nNote that you can't specify targets for a target group using both instance IDs and IP addresses.\n\nIf the target type is `ip`, specify IP addresses from the subnets of the virtual private cloud (VPC) for the target group, the RFC 1918 range (10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16), and the RFC 6598 range (100.64.0.0/10). You can't specify publicly routable IP addresses.\n\nNetwork Load Balancers do not support the `lambda` target type.\n\nApplication Load Balancers do not support the `alb` target type.\n", @@ -1688,15 +1695,15 @@ "awsx:cloudtrail:Trail": { "properties": { "bucket": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:s3%2Fbucket:Bucket", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:s3%2Fbucket:Bucket", "description": "The managed S3 Bucket where the Trail will place its logs." }, "logGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "The managed Cloudwatch Log Group." }, "trail": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:cloudtrail%2Ftrail:Trail", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:cloudtrail%2Ftrail:Trail", "description": "The CloudTrail Trail.", "language": { "csharp": { @@ -1712,7 +1719,7 @@ "advancedEventSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:cloudtrail/TrailAdvancedEventSelector:TrailAdvancedEventSelector" }, "description": "Specifies an advanced event selector for enabling data event logging. Fields documented below. Conflicts with `event_selector`.\n" }, @@ -1732,7 +1739,7 @@ "eventSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:cloudtrail/TrailEventSelector:TrailEventSelector" }, "description": "Specifies an event selector for enabling data event logging. Fields documented below. Please note the [CloudTrail limits](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/WhatIsCloudTrail-Limits.html) when configuring these. Conflicts with `advanced_event_selector`.\n" }, @@ -1743,7 +1750,7 @@ "insightSelectors": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:cloudtrail/TrailInsightSelector:TrailInsightSelector" }, "description": "Configuration block for identifying unusual operational activity. See details below.\n" }, @@ -1819,12 +1826,12 @@ "eips": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2feip:Eip" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2feip:Eip" }, "description": "The EIPs for any NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list." }, "internetGateway": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2finternetGateway:InternetGateway", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2finternetGateway:InternetGateway", "description": "The Internet Gateway for the VPC." }, "isolatedSubnetIds": { @@ -1836,7 +1843,7 @@ "natGateways": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fnatGateway:NatGateway" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fnatGateway:NatGateway" }, "description": "The NAT Gateways for the VPC. If no NAT Gateways are specified, this will be an empty list." }, @@ -1855,33 +1862,33 @@ "routeTableAssociations": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2frouteTableAssociation:RouteTableAssociation" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2frouteTableAssociation:RouteTableAssociation" }, "description": "The Route Table Associations for the VPC." }, "routeTables": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2frouteTable:RouteTable" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2frouteTable:RouteTable" }, "description": "The Route Tables for the VPC." }, "routes": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2froute:Route" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2froute:Route" }, "description": "The Routes for the VPC." }, "subnets": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "The VPC's subnets." }, "vpc": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fvpc:Vpc", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fvpc:Vpc", "description": "The VPC.", "language": { "csharp": { @@ -1892,7 +1899,7 @@ "vpcEndpoints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fvpcEndpoint:VpcEndpoint" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fvpcEndpoint:VpcEndpoint" }, "description": "The VPC Endpoints that are enabled" }, @@ -2083,11 +2090,11 @@ "description": "A [Repository] represents an [aws.ecr.Repository] along with an associated [LifecyclePolicy] controlling how images are retained in the repo. \n\nDocker images can be built and pushed to the repo using the [buildAndPushImage] method. This will call into the `@pulumi/docker/buildAndPushImage` function using this repo as the appropriate destination registry.", "properties": { "lifecyclePolicy": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecr%2flifecyclePolicy:LifecyclePolicy", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecr%2flifecyclePolicy:LifecyclePolicy", "description": "Underlying repository lifecycle policy" }, "repository": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecr%2frepository:Repository", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecr%2frepository:Repository", "description": "Underlying Repository resource", "language": { "csharp": { @@ -2109,7 +2116,7 @@ "encryptionConfigurations": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecr/RepositoryEncryptionConfiguration:RepositoryEncryptionConfiguration" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecr/RepositoryEncryptionConfiguration:RepositoryEncryptionConfiguration" }, "description": "Encryption configuration for the repository. See below for schema.\n", "willReplaceOnChanges": true @@ -2119,7 +2126,7 @@ "description": "If `true`, will delete the repository even if it contains images.\nDefaults to `false`.\n" }, "imageScanningConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecr/RepositoryImageScanningConfiguration:RepositoryImageScanningConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecr/RepositoryImageScanningConfiguration:RepositoryImageScanningConfiguration", "description": "Configuration block that defines image scanning configuration for the repository. By default, image scanning must be manually triggered. See the [ECR User Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html) for more information about image scanning.\n" }, "imageTagMutability": { @@ -2150,11 +2157,11 @@ "description": "Create an ECS Service resource for EC2 with the given unique name, arguments, and options.\nCreates Task definition if `taskDefinitionArgs` is specified.", "properties": { "service": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2fservice:Service", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2fservice:Service", "description": "Underlying ECS Service resource" }, "taskDefinition": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying EC2 Task definition component resource if created from args" } }, @@ -2163,7 +2170,7 @@ ], "inputProperties": { "alarms": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", "description": "Information about the CloudWatch alarms. See below.\n" }, "cluster": { @@ -2176,11 +2183,11 @@ "description": "If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`." }, "deploymentCircuitBreaker": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", "description": "Configuration block for deployment circuit breaker. See below.\n" }, "deploymentController": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", "description": "Configuration block for deployment controller configuration. See below.\n" }, "deploymentMaximumPercent": { @@ -2219,7 +2226,7 @@ "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Configuration block for load balancers. See below.\n" }, @@ -2229,20 +2236,20 @@ "willReplaceOnChanges": true }, "networkConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", "description": "Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below.\n" }, "orderedPlacementStrategies": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceOrderedPlacementStrategy:ServiceOrderedPlacementStrategy" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceOrderedPlacementStrategy:ServiceOrderedPlacementStrategy" }, "description": "Service level strategy rules that are taken into consideration during task placement. List from top to bottom in order of precedence. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. The maximum number of `ordered_placement_strategy` blocks is `5`. See below.\n" }, "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" }, "description": "Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below.\n" }, @@ -2260,11 +2267,11 @@ "willReplaceOnChanges": true }, "serviceConnectConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", "description": "The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below.\n" }, "serviceRegistries": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", "description": "Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below.\n" }, "tags": { @@ -2297,26 +2304,26 @@ "description": "Create a TaskDefinition resource with the given unique name, arguments, and options.\nCreates required log-group and task \u0026 execution roles.\nPresents required Service load balancers if target group included in port mappings.", "properties": { "executionRole": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume." }, "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Computed load balancers from target groups specified of container port mappings." }, "logGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "Auto-created Log Group resource for use by containers." }, "taskDefinition": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying ECS Task Definition resource" }, "taskRole": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services." } }, @@ -2344,7 +2351,7 @@ "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, "ephemeralStorage": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -2360,7 +2367,7 @@ "inferenceAccelerators": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" }, "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", "willReplaceOnChanges": true @@ -2392,18 +2399,18 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, "runtimePlatform": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -2426,7 +2433,7 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", "willReplaceOnChanges": true @@ -2438,11 +2445,11 @@ "description": "Create an ECS Service resource for Fargate with the given unique name, arguments, and options.\nCreates Task definition if `taskDefinitionArgs` is specified.", "properties": { "service": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2fservice:Service", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2fservice:Service", "description": "Underlying ECS Service resource" }, "taskDefinition": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying Fargate component resource if created from args" } }, @@ -2451,7 +2458,7 @@ ], "inputProperties": { "alarms": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceAlarms:ServiceAlarms", "description": "Information about the CloudWatch alarms. See below.\n" }, "assignPublicIp": { @@ -2468,11 +2475,11 @@ "description": "If `true`, this provider will not wait for the service to reach a steady state (like [`aws ecs wait services-stable`](https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html)) before continuing. Default `false`." }, "deploymentCircuitBreaker": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceDeploymentCircuitBreaker:ServiceDeploymentCircuitBreaker", "description": "Configuration block for deployment circuit breaker. See below.\n" }, "deploymentController": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceDeploymentController:ServiceDeploymentController", "description": "Configuration block for deployment controller configuration. See below.\n" }, "deploymentMaximumPercent": { @@ -2511,7 +2518,7 @@ "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Configuration block for load balancers. See below.\n" }, @@ -2521,13 +2528,13 @@ "willReplaceOnChanges": true }, "networkConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceNetworkConfiguration:ServiceNetworkConfiguration", "description": "Network configuration for the service. This parameter is required for task definitions that use the `awsvpc` network mode to receive their own Elastic Network Interface, and it is not supported for other network modes. See below.\n" }, "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServicePlacementConstraint:ServicePlacementConstraint" }, "description": "Rules that are taken into consideration during task placement. Updates to this configuration will take effect next task deployment unless `force_new_deployment` is enabled. Maximum number of `placement_constraints` is `10`. See below.\n" }, @@ -2545,11 +2552,11 @@ "willReplaceOnChanges": true }, "serviceConnectConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceServiceConnectConfiguration:ServiceServiceConnectConfiguration", "description": "The ECS Service Connect configuration for this service to discover and connect to services, and be discovered by, and connected from, other services within a namespace. See below.\n" }, "serviceRegistries": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/ServiceServiceRegistries:ServiceServiceRegistries", "description": "Service discovery registries for the service. The maximum number of `service_registries` blocks is `1`. See below.\n" }, "tags": { @@ -2582,26 +2589,26 @@ "description": "Create a TaskDefinition resource with the given unique name, arguments, and options.\nCreates required log-group and task \u0026 execution roles.\nPresents required Service load balancers if target group included in port mappings.", "properties": { "executionRole": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM task execution role that the Amazon ECS container agent and the Docker daemon can assume." }, "loadBalancers": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs%2FServiceLoadBalancer:ServiceLoadBalancer" }, "description": "Computed load balancers from target groups specified of container port mappings." }, "logGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:cloudwatch%2FlogGroup:LogGroup", "description": "Auto-created Log Group resource for use by containers." }, "taskDefinition": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ecs%2FtaskDefinition:TaskDefinition", "description": "Underlying ECS Task Definition resource" }, "taskRole": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:iam%2Frole:Role", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:iam%2Frole:Role", "description": "Auto-created IAM role that allows your Amazon ECS container task to make calls to other AWS services." } }, @@ -2629,7 +2636,7 @@ "description": "The number of cpu units used by the task. If not provided, a default will be computed based on the cumulative needs specified by [containerDefinitions]" }, "ephemeralStorage": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionEphemeralStorage:TaskDefinitionEphemeralStorage", "description": "The amount of ephemeral storage to allocate for the task. This parameter is used to expand the total amount of ephemeral storage available, beyond the default amount, for tasks hosted on AWS Fargate. See Ephemeral Storage.\n", "willReplaceOnChanges": true }, @@ -2645,7 +2652,7 @@ "inferenceAccelerators": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionInferenceAccelerator:TaskDefinitionInferenceAccelerator" }, "description": "Configuration block(s) with Inference Accelerators settings. Detailed below.\n", "willReplaceOnChanges": true @@ -2672,18 +2679,18 @@ "placementConstraints": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionPlacementConstraint:TaskDefinitionPlacementConstraint" }, "description": "Configuration block for rules that are taken into consideration during task placement. Maximum number of `placement_constraints` is `10`. Detailed below.\n", "willReplaceOnChanges": true }, "proxyConfiguration": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionProxyConfiguration:TaskDefinitionProxyConfiguration", "description": "Configuration block for the App Mesh proxy. Detailed below.\n", "willReplaceOnChanges": true }, "runtimePlatform": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionRuntimePlatform:TaskDefinitionRuntimePlatform", "description": "Configuration block for runtime_platform that containers in your task may use.\n", "willReplaceOnChanges": true }, @@ -2706,7 +2713,7 @@ "volumes": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:ecs/TaskDefinitionVolume:TaskDefinitionVolume" }, "description": "Configuration block for volumes that containers in your task may use. Detailed below.\n", "willReplaceOnChanges": true @@ -2718,22 +2725,22 @@ "description": "Provides an Application Load Balancer resource with listeners, default target group and default security group.", "properties": { "defaultSecurityGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fsecurityGroup:SecurityGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fsecurityGroup:SecurityGroup", "description": "Default security group, if auto-created" }, "defaultTargetGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Default target group, if auto-created" }, "listeners": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2flistener:Listener" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2flistener:Listener" }, "description": "Listeners created as part of this load balancer" }, "loadBalancer": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", "description": "Underlying Load Balancer resource" }, "vpcId": { @@ -2748,7 +2755,7 @@ ], "inputProperties": { "accessLogs": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", "description": "An Access Logs block. Access Logs documented below.\n" }, "customerOwnedIpv4Pool": { @@ -2774,6 +2781,10 @@ "type": "string", "description": "Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" }, + "dnsRecordClientRoutingPolicy": { + "type": "string", + "description": "Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" + }, "dropInvalidHeaderFields": { "type": "boolean", "description": "Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" @@ -2856,7 +2867,7 @@ "subnetMappings": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" }, "description": "A subnet mapping block as documented below.\n", "willReplaceOnChanges": true @@ -2864,7 +2875,7 @@ "subnets": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified" }, @@ -2886,18 +2897,18 @@ "description": "Provides a Network Load Balancer resource with listeners and default target group.", "properties": { "defaultTargetGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Default target group, if auto-created" }, "listeners": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2flistener:Listener" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2flistener:Listener" }, "description": "Listeners created as part of this load balancer" }, "loadBalancer": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2floadBalancer:LoadBalancer", "description": "Underlying Load Balancer resource" }, "vpcId": { @@ -2912,7 +2923,7 @@ ], "inputProperties": { "accessLogs": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/LoadBalancerAccessLogs:LoadBalancerAccessLogs", "description": "An Access Logs block. Access Logs documented below.\n" }, "customerOwnedIpv4Pool": { @@ -2933,6 +2944,10 @@ "type": "string", "description": "Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`.\n" }, + "dnsRecordClientRoutingPolicy": { + "type": "string", + "description": "Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers.\n" + }, "dropInvalidHeaderFields": { "type": "boolean", "description": "Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`.\n" @@ -3008,7 +3023,7 @@ "subnetMappings": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" + "$ref": "/aws/v6.7.0/schema.json#/types/aws:lb/LoadBalancerSubnetMapping:LoadBalancerSubnetMapping" }, "description": "A subnet mapping block as documented below.\n", "willReplaceOnChanges": true @@ -3016,7 +3031,7 @@ "subnets": { "type": "array", "items": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2fsubnet:Subnet" }, "description": "A list of subnets to attach to the LB. Only one of [subnets], [subnetIds] or [subnetMappings] can be specified" }, @@ -3038,11 +3053,11 @@ "description": "Attach an EC2 instance or Lambda to a Load Balancer. This will create required permissions if attaching to a Lambda Function.", "properties": { "lambdaPermission": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lambda%2fpermission:Permission", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lambda%2fpermission:Permission", "description": "Auto-created Lambda permission, if targeting a Lambda function" }, "targetGroupAttachment": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2ftargetGroupAttachment:TargetGroupAttachment", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2ftargetGroupAttachment:TargetGroupAttachment", "description": "Underlying Target Group Attachment resource", "language": { "csharp": { @@ -3057,7 +3072,7 @@ ], "inputProperties": { "instance": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:ec2%2finstance:Instance", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:ec2%2finstance:Instance", "description": "EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "instanceId": { @@ -3065,7 +3080,7 @@ "description": "ID of an EC2 Instance to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "lambda": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lambda%2ffunction:Function", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lambda%2ffunction:Function", "description": "Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided.", "language": { "python": { @@ -3078,7 +3093,7 @@ "description": "ARN of a Lambda Function to attach to the Target Group. Exactly 1 of [instance], [instanceId], [lambda] or [lambdaArn] must be provided." }, "targetGroup": { - "$ref": "/aws/v6.5.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", + "$ref": "/aws/v6.7.0/schema.json#/resources/aws:lb%2ftargetGroup:TargetGroup", "description": "Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified." }, "targetGroupArn": { diff --git a/awsx/yarn.lock b/awsx/yarn.lock index c0441d043..f3a069086 100644 --- a/awsx/yarn.lock +++ b/awsx/yarn.lock @@ -1519,10 +1519,10 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@pulumi/aws@6.5.0": - version "6.5.0" - resolved "https://registry.yarnpkg.com/@pulumi/aws/-/aws-6.5.0.tgz#11afe5b033be24d317b0db9918bf2e9012289515" - integrity sha512-oBoL+ZwQaBbnq7NiR/lrRexylj3GAu4dvg1s6AGi1fACbpvruIJgjtOecNnPaEJfiOpyoqPYuTURrBCk90R3rA== +"@pulumi/aws@6.7.0": + version "6.7.0" + resolved "https://registry.yarnpkg.com/@pulumi/aws/-/aws-6.7.0.tgz#50b4d7d3d604c21bbef404b9c1563485b9c7f16b" + integrity sha512-7COqQ4jkXNtfcfoNbLAvp1BK00STwNLnsM9liKl4MnRiKg7+wL+Z7jz7UiIE8m9ZqxW10wEVW8Inj92TkgjwVg== dependencies: "@pulumi/pulumi" "^3.0.0" builtin-modules "3.0.0" @@ -1530,18 +1530,18 @@ read-package-tree "^5.2.1" resolve "^1.7.1" -"@pulumi/docker@4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@pulumi/docker/-/docker-4.4.3.tgz#5779aa2b294973001b821219706f7775f92b432c" - integrity sha512-KuA0AbPKu5gwgTbMTSPjwLltwxoOBusvQadcruZaacSwtZmxG8IwfdTiDKVdPSHZ69nCfdr9hTfdKAKXbuIjAw== +"@pulumi/docker@4.4.4": + version "4.4.4" + resolved "https://registry.yarnpkg.com/@pulumi/docker/-/docker-4.4.4.tgz#1e412663311d36c8aeba301587e2385a201a9364" + integrity sha512-CuW5UAI+mZWJqD3ZKEv74ReWu/jCpoJKyXpjtp3m4I+bWoOoOfg7jUGoJnwLODQPnrmlawOviNa0TzMR5WdXaQ== dependencies: "@pulumi/pulumi" "^3.0.0" semver "^5.4.0" -"@pulumi/pulumi@^3.0.0", "@pulumi/pulumi@^3.81.0": - version "3.82.1" - resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.82.1.tgz#91c0595f392bae10096c342493406822abc107eb" - integrity sha512-wIQHSVFnlX5TeUliSQNTfn8wZZMq9z1y6JOi7KcVM1rkfHFx3kxVBwK+5ri308cl8QMEzFprXTgH56lHQ2855w== +"@pulumi/pulumi@^3.0.0", "@pulumi/pulumi@^3.91.1": + version "3.91.1" + resolved "https://registry.yarnpkg.com/@pulumi/pulumi/-/pulumi-3.91.1.tgz#fea7720178f87388146692df371d9285a43093d7" + integrity sha512-ZKX9twt1+EDSb/Sg3d9fffA74f3Ikx90Xc8k7C++qdaOkcwKd2RTycciZdzvM/ri7KW4B6CYU2qCgKy33li6tQ== dependencies: "@grpc/grpc-js" "^1.8.16" "@logdna/tail-file" "^2.0.6" diff --git a/schemagen/go.mod b/schemagen/go.mod index 6cc872159..a4e250572 100644 --- a/schemagen/go.mod +++ b/schemagen/go.mod @@ -4,8 +4,8 @@ go 1.21 require ( github.com/pkg/errors v0.9.1 - github.com/pulumi/pulumi/pkg/v3 v3.85.0 - github.com/pulumi/pulumi/sdk/v3 v3.85.0 + github.com/pulumi/pulumi/pkg/v3 v3.91.1 + github.com/pulumi/pulumi/sdk/v3 v3.91.1 ) require ( @@ -17,12 +17,7 @@ require ( cloud.google.com/go/logging v1.7.0 // indirect cloud.google.com/go/longrunning v0.5.1 // indirect cloud.google.com/go/storage v1.30.1 // indirect - github.com/AlecAivazis/survey/v2 v2.3.7 // indirect github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 // indirect - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/autorest v0.11.28 // indirect github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect @@ -33,7 +28,6 @@ require ( github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 // indirect @@ -46,21 +40,14 @@ require ( github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go v1.44.298 // indirect github.com/aws/aws-sdk-go-v2 v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3 // indirect github.com/aws/aws-sdk-go-v2/config v1.15.15 // indirect github.com/aws/aws-sdk-go-v2/credentials v1.12.10 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9 // indirect - github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10 // indirect github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.9 // indirect github.com/aws/aws-sdk-go-v2/service/kms v1.18.1 // indirect - github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2 // indirect github.com/aws/aws-sdk-go-v2/service/sso v1.11.13 // indirect github.com/aws/aws-sdk-go-v2/service/sts v1.16.10 // indirect github.com/aws/smithy-go v1.13.5 // indirect @@ -76,7 +63,6 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect - github.com/dustin/go-humanize v1.0.1 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/fatih/color v1.13.0 // indirect @@ -86,7 +72,6 @@ require ( github.com/go-git/go-git/v5 v5.6.0 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt v3.2.1+incompatible // indirect github.com/golang-jwt/jwt/v4 v4.4.2 // indirect github.com/golang/glog v1.1.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect @@ -117,26 +102,22 @@ require ( github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.16.2 // indirect + github.com/hashicorp/hcl/v2 v2.17.0 // indirect github.com/hashicorp/vault/api v1.8.2 // indirect github.com/hashicorp/vault/sdk v0.6.1 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/iancoleman/strcase v0.2.0 // indirect - github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect - github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.12 // indirect github.com/mattn/go-isatty v0.0.18 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect @@ -157,11 +138,11 @@ require ( github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect - github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/pulumi/esc v0.5.6 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect @@ -172,7 +153,7 @@ require ( github.com/spf13/afero v1.9.5 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.8.3 // indirect + github.com/stretchr/testify v1.8.4 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -187,7 +168,8 @@ require ( gocloud.dev v0.27.0 // indirect gocloud.dev/secrets/hashivault v0.27.0 // indirect golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.10.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/mod v0.13.0 // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect golang.org/x/sync v0.2.0 // indirect diff --git a/schemagen/go.sum b/schemagen/go.sum index 77f5621b8..6593900d9 100644 --- a/schemagen/go.sum +++ b/schemagen/go.sum @@ -96,8 +96,6 @@ contrib.go.opencensus.io/exporter/stackdriver v0.13.13/go.mod h1:5pSSGY0Bhuk7waT contrib.go.opencensus.io/integrations/ocsql v0.1.7/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= -github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= -github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE4ehlXQZHpMja2OtxC2Tas= github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v63.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= @@ -106,16 +104,12 @@ github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmV github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1 h1:tz19qLF65vuu2ibfTqGVJxG/zZAI27NEIIbvAOQwYbw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0 h1:Yoicul8bnVdQrhDMTHxdEckRGX01XvwXDHUT9zYZ3k0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0 h1:jp0dGvZ7ZK0mgqnTSClMxa5xuRL7NZgHameVYF6BurY= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= github.com/Azure/azure-sdk-for-go/sdk/messaging/azservicebus v1.0.2/go.mod h1:LH9XQnMr2ZYxQdVdCrzLO9mxeDyrDFa6wbSI3x5zCZk= -github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1 h1:QSdcrd/UFJv6Bp/CfoVf2SrENpFn9P6Yh8yb+xNhYMM= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v0.4.1/go.mod h1:eZ4g6GUvXiGulfIbbhh1Xr4XwUYaYaWMqzGD/284wCA= github.com/Azure/go-amqp v0.17.0/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= github.com/Azure/go-amqp v0.17.5/go.mod h1:9YJ3RhxRT1gquYnzpZO1vcYMMpAdJT+QEg6fwmw9Zlg= @@ -159,7 +153,6 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0 h1:WVsrXCnHlDDX8ls+tootqRE87/hL9S/g4ewig9RsD/c= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= @@ -197,8 +190,6 @@ github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5 github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= -github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= @@ -516,8 +507,6 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.17 h1:QeVUsEDNrLBW4tMgZHvxy18sKtr6VI492kBhUfhDJNI= -github.com/creack/pty v1.1.17/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= @@ -543,7 +532,6 @@ github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= -github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= @@ -565,8 +553,6 @@ github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZ github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= @@ -758,7 +744,6 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -1002,8 +987,8 @@ github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+l github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.16.2 h1:mpkHZh/Tv+xet3sy3F9Ld4FyI2tUpWe9x3XtPx9f1a0= -github.com/hashicorp/hcl/v2 v2.16.2/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= +github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY= +github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= @@ -1025,9 +1010,6 @@ github.com/hashicorp/yamux v0.1.1 h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE github.com/hashicorp/yamux v0.1.1/go.mod h1:CtWFDAQgb7dxtzFs4tWbplKIe2jSi3+5vKbgIO0SLnQ= github.com/hetznercloud/hcloud-go v1.33.1/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME= github.com/hetznercloud/hcloud-go v1.35.0/go.mod h1:mepQwR6va27S3UQthaEPGS86jtzSY9xWL1e9dyxXpgA= -github.com/hinshun/vt10x v0.0.0-20220119200601-820417d04eec/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02 h1:AgcIVYPa6XJnU3phs104wLj8l5GEththEw6+F79YsIY= -github.com/hinshun/vt10x v0.0.0-20220301184237-5011da428d02/go.mod h1:Q48J4R4DvxnHolD5P8pOtXigYlRuPLGl6moFx3ulM68= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= @@ -1036,8 +1018,6 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= -github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= @@ -1125,8 +1105,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= -github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= @@ -1147,9 +1125,8 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= @@ -1189,7 +1166,6 @@ github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -1220,8 +1196,6 @@ github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= -github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= @@ -1400,7 +1374,6 @@ github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1473,10 +1446,12 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/prometheus/prometheus v0.35.0/go.mod h1:7HaLx5kEPKJ0GDgbODG0fZgXbQ8K/XjZNJXQmbmgQlY= github.com/prometheus/prometheus v0.37.0/go.mod h1:egARUgz+K93zwqsVIAneFlLZefyGOON44WyAp4Xqbbk= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/pulumi/pulumi/pkg/v3 v3.85.0 h1:yk+Nr5U1wd2jOrrvX1WB3RYC4cw42SeY2igWxlxee0Q= -github.com/pulumi/pulumi/pkg/v3 v3.85.0/go.mod h1:jNgGFnA/dHm9jrd+ROeXMIBoWICS27U4EOjUqL8EP08= -github.com/pulumi/pulumi/sdk/v3 v3.85.0 h1:DRhwuwpd9lmo2gJUCAftsv/7avjUZio2NlLSprloh8Q= -github.com/pulumi/pulumi/sdk/v3 v3.85.0/go.mod h1:vexSGJ5L834l3T7Fo/KpdywjGAgZ2CvChuqGFl+ebS0= +github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= +github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= +github.com/pulumi/pulumi/pkg/v3 v3.91.1 h1:xHnyEwJO9we2zCiM9gHTkJxjZ6a6yi5vYCwWHCYRj9Y= +github.com/pulumi/pulumi/pkg/v3 v3.91.1/go.mod h1:dzBQDJyCOEhtBVN5INA5/i9yG9DZlsStl/mAkrhs9II= +github.com/pulumi/pulumi/sdk/v3 v3.91.1 h1:6I9GMmHv23X+G6hoduU1XE6hBWSNtB+zcb1MX17YvlA= +github.com/pulumi/pulumi/sdk/v3 v3.91.1/go.mod h1:zYaQQibB2pYKy/uG4c4YkX7lQIBpZ0KsuMaq/3HsIBQ= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -1489,8 +1464,8 @@ github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= @@ -1592,8 +1567,8 @@ github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1F github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -1812,6 +1787,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1842,8 +1819,8 @@ golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= +golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/schemagen/pkg/gen/lb.go b/schemagen/pkg/gen/lb.go index 5e5fa94b1..5ea8aff94 100644 --- a/schemagen/pkg/gen/lb.go +++ b/schemagen/pkg/gen/lb.go @@ -28,6 +28,7 @@ func generateLb(awsSpec schema.PackageSpec) schema.PackageSpec { Types: map[string]schema.ComplexTypeSpec{ "awsx:lb:Listener": lbListener(awsSpec), "awsx:lb:TargetGroup": lbTargetGroup(awsSpec), + // "awsx:lb:TargetGroupTargetHealthState": lbTargetGroupTargetHealthState(awsSpec), }, } } @@ -259,3 +260,14 @@ func lbTargetGroup(awsSpec schema.PackageSpec) schema.ComplexTypeSpec { }, } } + +func lbTargetGroupTargetHealthState(awsSpec schema.PackageSpec) schema.ComplexTypeSpec { + spec := awsSpec.Resources["aws:lb/targetGroupTargetHealthState:TargetGroupTargetHealthState"] + return schema.ComplexTypeSpec{ + ObjectTypeSpec: schema.ObjectTypeSpec{ + Type: "object", + Description: spec.Description, + Properties: renameAwsPropertiesRefs(awsSpec, spec.InputProperties), + }, + } +} diff --git a/schemagen/pkg/gen/schema.go b/schemagen/pkg/gen/schema.go index 5c38d745c..692799055 100644 --- a/schemagen/pkg/gen/schema.go +++ b/schemagen/pkg/gen/schema.go @@ -93,7 +93,7 @@ func GenerateSchema(packageDir string) schema.PackageSpec { }), "python": rawMessage(map[string]interface{}{ "requires": map[string]string{ - "pulumi": ">=3.76.1,<4.0.0", + "pulumi": ">=3.91.1,<4.0.0", "pulumi-aws": ">=6.0.4,<7.0.0", "pulumi-docker": fmt.Sprintf(">=%s,<5.0.0", dependencies.Docker), }, diff --git a/sdk/dotnet/Lb/ApplicationLoadBalancer.cs b/sdk/dotnet/Lb/ApplicationLoadBalancer.cs index 3a174648b..e04ed07ae 100644 --- a/sdk/dotnet/Lb/ApplicationLoadBalancer.cs +++ b/sdk/dotnet/Lb/ApplicationLoadBalancer.cs @@ -109,6 +109,12 @@ public sealed class ApplicationLoadBalancerArgs : global::Pulumi.ResourceArgs [Input("desyncMitigationMode")] public Input? DesyncMitigationMode { get; set; } + /// + /// Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + /// + [Input("dnsRecordClientRoutingPolicy")] + public Input? DnsRecordClientRoutingPolicy { get; set; } + /// /// Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. /// diff --git a/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs b/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs index acfe9ec88..d384cb70e 100644 --- a/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs +++ b/sdk/dotnet/Lb/Inputs/TargetGroupArgs.cs @@ -466,6 +466,131 @@ namespace Pulumi.Awsx.Lb.Inputs /// vpcId: ${aws_vpc.main.id} /// ``` /// {{% /example %}} + /// {{% example %}} + /// ### Target group with unhealthy connection termination disabled + /// + /// ```typescript + /// import * as pulumi from "@pulumi/pulumi"; + /// import * as aws from "@pulumi/aws"; + /// + /// const tcp_example = new aws.lb.TargetGroup("tcp-example", { + /// port: 25, + /// protocol: "TCP", + /// vpcId: aws_vpc.main.id, + /// targetHealthStates: [{ + /// enableUnhealthyConnectionTermination: false, + /// }], + /// }); + /// ``` + /// ```python + /// import pulumi + /// import pulumi_aws as aws + /// + /// tcp_example = aws.lb.TargetGroup("tcp-example", + /// port=25, + /// protocol="TCP", + /// vpc_id=aws_vpc["main"]["id"], + /// target_health_states=[aws.lb.TargetGroupTargetHealthStateArgs( + /// enable_unhealthy_connection_termination=False, + /// )]) + /// ``` + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var tcp_example = new Aws.LB.TargetGroup("tcp-example", new() + /// { + /// Port = 25, + /// Protocol = "TCP", + /// VpcId = aws_vpc.Main.Id, + /// TargetHealthStates = new[] + /// { + /// new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs + /// { + /// EnableUnhealthyConnectionTermination = false, + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// ```go + /// package main + /// + /// import ( + /// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + /// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + /// ) + /// + /// func main() { + /// pulumi.Run(func(ctx *pulumi.Context) error { + /// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ + /// Port: pulumi.Int(25), + /// Protocol: pulumi.String("TCP"), + /// VpcId: pulumi.Any(aws_vpc.Main.Id), + /// TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ + /// &lb.TargetGroupTargetHealthStateArgs{ + /// EnableUnhealthyConnectionTermination: pulumi.Bool(false), + /// }, + /// }, + /// }) + /// if err != nil { + /// return err + /// } + /// return nil + /// }) + /// } + /// ``` + /// ```java + /// package generated_program; + /// + /// import com.pulumi.Context; + /// import com.pulumi.Pulumi; + /// import com.pulumi.core.Output; + /// import com.pulumi.aws.lb.TargetGroup; + /// import com.pulumi.aws.lb.TargetGroupArgs; + /// import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; + /// import java.util.List; + /// import java.util.ArrayList; + /// import java.util.Map; + /// import java.io.File; + /// import java.nio.file.Files; + /// import java.nio.file.Paths; + /// + /// public class App { + /// public static void main(String[] args) { + /// Pulumi.run(App::stack); + /// } + /// + /// public static void stack(Context ctx) { + /// var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() + /// .port(25) + /// .protocol("TCP") + /// .vpcId(aws_vpc.main().id()) + /// .targetHealthStates(TargetGroupTargetHealthStateArgs.builder() + /// .enableUnhealthyConnectionTermination(false) + /// .build()) + /// .build()); + /// + /// } + /// } + /// ``` + /// ```yaml + /// resources: + /// tcp-example: + /// type: aws:lb:TargetGroup + /// properties: + /// port: 25 + /// protocol: TCP + /// vpcId: ${aws_vpc.main.id} + /// targetHealthStates: + /// - enableUnhealthyConnectionTermination: false + /// ``` + /// {{% /example %}} /// {{% /examples %}} /// /// ## Import @@ -599,6 +724,18 @@ public InputList TargetFailo set => _targetFailovers = value; } + [Input("targetHealthStates")] + private InputList? _targetHealthStates; + + /// + /// Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + /// + public InputList TargetHealthStates + { + get => _targetHealthStates ?? (_targetHealthStates = new InputList()); + set => _targetHealthStates = value; + } + /// /// Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. /// diff --git a/sdk/dotnet/Lb/NetworkLoadBalancer.cs b/sdk/dotnet/Lb/NetworkLoadBalancer.cs index 9dd19efcc..e9e158502 100644 --- a/sdk/dotnet/Lb/NetworkLoadBalancer.cs +++ b/sdk/dotnet/Lb/NetworkLoadBalancer.cs @@ -97,6 +97,12 @@ public sealed class NetworkLoadBalancerArgs : global::Pulumi.ResourceArgs [Input("desyncMitigationMode")] public Input? DesyncMitigationMode { get; set; } + /// + /// Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + /// + [Input("dnsRecordClientRoutingPolicy")] + public Input? DnsRecordClientRoutingPolicy { get; set; } + /// /// Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. /// diff --git a/sdk/go.mod b/sdk/go.mod index 1b6a5d8c6..20385630e 100644 --- a/sdk/go.mod +++ b/sdk/go.mod @@ -6,9 +6,9 @@ toolchain go1.21.1 require ( github.com/blang/semver v3.5.1+incompatible - github.com/pulumi/pulumi-aws/sdk/v6 v6.5.0 + github.com/pulumi/pulumi-aws/sdk/v6 v6.7.0 github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3 - github.com/pulumi/pulumi/sdk/v3 v3.85.0 + github.com/pulumi/pulumi/sdk/v3 v3.91.1 ) require ( @@ -37,7 +37,7 @@ require ( github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/hcl/v2 v2.16.2 // indirect + github.com/hashicorp/hcl/v2 v2.17.0 // indirect github.com/imdario/mergo v0.3.13 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect @@ -57,15 +57,16 @@ require ( github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect + github.com/pulumi/esc v0.5.6 // indirect github.com/rivo/uniseg v0.4.4 // indirect - github.com/rogpeppe/go-internal v1.9.0 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect github.com/skeema/knownhosts v1.1.0 // indirect github.com/spf13/cobra v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.8.3 // indirect + github.com/stretchr/objx v0.5.0 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect @@ -74,13 +75,14 @@ require ( github.com/zclconf/go-cty v1.13.2 // indirect go.uber.org/atomic v1.9.0 // indirect golang.org/x/crypto v0.14.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect golang.org/x/net v0.17.0 // indirect golang.org/x/sync v0.2.0 // indirect golang.org/x/sys v0.13.0 // indirect golang.org/x/term v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d // indirect - google.golang.org/grpc v1.57.0 // indirect + google.golang.org/grpc v1.57.1 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/sdk/go.sum b/sdk/go.sum index 8719e431a..d0d35a55b 100644 --- a/sdk/go.sum +++ b/sdk/go.sum @@ -77,8 +77,8 @@ github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/hcl/v2 v2.16.2 h1:mpkHZh/Tv+xet3sy3F9Ld4FyI2tUpWe9x3XtPx9f1a0= -github.com/hashicorp/hcl/v2 v2.16.2/go.mod h1:JRmR89jycNkrrqnMmvPDMd56n1rQJ2Q6KocSLCMCXng= +github.com/hashicorp/hcl/v2 v2.17.0 h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY= +github.com/hashicorp/hcl/v2 v2.17.0/go.mod h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= @@ -92,9 +92,8 @@ github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQL github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -143,18 +142,20 @@ github.com/pkg/term v1.1.0 h1:xIAAdCMh3QIAy+5FrE8Ad8XoDhEU4ufwbaSozViP9kk= github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pulumi/pulumi-aws/sdk/v6 v6.5.0 h1:ouyCTAVyK7oeWPbAhWOd6mZQTIt3/56/Zc3OsLnvYLA= -github.com/pulumi/pulumi-aws/sdk/v6 v6.5.0/go.mod h1:UeOesX8l9ntIiiKXdQue8/rQDAvSf7Spd5qf15qngcY= +github.com/pulumi/esc v0.5.6 h1:4WV3X7OEVcChIwbSG+JxhZDdmq/q7lFPaSjHRYlPwmI= +github.com/pulumi/esc v0.5.6/go.mod h1:wpwNfVS5fV7Kd51j4dJ6FWYlKfxdqyppgp0gtkzqH04= +github.com/pulumi/pulumi-aws/sdk/v6 v6.7.0 h1:dV/Z1+zo4VidKkykPOJS5uAb6rlumwHHaSgzQhIg3+w= +github.com/pulumi/pulumi-aws/sdk/v6 v6.7.0/go.mod h1:rcJQBU34BEyeDaN+ImpT1e45x+JLKSzSSR+ahvJm2H8= github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3 h1:gQC2As+wE8QflbLCG90jLaKwIpqW3yl1y327Jj6ovbI= github.com/pulumi/pulumi-docker/sdk/v4 v4.4.3/go.mod h1:i19ZhFjFQrngtXYLHp3kjZNRmnEnq/DUdXK6/CBk77o= -github.com/pulumi/pulumi/sdk/v3 v3.85.0 h1:DRhwuwpd9lmo2gJUCAftsv/7avjUZio2NlLSprloh8Q= -github.com/pulumi/pulumi/sdk/v3 v3.85.0/go.mod h1:vexSGJ5L834l3T7Fo/KpdywjGAgZ2CvChuqGFl+ebS0= +github.com/pulumi/pulumi/sdk/v3 v3.91.1 h1:6I9GMmHv23X+G6hoduU1XE6hBWSNtB+zcb1MX17YvlA= +github.com/pulumi/pulumi/sdk/v3 v3.91.1/go.mod h1:zYaQQibB2pYKy/uG4c4YkX7lQIBpZ0KsuMaq/3HsIBQ= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.4 h1:8TfxU8dW6PdqD27gjM8MVNuicgxIjxpm4K7x4jp8sis= github.com/rivo/uniseg v0.4.4/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= -github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= @@ -171,6 +172,7 @@ github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRM github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -179,8 +181,10 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= @@ -210,6 +214,8 @@ golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -289,8 +295,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d h1:pgIUhmqwKOUlnKna4r6amKdUngdL8DrkpFeV8+VBElY= google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= -google.golang.org/grpc v1.57.0 h1:kfzNeI/klCGD2YPMUlaGNT3pxvYfga7smW3Vth8Zsiw= -google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= +google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff --git a/sdk/go/awsx/ec2/getDefaultVpc.go b/sdk/go/awsx/ec2/getDefaultVpc.go index 198f7533a..c4e3b8aef 100644 --- a/sdk/go/awsx/ec2/getDefaultVpc.go +++ b/sdk/go/awsx/ec2/getDefaultVpc.go @@ -4,8 +4,12 @@ package ec2 import ( + "context" + "reflect" + "github.com/pulumi/pulumi-awsx/sdk/v2/go/awsx/internal" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/pulumi/pulumi/sdk/v3/go/pulumix" ) // [NOT YET IMPLEMENTED] Get the Default VPC for a region. @@ -32,3 +36,62 @@ type GetDefaultVpcResult struct { // The VPC ID for the default VPC VpcId string `pulumi:"vpcId"` } + +func GetDefaultVpcOutput(ctx *pulumi.Context, args GetDefaultVpcOutputArgs, opts ...pulumi.InvokeOption) GetDefaultVpcResultOutput { + return pulumi.ToOutputWithContext(context.Background(), args). + ApplyT(func(v interface{}) (GetDefaultVpcResult, error) { + args := v.(GetDefaultVpcArgs) + r, err := GetDefaultVpc(ctx, &args, opts...) + var s GetDefaultVpcResult + if r != nil { + s = *r + } + return s, err + }).(GetDefaultVpcResultOutput) +} + +// Arguments for getting the default VPC +type GetDefaultVpcOutputArgs struct { +} + +func (GetDefaultVpcOutputArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDefaultVpcArgs)(nil)).Elem() +} + +// Outputs from the default VPC configuration +type GetDefaultVpcResultOutput struct{ *pulumi.OutputState } + +func (GetDefaultVpcResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDefaultVpcResult)(nil)).Elem() +} + +func (o GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutput() GetDefaultVpcResultOutput { + return o +} + +func (o GetDefaultVpcResultOutput) ToGetDefaultVpcResultOutputWithContext(ctx context.Context) GetDefaultVpcResultOutput { + return o +} + +func (o GetDefaultVpcResultOutput) ToOutput(ctx context.Context) pulumix.Output[GetDefaultVpcResult] { + return pulumix.Output[GetDefaultVpcResult]{ + OutputState: o.OutputState, + } +} + +func (o GetDefaultVpcResultOutput) PrivateSubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDefaultVpcResult) []string { return v.PrivateSubnetIds }).(pulumi.StringArrayOutput) +} + +func (o GetDefaultVpcResultOutput) PublicSubnetIds() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDefaultVpcResult) []string { return v.PublicSubnetIds }).(pulumi.StringArrayOutput) +} + +// The VPC ID for the default VPC +func (o GetDefaultVpcResultOutput) VpcId() pulumi.StringOutput { + return o.ApplyT(func(v GetDefaultVpcResult) string { return v.VpcId }).(pulumi.StringOutput) +} + +func init() { + pulumi.RegisterOutputType(GetDefaultVpcResultOutput{}) +} diff --git a/sdk/go/awsx/lb/applicationLoadBalancer.go b/sdk/go/awsx/lb/applicationLoadBalancer.go index 576d64903..0c839d71f 100644 --- a/sdk/go/awsx/lb/applicationLoadBalancer.go +++ b/sdk/go/awsx/lb/applicationLoadBalancer.go @@ -63,6 +63,8 @@ type applicationLoadBalancerArgs struct { DefaultTargetGroupPort *int `pulumi:"defaultTargetGroupPort"` // Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. DesyncMitigationMode *string `pulumi:"desyncMitigationMode"` + // Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + DnsRecordClientRoutingPolicy *string `pulumi:"dnsRecordClientRoutingPolicy"` // Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. DropInvalidHeaderFields *bool `pulumi:"dropInvalidHeaderFields"` // If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. @@ -123,6 +125,8 @@ type ApplicationLoadBalancerArgs struct { DefaultTargetGroupPort pulumi.IntPtrInput // Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. DesyncMitigationMode pulumi.StringPtrInput + // Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + DnsRecordClientRoutingPolicy pulumi.StringPtrInput // Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. DropInvalidHeaderFields pulumi.BoolPtrInput // If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. diff --git a/sdk/go/awsx/lb/networkLoadBalancer.go b/sdk/go/awsx/lb/networkLoadBalancer.go index fe0296ff6..af49daa99 100644 --- a/sdk/go/awsx/lb/networkLoadBalancer.go +++ b/sdk/go/awsx/lb/networkLoadBalancer.go @@ -55,6 +55,8 @@ type networkLoadBalancerArgs struct { DefaultTargetGroupPort *int `pulumi:"defaultTargetGroupPort"` // Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. DesyncMitigationMode *string `pulumi:"desyncMitigationMode"` + // Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + DnsRecordClientRoutingPolicy *string `pulumi:"dnsRecordClientRoutingPolicy"` // Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. DropInvalidHeaderFields *bool `pulumi:"dropInvalidHeaderFields"` // If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`. @@ -111,6 +113,8 @@ type NetworkLoadBalancerArgs struct { DefaultTargetGroupPort pulumi.IntPtrInput // Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. DesyncMitigationMode pulumi.StringPtrInput + // Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + DnsRecordClientRoutingPolicy pulumi.StringPtrInput // Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. DropInvalidHeaderFields pulumi.BoolPtrInput // If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`. diff --git a/sdk/go/awsx/lb/pulumiTypes.go b/sdk/go/awsx/lb/pulumiTypes.go index 784717f5c..9d4fa8f9c 100644 --- a/sdk/go/awsx/lb/pulumiTypes.go +++ b/sdk/go/awsx/lb/pulumiTypes.go @@ -1489,6 +1489,37 @@ func (o ListenerArrayOutput) Index(i pulumi.IntInput) ListenerOutput { // } // // ``` +// ### Target group with unhealthy connection termination disabled +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ +// Port: pulumi.Int(25), +// Protocol: pulumi.String("TCP"), +// VpcId: pulumi.Any(aws_vpc.Main.Id), +// TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ +// &lb.TargetGroupTargetHealthStateArgs{ +// EnableUnhealthyConnectionTermination: pulumi.Bool(false), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -1536,6 +1567,8 @@ type TargetGroup struct { Tags map[string]string `pulumi:"tags"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. TargetFailovers []lb.TargetGroupTargetFailover `pulumi:"targetFailovers"` + // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + TargetHealthStates []lb.TargetGroupTargetHealthState `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. // // Note that you can't specify targets for a target group using both instance IDs and IP addresses. @@ -1684,6 +1717,37 @@ type TargetGroupInput interface { // } // // ``` +// ### Target group with unhealthy connection termination disabled +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ +// Port: pulumi.Int(25), +// Protocol: pulumi.String("TCP"), +// VpcId: pulumi.Any(aws_vpc.Main.Id), +// TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ +// &lb.TargetGroupTargetHealthStateArgs{ +// EnableUnhealthyConnectionTermination: pulumi.Bool(false), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -1731,6 +1795,8 @@ type TargetGroupArgs struct { Tags pulumi.StringMapInput `pulumi:"tags"` // Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. TargetFailovers lb.TargetGroupTargetFailoverArrayInput `pulumi:"targetFailovers"` + // Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + TargetHealthStates lb.TargetGroupTargetHealthStateArrayInput `pulumi:"targetHealthStates"` // Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. // // Note that you can't specify targets for a target group using both instance IDs and IP addresses. @@ -1933,6 +1999,37 @@ func (i *targetGroupPtrType) ToOutput(ctx context.Context) pulumix.Output[*Targe // } // // ``` +// ### Target group with unhealthy connection termination disabled +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ +// Port: pulumi.Int(25), +// Protocol: pulumi.String("TCP"), +// VpcId: pulumi.Any(aws_vpc.Main.Id), +// TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ +// &lb.TargetGroupTargetHealthStateArgs{ +// EnableUnhealthyConnectionTermination: pulumi.Bool(false), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` // // ## Import // @@ -2063,6 +2160,11 @@ func (o TargetGroupOutput) TargetFailovers() lb.TargetGroupTargetFailoverArrayOu return o.ApplyT(func(v TargetGroup) []lb.TargetGroupTargetFailover { return v.TargetFailovers }).(lb.TargetGroupTargetFailoverArrayOutput) } +// Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. +func (o TargetGroupOutput) TargetHealthStates() lb.TargetGroupTargetHealthStateArrayOutput { + return o.ApplyT(func(v TargetGroup) []lb.TargetGroupTargetHealthState { return v.TargetHealthStates }).(lb.TargetGroupTargetHealthStateArrayOutput) +} + // Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. // // Note that you can't specify targets for a target group using both instance IDs and IP addresses. @@ -2291,6 +2393,16 @@ func (o TargetGroupPtrOutput) TargetFailovers() lb.TargetGroupTargetFailoverArra }).(lb.TargetGroupTargetFailoverArrayOutput) } +// Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. +func (o TargetGroupPtrOutput) TargetHealthStates() lb.TargetGroupTargetHealthStateArrayOutput { + return o.ApplyT(func(v *TargetGroup) []lb.TargetGroupTargetHealthState { + if v == nil { + return nil + } + return v.TargetHealthStates + }).(lb.TargetGroupTargetHealthStateArrayOutput) +} + // Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. // // Note that you can't specify targets for a target group using both instance IDs and IP addresses. diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle index 34330571e..995698592 100644 --- a/sdk/java/build.gradle +++ b/sdk/java/build.gradle @@ -43,8 +43,8 @@ repositories { dependencies { implementation("com.google.code.findbugs:jsr305:3.0.2") implementation("com.google.code.gson:gson:2.8.9") - implementation("com.pulumi:aws:6.5.0") - implementation("com.pulumi:docker:4.4.3") + implementation("com.pulumi:aws:6.7.0") + implementation("com.pulumi:docker:4.4.4") implementation("com.pulumi:pulumi:0.9.7") } diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java index 9e4a40874..6363a2d8a 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/ApplicationLoadBalancerArgs.java @@ -115,6 +115,21 @@ public Optional> desyncMitigationMode() { return Optional.ofNullable(this.desyncMitigationMode); } + /** + * Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + */ + @Import(name="dnsRecordClientRoutingPolicy") + private @Nullable Output dnsRecordClientRoutingPolicy; + + /** + * @return Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + */ + public Optional> dnsRecordClientRoutingPolicy() { + return Optional.ofNullable(this.dnsRecordClientRoutingPolicy); + } + /** * Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. * @@ -432,6 +447,7 @@ private ApplicationLoadBalancerArgs(ApplicationLoadBalancerArgs $) { this.defaultTargetGroup = $.defaultTargetGroup; this.defaultTargetGroupPort = $.defaultTargetGroupPort; this.desyncMitigationMode = $.desyncMitigationMode; + this.dnsRecordClientRoutingPolicy = $.dnsRecordClientRoutingPolicy; this.dropInvalidHeaderFields = $.dropInvalidHeaderFields; this.enableDeletionProtection = $.enableDeletionProtection; this.enableHttp2 = $.enableHttp2; @@ -578,6 +594,27 @@ public Builder desyncMitigationMode(String desyncMitigationMode) { return desyncMitigationMode(Output.of(desyncMitigationMode)); } + /** + * @param dnsRecordClientRoutingPolicy Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + * @return builder + * + */ + public Builder dnsRecordClientRoutingPolicy(@Nullable Output dnsRecordClientRoutingPolicy) { + $.dnsRecordClientRoutingPolicy = dnsRecordClientRoutingPolicy; + return this; + } + + /** + * @param dnsRecordClientRoutingPolicy Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + * @return builder + * + */ + public Builder dnsRecordClientRoutingPolicy(String dnsRecordClientRoutingPolicy) { + return dnsRecordClientRoutingPolicy(Output.of(dnsRecordClientRoutingPolicy)); + } + /** * @param dropInvalidHeaderFields Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java index 564d6d309..0de90b326 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/NetworkLoadBalancerArgs.java @@ -99,6 +99,21 @@ public Optional> desyncMitigationMode() { return Optional.ofNullable(this.desyncMitigationMode); } + /** + * Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + */ + @Import(name="dnsRecordClientRoutingPolicy") + private @Nullable Output dnsRecordClientRoutingPolicy; + + /** + * @return Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + */ + public Optional> dnsRecordClientRoutingPolicy() { + return Optional.ofNullable(this.dnsRecordClientRoutingPolicy); + } + /** * Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. * @@ -400,6 +415,7 @@ private NetworkLoadBalancerArgs(NetworkLoadBalancerArgs $) { this.defaultTargetGroup = $.defaultTargetGroup; this.defaultTargetGroupPort = $.defaultTargetGroupPort; this.desyncMitigationMode = $.desyncMitigationMode; + this.dnsRecordClientRoutingPolicy = $.dnsRecordClientRoutingPolicy; this.dropInvalidHeaderFields = $.dropInvalidHeaderFields; this.enableCrossZoneLoadBalancing = $.enableCrossZoneLoadBalancing; this.enableDeletionProtection = $.enableDeletionProtection; @@ -534,6 +550,27 @@ public Builder desyncMitigationMode(String desyncMitigationMode) { return desyncMitigationMode(Output.of(desyncMitigationMode)); } + /** + * @param dnsRecordClientRoutingPolicy Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + * @return builder + * + */ + public Builder dnsRecordClientRoutingPolicy(@Nullable Output dnsRecordClientRoutingPolicy) { + $.dnsRecordClientRoutingPolicy = dnsRecordClientRoutingPolicy; + return this; + } + + /** + * @param dnsRecordClientRoutingPolicy Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + * + * @return builder + * + */ + public Builder dnsRecordClientRoutingPolicy(String dnsRecordClientRoutingPolicy) { + return dnsRecordClientRoutingPolicy(Output.of(dnsRecordClientRoutingPolicy)); + } + /** * @param dropInvalidHeaderFields Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. * diff --git a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java index 6daf065c0..67f2e47a7 100644 --- a/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java +++ b/sdk/java/src/main/java/com/pulumi/awsx/lb/inputs/TargetGroupArgs.java @@ -6,6 +6,7 @@ import com.pulumi.aws.lb.inputs.TargetGroupHealthCheckArgs; import com.pulumi.aws.lb.inputs.TargetGroupStickinessArgs; import com.pulumi.aws.lb.inputs.TargetGroupTargetFailoverArgs; +import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; import com.pulumi.core.Output; import com.pulumi.core.annotations.Import; import java.lang.Boolean; @@ -160,6 +161,41 @@ * } * } * ``` + * ### Target group with unhealthy connection termination disabled + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.lb.TargetGroup; + * import com.pulumi.aws.lb.TargetGroupArgs; + * import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() + * .port(25) + * .protocol("TCP") + * .vpcId(aws_vpc.main().id()) + * .targetHealthStates(TargetGroupTargetHealthStateArgs.builder() + * .enableUnhealthyConnectionTermination(false) + * .build()) + * .build()); + * + * } + * } + * ``` * * ## Import * @@ -444,6 +480,21 @@ public Optional>> targetFailovers() { return Optional.ofNullable(this.targetFailovers); } + /** + * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + * + */ + @Import(name="targetHealthStates") + private @Nullable Output> targetHealthStates; + + /** + * @return Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + * + */ + public Optional>> targetHealthStates() { + return Optional.ofNullable(this.targetHealthStates); + } + /** * Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. * @@ -511,6 +562,7 @@ private TargetGroupArgs(TargetGroupArgs $) { this.stickiness = $.stickiness; this.tags = $.tags; this.targetFailovers = $.targetFailovers; + this.targetHealthStates = $.targetHealthStates; this.targetType = $.targetType; this.vpcId = $.vpcId; } @@ -921,6 +973,37 @@ public Builder targetFailovers(TargetGroupTargetFailoverArgs... targetFailovers) return targetFailovers(List.of(targetFailovers)); } + /** + * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + * + * @return builder + * + */ + public Builder targetHealthStates(@Nullable Output> targetHealthStates) { + $.targetHealthStates = targetHealthStates; + return this; + } + + /** + * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + * + * @return builder + * + */ + public Builder targetHealthStates(List targetHealthStates) { + return targetHealthStates(Output.of(targetHealthStates)); + } + + /** + * @param targetHealthStates Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + * + * @return builder + * + */ + public Builder targetHealthStates(TargetGroupTargetHealthStateArgs... targetHealthStates) { + return targetHealthStates(List.of(targetHealthStates)); + } + /** * @param targetType Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. * diff --git a/sdk/nodejs/lb/applicationLoadBalancer.ts b/sdk/nodejs/lb/applicationLoadBalancer.ts index 32ecebee2..838241d9f 100644 --- a/sdk/nodejs/lb/applicationLoadBalancer.ts +++ b/sdk/nodejs/lb/applicationLoadBalancer.ts @@ -65,6 +65,7 @@ export class ApplicationLoadBalancer extends pulumi.ComponentResource { resourceInputs["defaultTargetGroup"] = args ? args.defaultTargetGroup : undefined; resourceInputs["defaultTargetGroupPort"] = args ? args.defaultTargetGroupPort : undefined; resourceInputs["desyncMitigationMode"] = args ? args.desyncMitigationMode : undefined; + resourceInputs["dnsRecordClientRoutingPolicy"] = args ? args.dnsRecordClientRoutingPolicy : undefined; resourceInputs["dropInvalidHeaderFields"] = args ? args.dropInvalidHeaderFields : undefined; resourceInputs["enableDeletionProtection"] = args ? args.enableDeletionProtection : undefined; resourceInputs["enableHttp2"] = args ? args.enableHttp2 : undefined; @@ -127,6 +128,10 @@ export interface ApplicationLoadBalancerArgs { * Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. */ desyncMitigationMode?: pulumi.Input; + /** + * Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + */ + dnsRecordClientRoutingPolicy?: pulumi.Input; /** * Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. */ diff --git a/sdk/nodejs/lb/networkLoadBalancer.ts b/sdk/nodejs/lb/networkLoadBalancer.ts index 822667b03..b7db7caa2 100644 --- a/sdk/nodejs/lb/networkLoadBalancer.ts +++ b/sdk/nodejs/lb/networkLoadBalancer.ts @@ -60,6 +60,7 @@ export class NetworkLoadBalancer extends pulumi.ComponentResource { resourceInputs["defaultTargetGroup"] = args ? args.defaultTargetGroup : undefined; resourceInputs["defaultTargetGroupPort"] = args ? args.defaultTargetGroupPort : undefined; resourceInputs["desyncMitigationMode"] = args ? args.desyncMitigationMode : undefined; + resourceInputs["dnsRecordClientRoutingPolicy"] = args ? args.dnsRecordClientRoutingPolicy : undefined; resourceInputs["dropInvalidHeaderFields"] = args ? args.dropInvalidHeaderFields : undefined; resourceInputs["enableCrossZoneLoadBalancing"] = args ? args.enableCrossZoneLoadBalancing : undefined; resourceInputs["enableDeletionProtection"] = args ? args.enableDeletionProtection : undefined; @@ -116,6 +117,10 @@ export interface NetworkLoadBalancerArgs { * Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. */ desyncMitigationMode?: pulumi.Input; + /** + * Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + */ + dnsRecordClientRoutingPolicy?: pulumi.Input; /** * Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. */ diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index d04b1b6b5..787168f11 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -16,8 +16,8 @@ }, "dependencies": { "@aws-sdk/client-ecs": "^3.405.0", - "@pulumi/aws": "^6.5.0", - "@pulumi/docker": "^4.4.3", + "@pulumi/aws": "^6.7.0", + "@pulumi/docker": "^4.4.4", "@pulumi/pulumi": "^3.0.0", "@types/aws-lambda": "^8.10.23", "aws-sdk": "^2.1450.0", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index a1fc65d47..11706590d 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -3299,6 +3299,131 @@ export namespace lb { * vpcId: ${aws_vpc.main.id} * ``` * {{% /example %}} + * {{% example %}} + * ### Target group with unhealthy connection termination disabled + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const tcp_example = new aws.lb.TargetGroup("tcp-example", { + * port: 25, + * protocol: "TCP", + * vpcId: aws_vpc.main.id, + * targetHealthStates: [{ + * enableUnhealthyConnectionTermination: false, + * }], + * }); + * ``` + * ```python + * import pulumi + * import pulumi_aws as aws + * + * tcp_example = aws.lb.TargetGroup("tcp-example", + * port=25, + * protocol="TCP", + * vpc_id=aws_vpc["main"]["id"], + * target_health_states=[aws.lb.TargetGroupTargetHealthStateArgs( + * enable_unhealthy_connection_termination=False, + * )]) + * ``` + * ```csharp + * using System.Collections.Generic; + * using System.Linq; + * using Pulumi; + * using Aws = Pulumi.Aws; + * + * return await Deployment.RunAsync(() => + * { + * var tcp_example = new Aws.LB.TargetGroup("tcp-example", new() + * { + * Port = 25, + * Protocol = "TCP", + * VpcId = aws_vpc.Main.Id, + * TargetHealthStates = new[] + * { + * new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs + * { + * EnableUnhealthyConnectionTermination = false, + * }, + * }, + * }); + * + * }); + * ``` + * ```go + * package main + * + * import ( + * "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + * "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + * ) + * + * func main() { + * pulumi.Run(func(ctx *pulumi.Context) error { + * _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ + * Port: pulumi.Int(25), + * Protocol: pulumi.String("TCP"), + * VpcId: pulumi.Any(aws_vpc.Main.Id), + * TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ + * &lb.TargetGroupTargetHealthStateArgs{ + * EnableUnhealthyConnectionTermination: pulumi.Bool(false), + * }, + * }, + * }) + * if err != nil { + * return err + * } + * return nil + * }) + * } + * ``` + * ```java + * package generated_program; + * + * import com.pulumi.Context; + * import com.pulumi.Pulumi; + * import com.pulumi.core.Output; + * import com.pulumi.aws.lb.TargetGroup; + * import com.pulumi.aws.lb.TargetGroupArgs; + * import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; + * import java.util.List; + * import java.util.ArrayList; + * import java.util.Map; + * import java.io.File; + * import java.nio.file.Files; + * import java.nio.file.Paths; + * + * public class App { + * public static void main(String[] args) { + * Pulumi.run(App::stack); + * } + * + * public static void stack(Context ctx) { + * var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() + * .port(25) + * .protocol("TCP") + * .vpcId(aws_vpc.main().id()) + * .targetHealthStates(TargetGroupTargetHealthStateArgs.builder() + * .enableUnhealthyConnectionTermination(false) + * .build()) + * .build()); + * + * } + * } + * ``` + * ```yaml + * resources: + * tcp-example: + * type: aws:lb:TargetGroup + * properties: + * port: 25 + * protocol: TCP + * vpcId: ${aws_vpc.main.id} + * targetHealthStates: + * - enableUnhealthyConnectionTermination: false + * ``` + * {{% /example %}} * {{% /examples %}} * * ## Import @@ -3383,6 +3508,10 @@ export namespace lb { * Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. */ targetFailovers?: pulumi.Input[]>; + /** + * Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + */ + targetHealthStates?: pulumi.Input[]>; /** * Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. * diff --git a/sdk/python/pulumi_awsx/awsx/_inputs.py b/sdk/python/pulumi_awsx/awsx/_inputs.py index 34aada83b..2c894b3d4 100644 --- a/sdk/python/pulumi_awsx/awsx/_inputs.py +++ b/sdk/python/pulumi_awsx/awsx/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities import pulumi_aws @@ -77,97 +77,48 @@ def __init__(__self__, *, :param pulumi.Input[str] website_domain: The domain of the website endpoint, if the bucket is configured with a website. If not, this will be an empty string. This is used to create Route 53 alias records. :param pulumi.Input[str] website_endpoint: The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. """ - BucketArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - acceleration_status=acceleration_status, - acl=acl, - arn=arn, - bucket=bucket, - bucket_prefix=bucket_prefix, - cors_rules=cors_rules, - force_destroy=force_destroy, - grants=grants, - hosted_zone_id=hosted_zone_id, - lifecycle_rules=lifecycle_rules, - loggings=loggings, - object_lock_configuration=object_lock_configuration, - policy=policy, - replication_configuration=replication_configuration, - request_payer=request_payer, - server_side_encryption_configuration=server_side_encryption_configuration, - tags=tags, - versioning=versioning, - website=website, - website_domain=website_domain, - website_endpoint=website_endpoint, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - acceleration_status: Optional[pulumi.Input[str]] = None, - acl: Optional[pulumi.Input[str]] = None, - arn: Optional[pulumi.Input[str]] = None, - bucket: Optional[pulumi.Input[str]] = None, - bucket_prefix: Optional[pulumi.Input[str]] = None, - cors_rules: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketCorsRuleArgs']]]] = None, - force_destroy: Optional[pulumi.Input[bool]] = None, - grants: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketGrantArgs']]]] = None, - hosted_zone_id: Optional[pulumi.Input[str]] = None, - lifecycle_rules: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLifecycleRuleArgs']]]] = None, - loggings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.s3.BucketLoggingArgs']]]] = None, - object_lock_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketObjectLockConfigurationArgs']] = None, - policy: Optional[pulumi.Input[str]] = None, - replication_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketReplicationConfigurationArgs']] = None, - request_payer: Optional[pulumi.Input[str]] = None, - server_side_encryption_configuration: Optional[pulumi.Input['pulumi_aws.s3.BucketServerSideEncryptionConfigurationArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - versioning: Optional[pulumi.Input['pulumi_aws.s3.BucketVersioningArgs']] = None, - website: Optional[pulumi.Input['pulumi_aws.s3.BucketWebsiteArgs']] = None, - website_domain: Optional[pulumi.Input[str]] = None, - website_endpoint: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if acceleration_status is not None: - _setter("acceleration_status", acceleration_status) + pulumi.set(__self__, "acceleration_status", acceleration_status) if acl is not None: - _setter("acl", acl) + pulumi.set(__self__, "acl", acl) if arn is not None: - _setter("arn", arn) + pulumi.set(__self__, "arn", arn) if bucket is not None: - _setter("bucket", bucket) + pulumi.set(__self__, "bucket", bucket) if bucket_prefix is not None: - _setter("bucket_prefix", bucket_prefix) + pulumi.set(__self__, "bucket_prefix", bucket_prefix) if cors_rules is not None: - _setter("cors_rules", cors_rules) + pulumi.set(__self__, "cors_rules", cors_rules) if force_destroy is not None: - _setter("force_destroy", force_destroy) + pulumi.set(__self__, "force_destroy", force_destroy) if grants is not None: - _setter("grants", grants) + pulumi.set(__self__, "grants", grants) if hosted_zone_id is not None: - _setter("hosted_zone_id", hosted_zone_id) + pulumi.set(__self__, "hosted_zone_id", hosted_zone_id) if lifecycle_rules is not None: - _setter("lifecycle_rules", lifecycle_rules) + pulumi.set(__self__, "lifecycle_rules", lifecycle_rules) if loggings is not None: - _setter("loggings", loggings) + pulumi.set(__self__, "loggings", loggings) if object_lock_configuration is not None: - _setter("object_lock_configuration", object_lock_configuration) + pulumi.set(__self__, "object_lock_configuration", object_lock_configuration) if policy is not None: - _setter("policy", policy) + pulumi.set(__self__, "policy", policy) if replication_configuration is not None: - _setter("replication_configuration", replication_configuration) + pulumi.set(__self__, "replication_configuration", replication_configuration) if request_payer is not None: - _setter("request_payer", request_payer) + pulumi.set(__self__, "request_payer", request_payer) if server_side_encryption_configuration is not None: - _setter("server_side_encryption_configuration", server_side_encryption_configuration) + pulumi.set(__self__, "server_side_encryption_configuration", server_side_encryption_configuration) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if versioning is not None: - _setter("versioning", versioning) + pulumi.set(__self__, "versioning", versioning) if website is not None: - _setter("website", website) + pulumi.set(__self__, "website", website) if website_domain is not None: - _setter("website_domain", website_domain) + pulumi.set(__self__, "website_domain", website_domain) if website_endpoint is not None: - _setter("website_endpoint", website_endpoint) + pulumi.set(__self__, "website_endpoint", website_endpoint) @property @pulumi.getter(name="accelerationStatus") @@ -439,25 +390,12 @@ def __init__(__self__, *, :param 'ExistingLogGroupArgs' existing: Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. :param bool skip: Skip creation of the log group. """ - DefaultLogGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - args=args, - existing=existing, - skip=skip, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - args: Optional['LogGroupArgs'] = None, - existing: Optional['ExistingLogGroupArgs'] = None, - skip: Optional[bool] = None, - opts: Optional[pulumi.ResourceOptions]=None): if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if existing is not None: - _setter("existing", existing) + pulumi.set(__self__, "existing", existing) if skip is not None: - _setter("skip", skip) + pulumi.set(__self__, "skip", skip) @property @pulumi.getter @@ -508,25 +446,12 @@ def __init__(__self__, *, :param pulumi.Input[str] role_arn: ARN of existing role to use instead of creating a new role. Cannot be used in combination with `args` or `opts`. :param bool skip: Skips creation of the role if set to `true`. """ - DefaultRoleWithPolicyArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - args=args, - role_arn=role_arn, - skip=skip, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - args: Optional['RoleWithPolicyArgs'] = None, - role_arn: Optional[pulumi.Input[str]] = None, - skip: Optional[bool] = None, - opts: Optional[pulumi.ResourceOptions]=None): if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if role_arn is not None: - _setter("role_arn", role_arn) + pulumi.set(__self__, "role_arn", role_arn) if skip is not None: - _setter("skip", skip) + pulumi.set(__self__, "skip", skip) @property @pulumi.getter @@ -577,25 +502,12 @@ def __init__(__self__, *, :param pulumi.Input[str] security_group_id: Id of existing security group to use instead of creating a new security group. Cannot be used in combination with `args` or `opts`. :param bool skip: Skips creation of the security group if set to `true`. """ - DefaultSecurityGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - args=args, - security_group_id=security_group_id, - skip=skip, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - args: Optional['SecurityGroupArgs'] = None, - security_group_id: Optional[pulumi.Input[str]] = None, - skip: Optional[bool] = None, - opts: Optional[pulumi.ResourceOptions]=None): if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if security_group_id is not None: - _setter("security_group_id", security_group_id) + pulumi.set(__self__, "security_group_id", security_group_id) if skip is not None: - _setter("skip", skip) + pulumi.set(__self__, "skip", skip) @property @pulumi.getter @@ -644,21 +556,10 @@ def __init__(__self__, *, :param pulumi.Input[str] arn: Arn of the bucket. Only one of [arn] or [name] can be specified. :param pulumi.Input[str] name: Name of the bucket. Only one of [arn] or [name] can be specified. """ - ExistingBucketArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - arn=arn, - name=name, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - arn: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if arn is not None: - _setter("arn", arn) + pulumi.set(__self__, "arn", arn) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) @property @pulumi.getter @@ -697,25 +598,12 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the log group. Only one of [arn] or [name] can be specified. :param pulumi.Input[str] region: Region of the log group. If not specified, the provider region will be used. """ - ExistingLogGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - arn=arn, - name=name, - region=region, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - arn: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - region: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if arn is not None: - _setter("arn", arn) + pulumi.set(__self__, "arn", arn) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if region is not None: - _setter("region", region) + pulumi.set(__self__, "region", region) @property @pulumi.getter @@ -776,37 +664,18 @@ def __init__(__self__, *, :param pulumi.Input[bool] skip_destroy: Set to true if you do not wish the log group (and any logs it may contain) to be deleted at destroy time, and instead just remove the log group from the state. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - LogGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - kms_key_id=kms_key_id, - name=name, - name_prefix=name_prefix, - retention_in_days=retention_in_days, - skip_destroy=skip_destroy, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - kms_key_id: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - retention_in_days: Optional[pulumi.Input[int]] = None, - skip_destroy: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if kms_key_id is not None: - _setter("kms_key_id", kms_key_id) + pulumi.set(__self__, "kms_key_id", kms_key_id) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if retention_in_days is not None: - _setter("retention_in_days", retention_in_days) + pulumi.set(__self__, "retention_in_days", retention_in_days) if skip_destroy is not None: - _setter("skip_destroy", skip_destroy) + pulumi.set(__self__, "skip_destroy", skip_destroy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="kmsKeyId") @@ -897,25 +766,12 @@ def __init__(__self__, *, :param bool enable: Enable creation of the log group. :param 'ExistingLogGroupArgs' existing: Identity of an existing log group to use. Cannot be used in combination with `args` or `opts`. """ - OptionalLogGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - args=args, - enable=enable, - existing=existing, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - args: Optional['LogGroupArgs'] = None, - enable: Optional[bool] = None, - existing: Optional['ExistingLogGroupArgs'] = None, - opts: Optional[pulumi.ResourceOptions]=None): if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if enable is not None: - _setter("enable", enable) + pulumi.set(__self__, "enable", enable) if existing is not None: - _setter("existing", existing) + pulumi.set(__self__, "existing", existing) @property @pulumi.getter @@ -964,21 +820,10 @@ def __init__(__self__, *, :param 'BucketArgs' args: Arguments to use instead of the default values during creation. :param 'ExistingBucketArgs' existing: Identity of an existing bucket to use. Cannot be used in combination with `args`. """ - RequiredBucketArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - args=args, - existing=existing, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - args: Optional['BucketArgs'] = None, - existing: Optional['ExistingBucketArgs'] = None, - opts: Optional[pulumi.ResourceOptions]=None): if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if existing is not None: - _setter("existing", existing) + pulumi.set(__self__, "existing", existing) @property @pulumi.getter @@ -1032,57 +877,28 @@ def __init__(__self__, *, :param Sequence[str] policy_arns: ARNs of the policies to attach to the created role. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value mapping of tags for the IAM role. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - RoleWithPolicyArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - description=description, - force_detach_policies=force_detach_policies, - inline_policies=inline_policies, - managed_policy_arns=managed_policy_arns, - max_session_duration=max_session_duration, - name=name, - name_prefix=name_prefix, - path=path, - permissions_boundary=permissions_boundary, - policy_arns=policy_arns, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - description: Optional[pulumi.Input[str]] = None, - force_detach_policies: Optional[pulumi.Input[bool]] = None, - inline_policies: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.iam.RoleInlinePolicyArgs']]]] = None, - managed_policy_arns: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - max_session_duration: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - path: Optional[pulumi.Input[str]] = None, - permissions_boundary: Optional[pulumi.Input[str]] = None, - policy_arns: Optional[Sequence[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if description is not None: - _setter("description", description) + pulumi.set(__self__, "description", description) if force_detach_policies is not None: - _setter("force_detach_policies", force_detach_policies) + pulumi.set(__self__, "force_detach_policies", force_detach_policies) if inline_policies is not None: - _setter("inline_policies", inline_policies) + pulumi.set(__self__, "inline_policies", inline_policies) if managed_policy_arns is not None: - _setter("managed_policy_arns", managed_policy_arns) + pulumi.set(__self__, "managed_policy_arns", managed_policy_arns) if max_session_duration is not None: - _setter("max_session_duration", max_session_duration) + pulumi.set(__self__, "max_session_duration", max_session_duration) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if path is not None: - _setter("path", path) + pulumi.set(__self__, "path", path) if permissions_boundary is not None: - _setter("permissions_boundary", permissions_boundary) + pulumi.set(__self__, "permissions_boundary", permissions_boundary) if policy_arns is not None: - _setter("policy_arns", policy_arns) + pulumi.set(__self__, "policy_arns", policy_arns) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter @@ -1236,47 +1052,24 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_id: VPC ID. Defaults to the region's default VPC. """ - SecurityGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - description=description, - egress=egress, - ingress=ingress, - name=name, - name_prefix=name_prefix, - revoke_rules_on_delete=revoke_rules_on_delete, - tags=tags, - vpc_id=vpc_id, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - description: Optional[pulumi.Input[str]] = None, - egress: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroupEgressArgs']]]] = None, - ingress: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.SecurityGroupIngressArgs']]]] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - revoke_rules_on_delete: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - vpc_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if description is None: description = 'Managed by Pulumi' if description is not None: - _setter("description", description) + pulumi.set(__self__, "description", description) if egress is not None: - _setter("egress", egress) + pulumi.set(__self__, "egress", egress) if ingress is not None: - _setter("ingress", ingress) + pulumi.set(__self__, "ingress", ingress) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if revoke_rules_on_delete is not None: - _setter("revoke_rules_on_delete", revoke_rules_on_delete) + pulumi.set(__self__, "revoke_rules_on_delete", revoke_rules_on_delete) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if vpc_id is not None: - _setter("vpc_id", vpc_id) + pulumi.set(__self__, "vpc_id", vpc_id) @property @pulumi.getter diff --git a/sdk/python/pulumi_awsx/cloudtrail/trail.py b/sdk/python/pulumi_awsx/cloudtrail/trail.py index 6a738bdbe..515b3e8ca 100644 --- a/sdk/python/pulumi_awsx/cloudtrail/trail.py +++ b/sdk/python/pulumi_awsx/cloudtrail/trail.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx import pulumi_aws @@ -49,73 +49,36 @@ def __init__(__self__, *, :param pulumi.Input[str] sns_topic_name: Name of the Amazon SNS topic defined for notification of log file delivery. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the trail. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - TrailArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - advanced_event_selectors=advanced_event_selectors, - cloud_watch_logs_group=cloud_watch_logs_group, - enable_log_file_validation=enable_log_file_validation, - enable_logging=enable_logging, - event_selectors=event_selectors, - include_global_service_events=include_global_service_events, - insight_selectors=insight_selectors, - is_multi_region_trail=is_multi_region_trail, - is_organization_trail=is_organization_trail, - kms_key_id=kms_key_id, - name=name, - s3_bucket=s3_bucket, - s3_key_prefix=s3_key_prefix, - sns_topic_name=sns_topic_name, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - advanced_event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.cloudtrail.TrailAdvancedEventSelectorArgs']]]] = None, - cloud_watch_logs_group: Optional['_awsx.OptionalLogGroupArgs'] = None, - enable_log_file_validation: Optional[pulumi.Input[bool]] = None, - enable_logging: Optional[pulumi.Input[bool]] = None, - event_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.cloudtrail.TrailEventSelectorArgs']]]] = None, - include_global_service_events: Optional[pulumi.Input[bool]] = None, - insight_selectors: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.cloudtrail.TrailInsightSelectorArgs']]]] = None, - is_multi_region_trail: Optional[pulumi.Input[bool]] = None, - is_organization_trail: Optional[pulumi.Input[bool]] = None, - kms_key_id: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - s3_bucket: Optional['_awsx.RequiredBucketArgs'] = None, - s3_key_prefix: Optional[pulumi.Input[str]] = None, - sns_topic_name: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if advanced_event_selectors is not None: - _setter("advanced_event_selectors", advanced_event_selectors) + pulumi.set(__self__, "advanced_event_selectors", advanced_event_selectors) if cloud_watch_logs_group is not None: - _setter("cloud_watch_logs_group", cloud_watch_logs_group) + pulumi.set(__self__, "cloud_watch_logs_group", cloud_watch_logs_group) if enable_log_file_validation is not None: - _setter("enable_log_file_validation", enable_log_file_validation) + pulumi.set(__self__, "enable_log_file_validation", enable_log_file_validation) if enable_logging is not None: - _setter("enable_logging", enable_logging) + pulumi.set(__self__, "enable_logging", enable_logging) if event_selectors is not None: - _setter("event_selectors", event_selectors) + pulumi.set(__self__, "event_selectors", event_selectors) if include_global_service_events is not None: - _setter("include_global_service_events", include_global_service_events) + pulumi.set(__self__, "include_global_service_events", include_global_service_events) if insight_selectors is not None: - _setter("insight_selectors", insight_selectors) + pulumi.set(__self__, "insight_selectors", insight_selectors) if is_multi_region_trail is not None: - _setter("is_multi_region_trail", is_multi_region_trail) + pulumi.set(__self__, "is_multi_region_trail", is_multi_region_trail) if is_organization_trail is not None: - _setter("is_organization_trail", is_organization_trail) + pulumi.set(__self__, "is_organization_trail", is_organization_trail) if kms_key_id is not None: - _setter("kms_key_id", kms_key_id) + pulumi.set(__self__, "kms_key_id", kms_key_id) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if s3_bucket is not None: - _setter("s3_bucket", s3_bucket) + pulumi.set(__self__, "s3_bucket", s3_bucket) if s3_key_prefix is not None: - _setter("s3_key_prefix", s3_key_prefix) + pulumi.set(__self__, "s3_key_prefix", s3_key_prefix) if sns_topic_name is not None: - _setter("sns_topic_name", sns_topic_name) + pulumi.set(__self__, "sns_topic_name", sns_topic_name) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="advancedEventSelectors") @@ -357,10 +320,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - TrailArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -393,11 +352,6 @@ def _internal_init(__self__, __props__ = TrailArgs.__new__(TrailArgs) __props__.__dict__["advanced_event_selectors"] = advanced_event_selectors - if cloud_watch_logs_group is not None and not isinstance(cloud_watch_logs_group, _awsx.OptionalLogGroupArgs): - cloud_watch_logs_group = cloud_watch_logs_group or {} - def _setter(key, value): - cloud_watch_logs_group[key] = value - _awsx.OptionalLogGroupArgs._configure(_setter, **cloud_watch_logs_group) __props__.__dict__["cloud_watch_logs_group"] = cloud_watch_logs_group __props__.__dict__["enable_log_file_validation"] = enable_log_file_validation __props__.__dict__["enable_logging"] = enable_logging @@ -408,11 +362,6 @@ def _setter(key, value): __props__.__dict__["is_organization_trail"] = is_organization_trail __props__.__dict__["kms_key_id"] = kms_key_id __props__.__dict__["name"] = name - if s3_bucket is not None and not isinstance(s3_bucket, _awsx.RequiredBucketArgs): - s3_bucket = s3_bucket or {} - def _setter(key, value): - s3_bucket[key] = value - _awsx.RequiredBucketArgs._configure(_setter, **s3_bucket) __props__.__dict__["s3_bucket"] = s3_bucket __props__.__dict__["s3_key_prefix"] = s3_key_prefix __props__.__dict__["sns_topic_name"] = sns_topic_name diff --git a/sdk/python/pulumi_awsx/ec2/_inputs.py b/sdk/python/pulumi_awsx/ec2/_inputs.py index f8e3527b7..be6b45dc4 100644 --- a/sdk/python/pulumi_awsx/ec2/_inputs.py +++ b/sdk/python/pulumi_awsx/ec2/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * import pulumi_aws @@ -27,20 +27,9 @@ def __init__(__self__, *, :param 'NatGatewayStrategy' strategy: The strategy for deploying NAT Gateways. :param Sequence[pulumi.Input[str]] elastic_ip_allocation_ids: A list of EIP allocation IDs to assign to the NAT Gateways. Optional. If specified, the number of supplied values must match the chosen strategy (either one, or the number of availability zones). """ - NatGatewayConfigurationArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - strategy=strategy, - elastic_ip_allocation_ids=elastic_ip_allocation_ids, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - strategy: 'NatGatewayStrategy', - elastic_ip_allocation_ids: Optional[Sequence[pulumi.Input[str]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("strategy", strategy) + pulumi.set(__self__, "strategy", strategy) if elastic_ip_allocation_ids is not None: - _setter("elastic_ip_allocation_ids", elastic_ip_allocation_ids) + pulumi.set(__self__, "elastic_ip_allocation_ids", elastic_ip_allocation_ids) @property @pulumi.getter @@ -81,28 +70,13 @@ def __init__(__self__, *, :param str name: The subnet's name. Will be templated upon creation. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. """ - SubnetSpecArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - type=type, - cidr_mask=cidr_mask, - name=name, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - type: 'SubnetType', - cidr_mask: Optional[int] = None, - name: Optional[str] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("type", type) + pulumi.set(__self__, "type", type) if cidr_mask is not None: - _setter("cidr_mask", cidr_mask) + pulumi.set(__self__, "cidr_mask", cidr_mask) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter @@ -709,56 +683,27 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] vpc_endpoint_type: The VPC endpoint type, `Gateway`, `GatewayLoadBalancer`, or `Interface`. Defaults to `Gateway`. """ - VpcEndpointSpecArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - service_name=service_name, - auto_accept=auto_accept, - dns_options=dns_options, - ip_address_type=ip_address_type, - policy=policy, - private_dns_enabled=private_dns_enabled, - route_table_ids=route_table_ids, - security_group_ids=security_group_ids, - subnet_ids=subnet_ids, - tags=tags, - vpc_endpoint_type=vpc_endpoint_type, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - service_name: str, - auto_accept: Optional[bool] = None, - dns_options: Optional[pulumi.Input['pulumi_aws.ec2.VpcEndpointDnsOptionsArgs']] = None, - ip_address_type: Optional[pulumi.Input[str]] = None, - policy: Optional[pulumi.Input[str]] = None, - private_dns_enabled: Optional[bool] = None, - route_table_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - security_group_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - vpc_endpoint_type: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("service_name", service_name) + pulumi.set(__self__, "service_name", service_name) if auto_accept is not None: - _setter("auto_accept", auto_accept) + pulumi.set(__self__, "auto_accept", auto_accept) if dns_options is not None: - _setter("dns_options", dns_options) + pulumi.set(__self__, "dns_options", dns_options) if ip_address_type is not None: - _setter("ip_address_type", ip_address_type) + pulumi.set(__self__, "ip_address_type", ip_address_type) if policy is not None: - _setter("policy", policy) + pulumi.set(__self__, "policy", policy) if private_dns_enabled is not None: - _setter("private_dns_enabled", private_dns_enabled) + pulumi.set(__self__, "private_dns_enabled", private_dns_enabled) if route_table_ids is not None: - _setter("route_table_ids", route_table_ids) + pulumi.set(__self__, "route_table_ids", route_table_ids) if security_group_ids is not None: - _setter("security_group_ids", security_group_ids) + pulumi.set(__self__, "security_group_ids", security_group_ids) if subnet_ids is not None: - _setter("subnet_ids", subnet_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if vpc_endpoint_type is not None: - _setter("vpc_endpoint_type", vpc_endpoint_type) + pulumi.set(__self__, "vpc_endpoint_type", vpc_endpoint_type) @property @pulumi.getter(name="serviceName") diff --git a/sdk/python/pulumi_awsx/ec2/default_vpc.py b/sdk/python/pulumi_awsx/ec2/default_vpc.py index 65350bff2..ba6652cae 100644 --- a/sdk/python/pulumi_awsx/ec2/default_vpc.py +++ b/sdk/python/pulumi_awsx/ec2/default_vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = ['DefaultVpcArgs', 'DefaultVpc'] @@ -18,11 +18,6 @@ def __init__(__self__): The set of arguments for constructing a DefaultVpc resource. """ pass - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - opts: Optional[pulumi.ResourceOptions]=None): - pass class DefaultVpc(pulumi.ComponentResource): @@ -56,10 +51,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - DefaultVpcArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_awsx/ec2/get_default_vpc.py b/sdk/python/pulumi_awsx/ec2/get_default_vpc.py index 748171181..25bd7c54b 100644 --- a/sdk/python/pulumi_awsx/ec2/get_default_vpc.py +++ b/sdk/python/pulumi_awsx/ec2/get_default_vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities __all__ = [ diff --git a/sdk/python/pulumi_awsx/ec2/vpc.py b/sdk/python/pulumi_awsx/ec2/vpc.py index 8f2678f6c..6920ee2fd 100644 --- a/sdk/python/pulumi_awsx/ec2/vpc.py +++ b/sdk/python/pulumi_awsx/ec2/vpc.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * from ._inputs import * @@ -56,85 +56,42 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param Sequence['VpcEndpointSpecArgs'] vpc_endpoint_specs: A list of VPC Endpoints specs to be deployed as part of the VPC """ - VpcArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - assign_generated_ipv6_cidr_block=assign_generated_ipv6_cidr_block, - availability_zone_names=availability_zone_names, - cidr_block=cidr_block, - enable_dns_hostnames=enable_dns_hostnames, - enable_dns_support=enable_dns_support, - enable_network_address_usage_metrics=enable_network_address_usage_metrics, - instance_tenancy=instance_tenancy, - ipv4_ipam_pool_id=ipv4_ipam_pool_id, - ipv4_netmask_length=ipv4_netmask_length, - ipv6_cidr_block=ipv6_cidr_block, - ipv6_cidr_block_network_border_group=ipv6_cidr_block_network_border_group, - ipv6_ipam_pool_id=ipv6_ipam_pool_id, - ipv6_netmask_length=ipv6_netmask_length, - nat_gateways=nat_gateways, - number_of_availability_zones=number_of_availability_zones, - subnet_specs=subnet_specs, - tags=tags, - vpc_endpoint_specs=vpc_endpoint_specs, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - assign_generated_ipv6_cidr_block: Optional[pulumi.Input[bool]] = None, - availability_zone_names: Optional[Sequence[str]] = None, - cidr_block: Optional[str] = None, - enable_dns_hostnames: Optional[pulumi.Input[bool]] = None, - enable_dns_support: Optional[pulumi.Input[bool]] = None, - enable_network_address_usage_metrics: Optional[pulumi.Input[bool]] = None, - instance_tenancy: Optional[pulumi.Input[str]] = None, - ipv4_ipam_pool_id: Optional[pulumi.Input[str]] = None, - ipv4_netmask_length: Optional[pulumi.Input[int]] = None, - ipv6_cidr_block: Optional[pulumi.Input[str]] = None, - ipv6_cidr_block_network_border_group: Optional[pulumi.Input[str]] = None, - ipv6_ipam_pool_id: Optional[pulumi.Input[str]] = None, - ipv6_netmask_length: Optional[pulumi.Input[int]] = None, - nat_gateways: Optional['NatGatewayConfigurationArgs'] = None, - number_of_availability_zones: Optional[int] = None, - subnet_specs: Optional[Sequence['SubnetSpecArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - vpc_endpoint_specs: Optional[Sequence['VpcEndpointSpecArgs']] = None, - opts: Optional[pulumi.ResourceOptions]=None): if assign_generated_ipv6_cidr_block is not None: - _setter("assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) + pulumi.set(__self__, "assign_generated_ipv6_cidr_block", assign_generated_ipv6_cidr_block) if availability_zone_names is not None: - _setter("availability_zone_names", availability_zone_names) + pulumi.set(__self__, "availability_zone_names", availability_zone_names) if cidr_block is not None: - _setter("cidr_block", cidr_block) + pulumi.set(__self__, "cidr_block", cidr_block) if enable_dns_hostnames is not None: - _setter("enable_dns_hostnames", enable_dns_hostnames) + pulumi.set(__self__, "enable_dns_hostnames", enable_dns_hostnames) if enable_dns_support is not None: - _setter("enable_dns_support", enable_dns_support) + pulumi.set(__self__, "enable_dns_support", enable_dns_support) if enable_network_address_usage_metrics is not None: - _setter("enable_network_address_usage_metrics", enable_network_address_usage_metrics) + pulumi.set(__self__, "enable_network_address_usage_metrics", enable_network_address_usage_metrics) if instance_tenancy is not None: - _setter("instance_tenancy", instance_tenancy) + pulumi.set(__self__, "instance_tenancy", instance_tenancy) if ipv4_ipam_pool_id is not None: - _setter("ipv4_ipam_pool_id", ipv4_ipam_pool_id) + pulumi.set(__self__, "ipv4_ipam_pool_id", ipv4_ipam_pool_id) if ipv4_netmask_length is not None: - _setter("ipv4_netmask_length", ipv4_netmask_length) + pulumi.set(__self__, "ipv4_netmask_length", ipv4_netmask_length) if ipv6_cidr_block is not None: - _setter("ipv6_cidr_block", ipv6_cidr_block) + pulumi.set(__self__, "ipv6_cidr_block", ipv6_cidr_block) if ipv6_cidr_block_network_border_group is not None: - _setter("ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) + pulumi.set(__self__, "ipv6_cidr_block_network_border_group", ipv6_cidr_block_network_border_group) if ipv6_ipam_pool_id is not None: - _setter("ipv6_ipam_pool_id", ipv6_ipam_pool_id) + pulumi.set(__self__, "ipv6_ipam_pool_id", ipv6_ipam_pool_id) if ipv6_netmask_length is not None: - _setter("ipv6_netmask_length", ipv6_netmask_length) + pulumi.set(__self__, "ipv6_netmask_length", ipv6_netmask_length) if nat_gateways is not None: - _setter("nat_gateways", nat_gateways) + pulumi.set(__self__, "nat_gateways", nat_gateways) if number_of_availability_zones is not None: - _setter("number_of_availability_zones", number_of_availability_zones) + pulumi.set(__self__, "number_of_availability_zones", number_of_availability_zones) if subnet_specs is not None: - _setter("subnet_specs", subnet_specs) + pulumi.set(__self__, "subnet_specs", subnet_specs) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if vpc_endpoint_specs is not None: - _setter("vpc_endpoint_specs", vpc_endpoint_specs) + pulumi.set(__self__, "vpc_endpoint_specs", vpc_endpoint_specs) @property @pulumi.getter(name="assignGeneratedIpv6CidrBlock") @@ -418,10 +375,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - VpcArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -469,11 +422,6 @@ def _internal_init(__self__, __props__.__dict__["ipv6_cidr_block_network_border_group"] = ipv6_cidr_block_network_border_group __props__.__dict__["ipv6_ipam_pool_id"] = ipv6_ipam_pool_id __props__.__dict__["ipv6_netmask_length"] = ipv6_netmask_length - if nat_gateways is not None and not isinstance(nat_gateways, NatGatewayConfigurationArgs): - nat_gateways = nat_gateways or {} - def _setter(key, value): - nat_gateways[key] = value - NatGatewayConfigurationArgs._configure(_setter, **nat_gateways) __props__.__dict__["nat_gateways"] = nat_gateways __props__.__dict__["number_of_availability_zones"] = number_of_availability_zones __props__.__dict__["subnet_specs"] = subnet_specs diff --git a/sdk/python/pulumi_awsx/ecr/_inputs.py b/sdk/python/pulumi_awsx/ecr/_inputs.py index ab5113f4f..0a95dc315 100644 --- a/sdk/python/pulumi_awsx/ecr/_inputs.py +++ b/sdk/python/pulumi_awsx/ecr/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -31,32 +31,15 @@ def __init__(__self__, *, :param pulumi.Input[float] maximum_number_of_images: The maximum number of images that you want to retain in your repository. Either [maximumNumberOfImages] or [maximumAgeLimit] must be provided. :param pulumi.Input[Sequence[pulumi.Input[str]]] tag_prefix_list: A list of image tag prefixes on which to take action with your lifecycle policy. Only used if you specified "tagStatus": "tagged". For example, if your images are tagged as prod, prod1, prod2, and so on, you would use the tag prefix prod to specify all of them. If you specify multiple tags, only the images with all specified tags are selected. """ - LifecyclePolicyRuleArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - tag_status=tag_status, - description=description, - maximum_age_limit=maximum_age_limit, - maximum_number_of_images=maximum_number_of_images, - tag_prefix_list=tag_prefix_list, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - tag_status: pulumi.Input['LifecycleTagStatus'], - description: Optional[pulumi.Input[str]] = None, - maximum_age_limit: Optional[pulumi.Input[float]] = None, - maximum_number_of_images: Optional[pulumi.Input[float]] = None, - tag_prefix_list: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("tag_status", tag_status) + pulumi.set(__self__, "tag_status", tag_status) if description is not None: - _setter("description", description) + pulumi.set(__self__, "description", description) if maximum_age_limit is not None: - _setter("maximum_age_limit", maximum_age_limit) + pulumi.set(__self__, "maximum_age_limit", maximum_age_limit) if maximum_number_of_images is not None: - _setter("maximum_number_of_images", maximum_number_of_images) + pulumi.set(__self__, "maximum_number_of_images", maximum_number_of_images) if tag_prefix_list is not None: - _setter("tag_prefix_list", tag_prefix_list) + pulumi.set(__self__, "tag_prefix_list", tag_prefix_list) @property @pulumi.getter(name="tagStatus") @@ -129,21 +112,10 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyRuleArgs']]] rules: Specifies the rules to determine how images should be retired from this repository. Rules are ordered from lowest priority to highest. If there is a rule with a `selection` value of `any`, then it will have the highest priority. :param bool skip: Skips creation of the policy if set to `true`. """ - LifecyclePolicyArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - rules=rules, - skip=skip, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - rules: Optional[pulumi.Input[Sequence[pulumi.Input['LifecyclePolicyRuleArgs']]]] = None, - skip: Optional[bool] = None, - opts: Optional[pulumi.ResourceOptions]=None): if rules is not None: - _setter("rules", rules) + pulumi.set(__self__, "rules", rules) if skip is not None: - _setter("skip", skip) + pulumi.set(__self__, "skip", skip) @property @pulumi.getter diff --git a/sdk/python/pulumi_awsx/ecr/image.py b/sdk/python/pulumi_awsx/ecr/image.py index ee822e79c..4926ca11a 100644 --- a/sdk/python/pulumi_awsx/ecr/image.py +++ b/sdk/python/pulumi_awsx/ecr/image.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * @@ -36,48 +36,23 @@ def __init__(__self__, *, :param pulumi.Input[str] platform: The architecture of the platform you want to build this image for, e.g. `linux/arm64`. :param pulumi.Input[str] target: The target of the dockerfile to build """ - ImageArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - repository_url=repository_url, - args=args, - builder_version=builder_version, - cache_from=cache_from, - context=context, - dockerfile=dockerfile, - extra_options=extra_options, - platform=platform, - target=target, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - repository_url: pulumi.Input[str], - args: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - builder_version: Optional['BuilderVersion'] = None, - cache_from: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - context: Optional[pulumi.Input[str]] = None, - dockerfile: Optional[pulumi.Input[str]] = None, - extra_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - platform: Optional[pulumi.Input[str]] = None, - target: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("repository_url", repository_url) + pulumi.set(__self__, "repository_url", repository_url) if args is not None: - _setter("args", args) + pulumi.set(__self__, "args", args) if builder_version is not None: - _setter("builder_version", builder_version) + pulumi.set(__self__, "builder_version", builder_version) if cache_from is not None: - _setter("cache_from", cache_from) + pulumi.set(__self__, "cache_from", cache_from) if context is not None: - _setter("context", context) + pulumi.set(__self__, "context", context) if dockerfile is not None: - _setter("dockerfile", dockerfile) + pulumi.set(__self__, "dockerfile", dockerfile) if extra_options is not None: - _setter("extra_options", extra_options) + pulumi.set(__self__, "extra_options", extra_options) if platform is not None: - _setter("platform", platform) + pulumi.set(__self__, "platform", platform) if target is not None: - _setter("target", target) + pulumi.set(__self__, "target", target) @property @pulumi.getter(name="repositoryUrl") @@ -237,10 +212,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - ImageArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_awsx/ecr/repository.py b/sdk/python/pulumi_awsx/ecr/repository.py index b6f37933b..3ddd03b3d 100644 --- a/sdk/python/pulumi_awsx/ecr/repository.py +++ b/sdk/python/pulumi_awsx/ecr/repository.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._enums import * from ._inputs import * @@ -35,41 +35,20 @@ def __init__(__self__, *, :param pulumi.Input[str] name: Name of the repository. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. """ - RepositoryArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - encryption_configurations=encryption_configurations, - force_delete=force_delete, - image_scanning_configuration=image_scanning_configuration, - image_tag_mutability=image_tag_mutability, - lifecycle_policy=lifecycle_policy, - name=name, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - encryption_configurations: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecr.RepositoryEncryptionConfigurationArgs']]]] = None, - force_delete: Optional[pulumi.Input[bool]] = None, - image_scanning_configuration: Optional[pulumi.Input['pulumi_aws.ecr.RepositoryImageScanningConfigurationArgs']] = None, - image_tag_mutability: Optional[pulumi.Input[str]] = None, - lifecycle_policy: Optional['LifecyclePolicyArgs'] = None, - name: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if encryption_configurations is not None: - _setter("encryption_configurations", encryption_configurations) + pulumi.set(__self__, "encryption_configurations", encryption_configurations) if force_delete is not None: - _setter("force_delete", force_delete) + pulumi.set(__self__, "force_delete", force_delete) if image_scanning_configuration is not None: - _setter("image_scanning_configuration", image_scanning_configuration) + pulumi.set(__self__, "image_scanning_configuration", image_scanning_configuration) if image_tag_mutability is not None: - _setter("image_tag_mutability", image_tag_mutability) + pulumi.set(__self__, "image_tag_mutability", image_tag_mutability) if lifecycle_policy is not None: - _setter("lifecycle_policy", lifecycle_policy) + pulumi.set(__self__, "lifecycle_policy", lifecycle_policy) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="encryptionConfigurations") @@ -207,10 +186,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - RepositoryArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -236,18 +211,8 @@ def _internal_init(__self__, __props__.__dict__["encryption_configurations"] = encryption_configurations __props__.__dict__["force_delete"] = force_delete - if image_scanning_configuration is not None and not isinstance(image_scanning_configuration, pulumi_aws.ecr.RepositoryImageScanningConfigurationArgs): - image_scanning_configuration = image_scanning_configuration or {} - def _setter(key, value): - image_scanning_configuration[key] = value - pulumi_aws.ecr.RepositoryImageScanningConfigurationArgs._configure(_setter, **image_scanning_configuration) __props__.__dict__["image_scanning_configuration"] = image_scanning_configuration __props__.__dict__["image_tag_mutability"] = image_tag_mutability - if lifecycle_policy is not None and not isinstance(lifecycle_policy, LifecyclePolicyArgs): - lifecycle_policy = lifecycle_policy or {} - def _setter(key, value): - lifecycle_policy[key] = value - LifecyclePolicyArgs._configure(_setter, **lifecycle_policy) __props__.__dict__["lifecycle_policy"] = lifecycle_policy __props__.__dict__["name"] = name __props__.__dict__["tags"] = tags diff --git a/sdk/python/pulumi_awsx/ecs/_inputs.py b/sdk/python/pulumi_awsx/ecs/_inputs.py index 508e3b7a5..7d2b1ed10 100644 --- a/sdk/python/pulumi_awsx/ecs/_inputs.py +++ b/sdk/python/pulumi_awsx/ecs/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._enums import * @@ -92,89 +92,44 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ - EC2ServiceTaskDefinitionArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container=container, - containers=containers, - cpu=cpu, - ephemeral_storage=ephemeral_storage, - execution_role=execution_role, - family=family, - inference_accelerators=inference_accelerators, - ipc_mode=ipc_mode, - log_group=log_group, - memory=memory, - network_mode=network_mode, - pid_mode=pid_mode, - placement_constraints=placement_constraints, - proxy_configuration=proxy_configuration, - runtime_platform=runtime_platform, - skip_destroy=skip_destroy, - tags=tags, - task_role=task_role, - volumes=volumes, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, - containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, - cpu: Optional[pulumi.Input[str]] = None, - ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, - execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - family: Optional[pulumi.Input[str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, - ipc_mode: Optional[pulumi.Input[str]] = None, - log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, - memory: Optional[pulumi.Input[str]] = None, - network_mode: Optional[pulumi.Input[str]] = None, - pid_mode: Optional[pulumi.Input[str]] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, - proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, - runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, - skip_destroy: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container is not None: - _setter("container", container) + pulumi.set(__self__, "container", container) if containers is not None: - _setter("containers", containers) + pulumi.set(__self__, "containers", containers) if cpu is not None: - _setter("cpu", cpu) + pulumi.set(__self__, "cpu", cpu) if ephemeral_storage is not None: - _setter("ephemeral_storage", ephemeral_storage) + pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: - _setter("execution_role", execution_role) + pulumi.set(__self__, "execution_role", execution_role) if family is not None: - _setter("family", family) + pulumi.set(__self__, "family", family) if inference_accelerators is not None: - _setter("inference_accelerators", inference_accelerators) + pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: - _setter("ipc_mode", ipc_mode) + pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: - _setter("log_group", log_group) + pulumi.set(__self__, "log_group", log_group) if memory is not None: - _setter("memory", memory) + pulumi.set(__self__, "memory", memory) if network_mode is not None: - _setter("network_mode", network_mode) + pulumi.set(__self__, "network_mode", network_mode) if pid_mode is not None: - _setter("pid_mode", pid_mode) + pulumi.set(__self__, "pid_mode", pid_mode) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: - _setter("proxy_configuration", proxy_configuration) + pulumi.set(__self__, "proxy_configuration", proxy_configuration) if runtime_platform is not None: - _setter("runtime_platform", runtime_platform) + pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: - _setter("skip_destroy", skip_destroy) + pulumi.set(__self__, "skip_destroy", skip_destroy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_role is not None: - _setter("task_role", task_role) + pulumi.set(__self__, "task_role", task_role) if volumes is not None: - _setter("volumes", volumes) + pulumi.set(__self__, "volumes", volumes) @property @pulumi.getter @@ -467,85 +422,42 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ - FargateServiceTaskDefinitionArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container=container, - containers=containers, - cpu=cpu, - ephemeral_storage=ephemeral_storage, - execution_role=execution_role, - family=family, - inference_accelerators=inference_accelerators, - ipc_mode=ipc_mode, - log_group=log_group, - memory=memory, - pid_mode=pid_mode, - placement_constraints=placement_constraints, - proxy_configuration=proxy_configuration, - runtime_platform=runtime_platform, - skip_destroy=skip_destroy, - tags=tags, - task_role=task_role, - volumes=volumes, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, - containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, - cpu: Optional[pulumi.Input[str]] = None, - ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, - execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - family: Optional[pulumi.Input[str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, - ipc_mode: Optional[pulumi.Input[str]] = None, - log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, - memory: Optional[pulumi.Input[str]] = None, - pid_mode: Optional[pulumi.Input[str]] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, - proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, - runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, - skip_destroy: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container is not None: - _setter("container", container) + pulumi.set(__self__, "container", container) if containers is not None: - _setter("containers", containers) + pulumi.set(__self__, "containers", containers) if cpu is not None: - _setter("cpu", cpu) + pulumi.set(__self__, "cpu", cpu) if ephemeral_storage is not None: - _setter("ephemeral_storage", ephemeral_storage) + pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: - _setter("execution_role", execution_role) + pulumi.set(__self__, "execution_role", execution_role) if family is not None: - _setter("family", family) + pulumi.set(__self__, "family", family) if inference_accelerators is not None: - _setter("inference_accelerators", inference_accelerators) + pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: - _setter("ipc_mode", ipc_mode) + pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: - _setter("log_group", log_group) + pulumi.set(__self__, "log_group", log_group) if memory is not None: - _setter("memory", memory) + pulumi.set(__self__, "memory", memory) if pid_mode is not None: - _setter("pid_mode", pid_mode) + pulumi.set(__self__, "pid_mode", pid_mode) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: - _setter("proxy_configuration", proxy_configuration) + pulumi.set(__self__, "proxy_configuration", proxy_configuration) if runtime_platform is not None: - _setter("runtime_platform", runtime_platform) + pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: - _setter("skip_destroy", skip_destroy) + pulumi.set(__self__, "skip_destroy", skip_destroy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_role is not None: - _setter("task_role", task_role) + pulumi.set(__self__, "task_role", task_role) if volumes is not None: - _setter("volumes", volumes) + pulumi.set(__self__, "volumes", volumes) @property @pulumi.getter @@ -824,167 +736,82 @@ def __init__(__self__, *, :param pulumi.Input[int] memory: The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. :param pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPortMappingArgs']]] port_mappings: Port mappings allow containers to access ports on the host container instance to send or receive traffic. """ - TaskDefinitionContainerDefinitionArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - image=image, - name=name, - command=command, - cpu=cpu, - depends_on=depends_on, - disable_networking=disable_networking, - dns_search_domains=dns_search_domains, - dns_servers=dns_servers, - docker_labels=docker_labels, - docker_security_options=docker_security_options, - entry_point=entry_point, - environment=environment, - environment_files=environment_files, - essential=essential, - extra_hosts=extra_hosts, - firelens_configuration=firelens_configuration, - health_check=health_check, - hostname=hostname, - interactive=interactive, - links=links, - linux_parameters=linux_parameters, - log_configuration=log_configuration, - memory=memory, - memory_reservation=memory_reservation, - mount_points=mount_points, - port_mappings=port_mappings, - privileged=privileged, - pseudo_terminal=pseudo_terminal, - readonly_root_filesystem=readonly_root_filesystem, - repository_credentials=repository_credentials, - resource_requirements=resource_requirements, - secrets=secrets, - start_timeout=start_timeout, - stop_timeout=stop_timeout, - system_controls=system_controls, - ulimits=ulimits, - user=user, - volumes_from=volumes_from, - working_directory=working_directory, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - image: pulumi.Input[str], - name: pulumi.Input[str], - command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - cpu: Optional[pulumi.Input[int]] = None, - depends_on: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionContainerDependencyArgs']]]] = None, - disable_networking: Optional[pulumi.Input[bool]] = None, - dns_search_domains: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - dns_servers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - docker_labels: Optional[Any] = None, - docker_security_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - entry_point: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - environment: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionKeyValuePairArgs']]]] = None, - environment_files: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionEnvironmentFileArgs']]]] = None, - essential: Optional[pulumi.Input[bool]] = None, - extra_hosts: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionHostEntryArgs']]]] = None, - firelens_configuration: Optional[pulumi.Input['TaskDefinitionFirelensConfigurationArgs']] = None, - health_check: Optional[pulumi.Input['TaskDefinitionHealthCheckArgs']] = None, - hostname: Optional[pulumi.Input[str]] = None, - interactive: Optional[pulumi.Input[bool]] = None, - links: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - linux_parameters: Optional[pulumi.Input['TaskDefinitionLinuxParametersArgs']] = None, - log_configuration: Optional[pulumi.Input['TaskDefinitionLogConfigurationArgs']] = None, - memory: Optional[pulumi.Input[int]] = None, - memory_reservation: Optional[pulumi.Input[int]] = None, - mount_points: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionMountPointArgs']]]] = None, - port_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionPortMappingArgs']]]] = None, - privileged: Optional[pulumi.Input[bool]] = None, - pseudo_terminal: Optional[pulumi.Input[bool]] = None, - readonly_root_filesystem: Optional[pulumi.Input[bool]] = None, - repository_credentials: Optional[pulumi.Input['TaskDefinitionRepositoryCredentialsArgs']] = None, - resource_requirements: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionResourceRequirementArgs']]]] = None, - secrets: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSecretArgs']]]] = None, - start_timeout: Optional[pulumi.Input[int]] = None, - stop_timeout: Optional[pulumi.Input[int]] = None, - system_controls: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSystemControlArgs']]]] = None, - ulimits: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionUlimitArgs']]]] = None, - user: Optional[pulumi.Input[str]] = None, - volumes_from: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionVolumeFromArgs']]]] = None, - working_directory: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("image", image) - _setter("name", name) + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "name", name) if command is not None: - _setter("command", command) + pulumi.set(__self__, "command", command) if cpu is not None: - _setter("cpu", cpu) + pulumi.set(__self__, "cpu", cpu) if depends_on is not None: - _setter("depends_on", depends_on) + pulumi.set(__self__, "depends_on", depends_on) if disable_networking is not None: - _setter("disable_networking", disable_networking) + pulumi.set(__self__, "disable_networking", disable_networking) if dns_search_domains is not None: - _setter("dns_search_domains", dns_search_domains) + pulumi.set(__self__, "dns_search_domains", dns_search_domains) if dns_servers is not None: - _setter("dns_servers", dns_servers) + pulumi.set(__self__, "dns_servers", dns_servers) if docker_labels is not None: - _setter("docker_labels", docker_labels) + pulumi.set(__self__, "docker_labels", docker_labels) if docker_security_options is not None: - _setter("docker_security_options", docker_security_options) + pulumi.set(__self__, "docker_security_options", docker_security_options) if entry_point is not None: - _setter("entry_point", entry_point) + pulumi.set(__self__, "entry_point", entry_point) if environment is not None: - _setter("environment", environment) + pulumi.set(__self__, "environment", environment) if environment_files is not None: - _setter("environment_files", environment_files) + pulumi.set(__self__, "environment_files", environment_files) if essential is not None: - _setter("essential", essential) + pulumi.set(__self__, "essential", essential) if extra_hosts is not None: - _setter("extra_hosts", extra_hosts) + pulumi.set(__self__, "extra_hosts", extra_hosts) if firelens_configuration is not None: - _setter("firelens_configuration", firelens_configuration) + pulumi.set(__self__, "firelens_configuration", firelens_configuration) if health_check is not None: - _setter("health_check", health_check) + pulumi.set(__self__, "health_check", health_check) if hostname is not None: - _setter("hostname", hostname) + pulumi.set(__self__, "hostname", hostname) if interactive is not None: - _setter("interactive", interactive) + pulumi.set(__self__, "interactive", interactive) if links is not None: - _setter("links", links) + pulumi.set(__self__, "links", links) if linux_parameters is not None: - _setter("linux_parameters", linux_parameters) + pulumi.set(__self__, "linux_parameters", linux_parameters) if log_configuration is not None: - _setter("log_configuration", log_configuration) + pulumi.set(__self__, "log_configuration", log_configuration) if memory is not None: - _setter("memory", memory) + pulumi.set(__self__, "memory", memory) if memory_reservation is not None: - _setter("memory_reservation", memory_reservation) + pulumi.set(__self__, "memory_reservation", memory_reservation) if mount_points is not None: - _setter("mount_points", mount_points) + pulumi.set(__self__, "mount_points", mount_points) if port_mappings is not None: - _setter("port_mappings", port_mappings) + pulumi.set(__self__, "port_mappings", port_mappings) if privileged is not None: - _setter("privileged", privileged) + pulumi.set(__self__, "privileged", privileged) if pseudo_terminal is not None: - _setter("pseudo_terminal", pseudo_terminal) + pulumi.set(__self__, "pseudo_terminal", pseudo_terminal) if readonly_root_filesystem is not None: - _setter("readonly_root_filesystem", readonly_root_filesystem) + pulumi.set(__self__, "readonly_root_filesystem", readonly_root_filesystem) if repository_credentials is not None: - _setter("repository_credentials", repository_credentials) + pulumi.set(__self__, "repository_credentials", repository_credentials) if resource_requirements is not None: - _setter("resource_requirements", resource_requirements) + pulumi.set(__self__, "resource_requirements", resource_requirements) if secrets is not None: - _setter("secrets", secrets) + pulumi.set(__self__, "secrets", secrets) if start_timeout is not None: - _setter("start_timeout", start_timeout) + pulumi.set(__self__, "start_timeout", start_timeout) if stop_timeout is not None: - _setter("stop_timeout", stop_timeout) + pulumi.set(__self__, "stop_timeout", stop_timeout) if system_controls is not None: - _setter("system_controls", system_controls) + pulumi.set(__self__, "system_controls", system_controls) if ulimits is not None: - _setter("ulimits", ulimits) + pulumi.set(__self__, "ulimits", ulimits) if user is not None: - _setter("user", user) + pulumi.set(__self__, "user", user) if volumes_from is not None: - _setter("volumes_from", volumes_from) + pulumi.set(__self__, "volumes_from", volumes_from) if working_directory is not None: - _setter("working_directory", working_directory) + pulumi.set(__self__, "working_directory", working_directory) @property @pulumi.getter @@ -1361,21 +1188,10 @@ class TaskDefinitionContainerDependencyArgs: def __init__(__self__, *, condition: Optional[pulumi.Input[str]] = None, container_name: Optional[pulumi.Input[str]] = None): - TaskDefinitionContainerDependencyArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - condition=condition, - container_name=container_name, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - condition: Optional[pulumi.Input[str]] = None, - container_name: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if condition is not None: - _setter("condition", condition) + pulumi.set(__self__, "condition", condition) if container_name is not None: - _setter("container_name", container_name) + pulumi.set(__self__, "container_name", container_name) @property @pulumi.getter @@ -1402,25 +1218,12 @@ def __init__(__self__, *, container_path: Optional[pulumi.Input[str]] = None, host_path: Optional[pulumi.Input[str]] = None, permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): - TaskDefinitionDeviceArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container_path=container_path, - host_path=host_path, - permissions=permissions, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container_path: Optional[pulumi.Input[str]] = None, - host_path: Optional[pulumi.Input[str]] = None, - permissions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container_path is not None: - _setter("container_path", container_path) + pulumi.set(__self__, "container_path", container_path) if host_path is not None: - _setter("host_path", host_path) + pulumi.set(__self__, "host_path", host_path) if permissions is not None: - _setter("permissions", permissions) + pulumi.set(__self__, "permissions", permissions) @property @pulumi.getter(name="containerPath") @@ -1455,21 +1258,10 @@ class TaskDefinitionEnvironmentFileArgs: def __init__(__self__, *, type: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[str]] = None): - TaskDefinitionEnvironmentFileArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - type=type, - value=value, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - type: Optional[pulumi.Input[str]] = None, - value: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if type is not None: - _setter("type", type) + pulumi.set(__self__, "type", type) if value is not None: - _setter("value", value) + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -1495,21 +1287,10 @@ class TaskDefinitionFirelensConfigurationArgs: def __init__(__self__, *, options: Optional[Any] = None, type: Optional[pulumi.Input[str]] = None): - TaskDefinitionFirelensConfigurationArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - options=options, - type=type, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - options: Optional[Any] = None, - type: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if options is not None: - _setter("options", options) + pulumi.set(__self__, "options", options) if type is not None: - _setter("type", type) + pulumi.set(__self__, "type", type) @property @pulumi.getter @@ -1546,33 +1327,16 @@ def __init__(__self__, *, :param pulumi.Input[int] start_period: The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. :param pulumi.Input[int] timeout: The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. """ - TaskDefinitionHealthCheckArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - command=command, - interval=interval, - retries=retries, - start_period=start_period, - timeout=timeout, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - command: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - interval: Optional[pulumi.Input[int]] = None, - retries: Optional[pulumi.Input[int]] = None, - start_period: Optional[pulumi.Input[int]] = None, - timeout: Optional[pulumi.Input[int]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if command is not None: - _setter("command", command) + pulumi.set(__self__, "command", command) if interval is not None: - _setter("interval", interval) + pulumi.set(__self__, "interval", interval) if retries is not None: - _setter("retries", retries) + pulumi.set(__self__, "retries", retries) if start_period is not None: - _setter("start_period", start_period) + pulumi.set(__self__, "start_period", start_period) if timeout is not None: - _setter("timeout", timeout) + pulumi.set(__self__, "timeout", timeout) @property @pulumi.getter @@ -1640,21 +1404,10 @@ class TaskDefinitionHostEntryArgs: def __init__(__self__, *, hostname: Optional[pulumi.Input[str]] = None, ip_address: Optional[pulumi.Input[str]] = None): - TaskDefinitionHostEntryArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - hostname=hostname, - ip_address=ip_address, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - hostname: Optional[pulumi.Input[str]] = None, - ip_address: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if hostname is not None: - _setter("hostname", hostname) + pulumi.set(__self__, "hostname", hostname) if ip_address is not None: - _setter("ip_address", ip_address) + pulumi.set(__self__, "ip_address", ip_address) @property @pulumi.getter @@ -1680,21 +1433,10 @@ class TaskDefinitionKernelCapabilitiesArgs: def __init__(__self__, *, add: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, drop: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): - TaskDefinitionKernelCapabilitiesArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - add=add, - drop=drop, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - add: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - drop: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if add is not None: - _setter("add", add) + pulumi.set(__self__, "add", add) if drop is not None: - _setter("drop", drop) + pulumi.set(__self__, "drop", drop) @property @pulumi.getter @@ -1720,21 +1462,10 @@ class TaskDefinitionKeyValuePairArgs: def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[str]] = None): - TaskDefinitionKeyValuePairArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - name=name, - value=value, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - name: Optional[pulumi.Input[str]] = None, - value: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if value is not None: - _setter("value", value) + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -1765,41 +1496,20 @@ def __init__(__self__, *, shared_memory_size: Optional[pulumi.Input[int]] = None, swappiness: Optional[pulumi.Input[int]] = None, tmpfs: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionTmpfsArgs']]]] = None): - TaskDefinitionLinuxParametersArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - capabilities=capabilities, - devices=devices, - init_process_enabled=init_process_enabled, - max_swap=max_swap, - shared_memory_size=shared_memory_size, - swappiness=swappiness, - tmpfs=tmpfs, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - capabilities: Optional[pulumi.Input['TaskDefinitionKernelCapabilitiesArgs']] = None, - devices: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionDeviceArgs']]]] = None, - init_process_enabled: Optional[pulumi.Input[bool]] = None, - max_swap: Optional[pulumi.Input[int]] = None, - shared_memory_size: Optional[pulumi.Input[int]] = None, - swappiness: Optional[pulumi.Input[int]] = None, - tmpfs: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionTmpfsArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if capabilities is not None: - _setter("capabilities", capabilities) + pulumi.set(__self__, "capabilities", capabilities) if devices is not None: - _setter("devices", devices) + pulumi.set(__self__, "devices", devices) if init_process_enabled is not None: - _setter("init_process_enabled", init_process_enabled) + pulumi.set(__self__, "init_process_enabled", init_process_enabled) if max_swap is not None: - _setter("max_swap", max_swap) + pulumi.set(__self__, "max_swap", max_swap) if shared_memory_size is not None: - _setter("shared_memory_size", shared_memory_size) + pulumi.set(__self__, "shared_memory_size", shared_memory_size) if swappiness is not None: - _setter("swappiness", swappiness) + pulumi.set(__self__, "swappiness", swappiness) if tmpfs is not None: - _setter("tmpfs", tmpfs) + pulumi.set(__self__, "tmpfs", tmpfs) @property @pulumi.getter @@ -1871,24 +1581,11 @@ def __init__(__self__, *, log_driver: pulumi.Input[str], options: Optional[Any] = None, secret_options: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSecretArgs']]]] = None): - TaskDefinitionLogConfigurationArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - log_driver=log_driver, - options=options, - secret_options=secret_options, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - log_driver: pulumi.Input[str], - options: Optional[Any] = None, - secret_options: Optional[pulumi.Input[Sequence[pulumi.Input['TaskDefinitionSecretArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("log_driver", log_driver) + pulumi.set(__self__, "log_driver", log_driver) if options is not None: - _setter("options", options) + pulumi.set(__self__, "options", options) if secret_options is not None: - _setter("secret_options", secret_options) + pulumi.set(__self__, "secret_options", secret_options) @property @pulumi.getter(name="logDriver") @@ -1924,25 +1621,12 @@ def __init__(__self__, *, container_path: Optional[pulumi.Input[str]] = None, read_only: Optional[pulumi.Input[bool]] = None, source_volume: Optional[pulumi.Input[str]] = None): - TaskDefinitionMountPointArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container_path=container_path, - read_only=read_only, - source_volume=source_volume, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container_path: Optional[pulumi.Input[str]] = None, - read_only: Optional[pulumi.Input[bool]] = None, - source_volume: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container_path is not None: - _setter("container_path", container_path) + pulumi.set(__self__, "container_path", container_path) if read_only is not None: - _setter("read_only", read_only) + pulumi.set(__self__, "read_only", read_only) if source_volume is not None: - _setter("source_volume", source_volume) + pulumi.set(__self__, "source_volume", source_volume) @property @pulumi.getter(name="containerPath") @@ -1982,41 +1666,20 @@ def __init__(__self__, *, name: Optional[pulumi.Input[str]] = None, protocol: Optional[pulumi.Input[str]] = None, target_group: Optional[pulumi.Input['pulumi_aws.lb.TargetGroup']] = None): - TaskDefinitionPortMappingArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - app_protocol=app_protocol, - container_port=container_port, - container_port_range=container_port_range, - host_port=host_port, - name=name, - protocol=protocol, - target_group=target_group, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - app_protocol: Optional[pulumi.Input['TaskDefinitionPortMappingAppProtocol']] = None, - container_port: Optional[pulumi.Input[int]] = None, - container_port_range: Optional[pulumi.Input[str]] = None, - host_port: Optional[pulumi.Input[int]] = None, - name: Optional[pulumi.Input[str]] = None, - protocol: Optional[pulumi.Input[str]] = None, - target_group: Optional[pulumi.Input['pulumi_aws.lb.TargetGroup']] = None, - opts: Optional[pulumi.ResourceOptions]=None): if app_protocol is not None: - _setter("app_protocol", app_protocol) + pulumi.set(__self__, "app_protocol", app_protocol) if container_port is not None: - _setter("container_port", container_port) + pulumi.set(__self__, "container_port", container_port) if container_port_range is not None: - _setter("container_port_range", container_port_range) + pulumi.set(__self__, "container_port_range", container_port_range) if host_port is not None: - _setter("host_port", host_port) + pulumi.set(__self__, "host_port", host_port) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if protocol is not None: - _setter("protocol", protocol) + pulumi.set(__self__, "protocol", protocol) if target_group is not None: - _setter("target_group", target_group) + pulumi.set(__self__, "target_group", target_group) @property @pulumi.getter(name="appProtocol") @@ -2086,17 +1749,8 @@ def target_group(self, value: Optional[pulumi.Input['pulumi_aws.lb.TargetGroup'] class TaskDefinitionRepositoryCredentialsArgs: def __init__(__self__, *, credentials_parameter: Optional[pulumi.Input[str]] = None): - TaskDefinitionRepositoryCredentialsArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - credentials_parameter=credentials_parameter, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - credentials_parameter: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if credentials_parameter is not None: - _setter("credentials_parameter", credentials_parameter) + pulumi.set(__self__, "credentials_parameter", credentials_parameter) @property @pulumi.getter(name="credentialsParameter") @@ -2113,19 +1767,8 @@ class TaskDefinitionResourceRequirementArgs: def __init__(__self__, *, type: pulumi.Input[str], value: pulumi.Input[str]): - TaskDefinitionResourceRequirementArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - type=type, - value=value, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - type: pulumi.Input[str], - value: pulumi.Input[str], - opts: Optional[pulumi.ResourceOptions]=None): - _setter("type", type) - _setter("value", value) + pulumi.set(__self__, "type", type) + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -2151,19 +1794,8 @@ class TaskDefinitionSecretArgs: def __init__(__self__, *, name: pulumi.Input[str], value_from: pulumi.Input[str]): - TaskDefinitionSecretArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - name=name, - value_from=value_from, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - name: pulumi.Input[str], - value_from: pulumi.Input[str], - opts: Optional[pulumi.ResourceOptions]=None): - _setter("name", name) - _setter("value_from", value_from) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "value_from", value_from) @property @pulumi.getter @@ -2189,21 +1821,10 @@ class TaskDefinitionSystemControlArgs: def __init__(__self__, *, namespace: Optional[pulumi.Input[str]] = None, value: Optional[pulumi.Input[str]] = None): - TaskDefinitionSystemControlArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - namespace=namespace, - value=value, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - namespace: Optional[pulumi.Input[str]] = None, - value: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if namespace is not None: - _setter("namespace", namespace) + pulumi.set(__self__, "namespace", namespace) if value is not None: - _setter("value", value) + pulumi.set(__self__, "value", value) @property @pulumi.getter @@ -2230,24 +1851,11 @@ def __init__(__self__, *, size: pulumi.Input[int], container_path: Optional[pulumi.Input[str]] = None, mount_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): - TaskDefinitionTmpfsArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - size=size, - container_path=container_path, - mount_options=mount_options, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - size: pulumi.Input[int], - container_path: Optional[pulumi.Input[str]] = None, - mount_options: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): - _setter("size", size) + pulumi.set(__self__, "size", size) if container_path is not None: - _setter("container_path", container_path) + pulumi.set(__self__, "container_path", container_path) if mount_options is not None: - _setter("mount_options", mount_options) + pulumi.set(__self__, "mount_options", mount_options) @property @pulumi.getter @@ -2283,22 +1891,9 @@ def __init__(__self__, *, hard_limit: pulumi.Input[int], name: pulumi.Input[str], soft_limit: pulumi.Input[int]): - TaskDefinitionUlimitArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - hard_limit=hard_limit, - name=name, - soft_limit=soft_limit, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - hard_limit: pulumi.Input[int], - name: pulumi.Input[str], - soft_limit: pulumi.Input[int], - opts: Optional[pulumi.ResourceOptions]=None): - _setter("hard_limit", hard_limit) - _setter("name", name) - _setter("soft_limit", soft_limit) + pulumi.set(__self__, "hard_limit", hard_limit) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "soft_limit", soft_limit) @property @pulumi.getter(name="hardLimit") @@ -2333,21 +1928,10 @@ class TaskDefinitionVolumeFromArgs: def __init__(__self__, *, read_only: Optional[pulumi.Input[bool]] = None, source_container: Optional[pulumi.Input[str]] = None): - TaskDefinitionVolumeFromArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - read_only=read_only, - source_container=source_container, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - read_only: Optional[pulumi.Input[bool]] = None, - source_container: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if read_only is not None: - _setter("read_only", read_only) + pulumi.set(__self__, "read_only", read_only) if source_container is not None: - _setter("source_container", source_container) + pulumi.set(__self__, "source_container", source_container) @property @pulumi.getter(name="readOnly") diff --git a/sdk/python/pulumi_awsx/ecs/ec2_service.py b/sdk/python/pulumi_awsx/ecs/ec2_service.py index bce3ab42d..2c7feee0c 100644 --- a/sdk/python/pulumi_awsx/ecs/ec2_service.py +++ b/sdk/python/pulumi_awsx/ecs/ec2_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._enums import * @@ -77,121 +77,60 @@ def __init__(__self__, *, :param 'EC2ServiceTaskDefinitionArgs' task_definition_args: The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. """ - EC2ServiceArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - alarms=alarms, - cluster=cluster, - continue_before_steady_state=continue_before_steady_state, - deployment_circuit_breaker=deployment_circuit_breaker, - deployment_controller=deployment_controller, - deployment_maximum_percent=deployment_maximum_percent, - deployment_minimum_healthy_percent=deployment_minimum_healthy_percent, - desired_count=desired_count, - enable_ecs_managed_tags=enable_ecs_managed_tags, - enable_execute_command=enable_execute_command, - force_new_deployment=force_new_deployment, - health_check_grace_period_seconds=health_check_grace_period_seconds, - iam_role=iam_role, - load_balancers=load_balancers, - name=name, - network_configuration=network_configuration, - ordered_placement_strategies=ordered_placement_strategies, - placement_constraints=placement_constraints, - platform_version=platform_version, - propagate_tags=propagate_tags, - scheduling_strategy=scheduling_strategy, - service_connect_configuration=service_connect_configuration, - service_registries=service_registries, - tags=tags, - task_definition=task_definition, - task_definition_args=task_definition_args, - triggers=triggers, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - alarms: Optional[pulumi.Input['pulumi_aws.ecs.ServiceAlarmsArgs']] = None, - cluster: Optional[pulumi.Input[str]] = None, - continue_before_steady_state: Optional[pulumi.Input[bool]] = None, - deployment_circuit_breaker: Optional[pulumi.Input['pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs']] = None, - deployment_controller: Optional[pulumi.Input['pulumi_aws.ecs.ServiceDeploymentControllerArgs']] = None, - deployment_maximum_percent: Optional[pulumi.Input[int]] = None, - deployment_minimum_healthy_percent: Optional[pulumi.Input[int]] = None, - desired_count: Optional[pulumi.Input[int]] = None, - enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, - enable_execute_command: Optional[pulumi.Input[bool]] = None, - force_new_deployment: Optional[pulumi.Input[bool]] = None, - health_check_grace_period_seconds: Optional[pulumi.Input[int]] = None, - iam_role: Optional[pulumi.Input[str]] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServiceLoadBalancerArgs']]]] = None, - name: Optional[pulumi.Input[str]] = None, - network_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceNetworkConfigurationArgs']] = None, - ordered_placement_strategies: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServiceOrderedPlacementStrategyArgs']]]] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] = None, - platform_version: Optional[pulumi.Input[str]] = None, - propagate_tags: Optional[pulumi.Input[str]] = None, - scheduling_strategy: Optional[pulumi.Input[str]] = None, - service_connect_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] = None, - service_registries: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_definition: Optional[pulumi.Input[str]] = None, - task_definition_args: Optional['EC2ServiceTaskDefinitionArgs'] = None, - triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if alarms is not None: - _setter("alarms", alarms) + pulumi.set(__self__, "alarms", alarms) if cluster is not None: - _setter("cluster", cluster) + pulumi.set(__self__, "cluster", cluster) if continue_before_steady_state is not None: - _setter("continue_before_steady_state", continue_before_steady_state) + pulumi.set(__self__, "continue_before_steady_state", continue_before_steady_state) if deployment_circuit_breaker is not None: - _setter("deployment_circuit_breaker", deployment_circuit_breaker) + pulumi.set(__self__, "deployment_circuit_breaker", deployment_circuit_breaker) if deployment_controller is not None: - _setter("deployment_controller", deployment_controller) + pulumi.set(__self__, "deployment_controller", deployment_controller) if deployment_maximum_percent is not None: - _setter("deployment_maximum_percent", deployment_maximum_percent) + pulumi.set(__self__, "deployment_maximum_percent", deployment_maximum_percent) if deployment_minimum_healthy_percent is not None: - _setter("deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) + pulumi.set(__self__, "deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) if desired_count is not None: - _setter("desired_count", desired_count) + pulumi.set(__self__, "desired_count", desired_count) if enable_ecs_managed_tags is not None: - _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) + pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - _setter("enable_execute_command", enable_execute_command) + pulumi.set(__self__, "enable_execute_command", enable_execute_command) if force_new_deployment is not None: - _setter("force_new_deployment", force_new_deployment) + pulumi.set(__self__, "force_new_deployment", force_new_deployment) if health_check_grace_period_seconds is not None: - _setter("health_check_grace_period_seconds", health_check_grace_period_seconds) + pulumi.set(__self__, "health_check_grace_period_seconds", health_check_grace_period_seconds) if iam_role is not None: - _setter("iam_role", iam_role) + pulumi.set(__self__, "iam_role", iam_role) if load_balancers is not None: - _setter("load_balancers", load_balancers) + pulumi.set(__self__, "load_balancers", load_balancers) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if network_configuration is not None: - _setter("network_configuration", network_configuration) + pulumi.set(__self__, "network_configuration", network_configuration) if ordered_placement_strategies is not None: - _setter("ordered_placement_strategies", ordered_placement_strategies) + pulumi.set(__self__, "ordered_placement_strategies", ordered_placement_strategies) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if platform_version is not None: - _setter("platform_version", platform_version) + pulumi.set(__self__, "platform_version", platform_version) if propagate_tags is not None: - _setter("propagate_tags", propagate_tags) + pulumi.set(__self__, "propagate_tags", propagate_tags) if scheduling_strategy is not None: - _setter("scheduling_strategy", scheduling_strategy) + pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: - _setter("service_connect_configuration", service_connect_configuration) + pulumi.set(__self__, "service_connect_configuration", service_connect_configuration) if service_registries is not None: - _setter("service_registries", service_registries) + pulumi.set(__self__, "service_registries", service_registries) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_definition is not None: - _setter("task_definition", task_definition) + pulumi.set(__self__, "task_definition", task_definition) if task_definition_args is not None: - _setter("task_definition_args", task_definition_args) + pulumi.set(__self__, "task_definition_args", task_definition_args) if triggers is not None: - _setter("triggers", triggers) + pulumi.set(__self__, "triggers", triggers) @property @pulumi.getter @@ -609,10 +548,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - EC2ServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -656,25 +591,10 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EC2ServiceArgs.__new__(EC2ServiceArgs) - if alarms is not None and not isinstance(alarms, pulumi_aws.ecs.ServiceAlarmsArgs): - alarms = alarms or {} - def _setter(key, value): - alarms[key] = value - pulumi_aws.ecs.ServiceAlarmsArgs._configure(_setter, **alarms) __props__.__dict__["alarms"] = alarms __props__.__dict__["cluster"] = cluster __props__.__dict__["continue_before_steady_state"] = continue_before_steady_state - if deployment_circuit_breaker is not None and not isinstance(deployment_circuit_breaker, pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs): - deployment_circuit_breaker = deployment_circuit_breaker or {} - def _setter(key, value): - deployment_circuit_breaker[key] = value - pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs._configure(_setter, **deployment_circuit_breaker) __props__.__dict__["deployment_circuit_breaker"] = deployment_circuit_breaker - if deployment_controller is not None and not isinstance(deployment_controller, pulumi_aws.ecs.ServiceDeploymentControllerArgs): - deployment_controller = deployment_controller or {} - def _setter(key, value): - deployment_controller[key] = value - pulumi_aws.ecs.ServiceDeploymentControllerArgs._configure(_setter, **deployment_controller) __props__.__dict__["deployment_controller"] = deployment_controller __props__.__dict__["deployment_maximum_percent"] = deployment_maximum_percent __props__.__dict__["deployment_minimum_healthy_percent"] = deployment_minimum_healthy_percent @@ -686,36 +606,16 @@ def _setter(key, value): __props__.__dict__["iam_role"] = iam_role __props__.__dict__["load_balancers"] = load_balancers __props__.__dict__["name"] = name - if network_configuration is not None and not isinstance(network_configuration, pulumi_aws.ecs.ServiceNetworkConfigurationArgs): - network_configuration = network_configuration or {} - def _setter(key, value): - network_configuration[key] = value - pulumi_aws.ecs.ServiceNetworkConfigurationArgs._configure(_setter, **network_configuration) __props__.__dict__["network_configuration"] = network_configuration __props__.__dict__["ordered_placement_strategies"] = ordered_placement_strategies __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["platform_version"] = platform_version __props__.__dict__["propagate_tags"] = propagate_tags __props__.__dict__["scheduling_strategy"] = scheduling_strategy - if service_connect_configuration is not None and not isinstance(service_connect_configuration, pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs): - service_connect_configuration = service_connect_configuration or {} - def _setter(key, value): - service_connect_configuration[key] = value - pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs._configure(_setter, **service_connect_configuration) __props__.__dict__["service_connect_configuration"] = service_connect_configuration - if service_registries is not None and not isinstance(service_registries, pulumi_aws.ecs.ServiceServiceRegistriesArgs): - service_registries = service_registries or {} - def _setter(key, value): - service_registries[key] = value - pulumi_aws.ecs.ServiceServiceRegistriesArgs._configure(_setter, **service_registries) __props__.__dict__["service_registries"] = service_registries __props__.__dict__["tags"] = tags __props__.__dict__["task_definition"] = task_definition - if task_definition_args is not None and not isinstance(task_definition_args, EC2ServiceTaskDefinitionArgs): - task_definition_args = task_definition_args or {} - def _setter(key, value): - task_definition_args[key] = value - EC2ServiceTaskDefinitionArgs._configure(_setter, **task_definition_args) __props__.__dict__["task_definition_args"] = task_definition_args __props__.__dict__["triggers"] = triggers __props__.__dict__["service"] = None diff --git a/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py b/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py index 47f1d969c..16046edad 100644 --- a/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py +++ b/sdk/python/pulumi_awsx/ecs/ec2_task_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._enums import * @@ -68,89 +68,44 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ - EC2TaskDefinitionArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container=container, - containers=containers, - cpu=cpu, - ephemeral_storage=ephemeral_storage, - execution_role=execution_role, - family=family, - inference_accelerators=inference_accelerators, - ipc_mode=ipc_mode, - log_group=log_group, - memory=memory, - network_mode=network_mode, - pid_mode=pid_mode, - placement_constraints=placement_constraints, - proxy_configuration=proxy_configuration, - runtime_platform=runtime_platform, - skip_destroy=skip_destroy, - tags=tags, - task_role=task_role, - volumes=volumes, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, - containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, - cpu: Optional[pulumi.Input[str]] = None, - ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, - execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - family: Optional[pulumi.Input[str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, - ipc_mode: Optional[pulumi.Input[str]] = None, - log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, - memory: Optional[pulumi.Input[str]] = None, - network_mode: Optional[pulumi.Input[str]] = None, - pid_mode: Optional[pulumi.Input[str]] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, - proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, - runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, - skip_destroy: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container is not None: - _setter("container", container) + pulumi.set(__self__, "container", container) if containers is not None: - _setter("containers", containers) + pulumi.set(__self__, "containers", containers) if cpu is not None: - _setter("cpu", cpu) + pulumi.set(__self__, "cpu", cpu) if ephemeral_storage is not None: - _setter("ephemeral_storage", ephemeral_storage) + pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: - _setter("execution_role", execution_role) + pulumi.set(__self__, "execution_role", execution_role) if family is not None: - _setter("family", family) + pulumi.set(__self__, "family", family) if inference_accelerators is not None: - _setter("inference_accelerators", inference_accelerators) + pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: - _setter("ipc_mode", ipc_mode) + pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: - _setter("log_group", log_group) + pulumi.set(__self__, "log_group", log_group) if memory is not None: - _setter("memory", memory) + pulumi.set(__self__, "memory", memory) if network_mode is not None: - _setter("network_mode", network_mode) + pulumi.set(__self__, "network_mode", network_mode) if pid_mode is not None: - _setter("pid_mode", pid_mode) + pulumi.set(__self__, "pid_mode", pid_mode) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: - _setter("proxy_configuration", proxy_configuration) + pulumi.set(__self__, "proxy_configuration", proxy_configuration) if runtime_platform is not None: - _setter("runtime_platform", runtime_platform) + pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: - _setter("skip_destroy", skip_destroy) + pulumi.set(__self__, "skip_destroy", skip_destroy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_role is not None: - _setter("task_role", task_role) + pulumi.set(__self__, "task_role", task_role) if volumes is not None: - _setter("volumes", volumes) + pulumi.set(__self__, "volumes", volumes) @property @pulumi.getter @@ -472,10 +427,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - EC2TaskDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -511,58 +462,23 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = EC2TaskDefinitionArgs.__new__(EC2TaskDefinitionArgs) - if container is not None and not isinstance(container, TaskDefinitionContainerDefinitionArgs): - container = container or {} - def _setter(key, value): - container[key] = value - TaskDefinitionContainerDefinitionArgs._configure(_setter, **container) __props__.__dict__["container"] = container __props__.__dict__["containers"] = containers __props__.__dict__["cpu"] = cpu - if ephemeral_storage is not None and not isinstance(ephemeral_storage, pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs): - ephemeral_storage = ephemeral_storage or {} - def _setter(key, value): - ephemeral_storage[key] = value - pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs._configure(_setter, **ephemeral_storage) __props__.__dict__["ephemeral_storage"] = ephemeral_storage - if execution_role is not None and not isinstance(execution_role, _awsx.DefaultRoleWithPolicyArgs): - execution_role = execution_role or {} - def _setter(key, value): - execution_role[key] = value - _awsx.DefaultRoleWithPolicyArgs._configure(_setter, **execution_role) __props__.__dict__["execution_role"] = execution_role __props__.__dict__["family"] = family __props__.__dict__["inference_accelerators"] = inference_accelerators __props__.__dict__["ipc_mode"] = ipc_mode - if log_group is not None and not isinstance(log_group, _awsx.DefaultLogGroupArgs): - log_group = log_group or {} - def _setter(key, value): - log_group[key] = value - _awsx.DefaultLogGroupArgs._configure(_setter, **log_group) __props__.__dict__["log_group"] = log_group __props__.__dict__["memory"] = memory __props__.__dict__["network_mode"] = network_mode __props__.__dict__["pid_mode"] = pid_mode __props__.__dict__["placement_constraints"] = placement_constraints - if proxy_configuration is not None and not isinstance(proxy_configuration, pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs): - proxy_configuration = proxy_configuration or {} - def _setter(key, value): - proxy_configuration[key] = value - pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs._configure(_setter, **proxy_configuration) __props__.__dict__["proxy_configuration"] = proxy_configuration - if runtime_platform is not None and not isinstance(runtime_platform, pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs): - runtime_platform = runtime_platform or {} - def _setter(key, value): - runtime_platform[key] = value - pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs._configure(_setter, **runtime_platform) __props__.__dict__["runtime_platform"] = runtime_platform __props__.__dict__["skip_destroy"] = skip_destroy __props__.__dict__["tags"] = tags - if task_role is not None and not isinstance(task_role, _awsx.DefaultRoleWithPolicyArgs): - task_role = task_role or {} - def _setter(key, value): - task_role[key] = value - _awsx.DefaultRoleWithPolicyArgs._configure(_setter, **task_role) __props__.__dict__["task_role"] = task_role __props__.__dict__["volumes"] = volumes __props__.__dict__["load_balancers"] = None diff --git a/sdk/python/pulumi_awsx/ecs/fargate_service.py b/sdk/python/pulumi_awsx/ecs/fargate_service.py index c001dc174..c94d27f0f 100644 --- a/sdk/python/pulumi_awsx/ecs/fargate_service.py +++ b/sdk/python/pulumi_awsx/ecs/fargate_service.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._enums import * @@ -77,121 +77,60 @@ def __init__(__self__, *, :param 'FargateServiceTaskDefinitionArgs' task_definition_args: The args of task definition that you want to run in your service. Either [taskDefinition] or [taskDefinitionArgs] must be provided. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] triggers: Map of arbitrary keys and values that, when changed, will trigger an in-place update (redeployment). Useful with `timestamp()`. See example above. """ - FargateServiceArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - alarms=alarms, - assign_public_ip=assign_public_ip, - cluster=cluster, - continue_before_steady_state=continue_before_steady_state, - deployment_circuit_breaker=deployment_circuit_breaker, - deployment_controller=deployment_controller, - deployment_maximum_percent=deployment_maximum_percent, - deployment_minimum_healthy_percent=deployment_minimum_healthy_percent, - desired_count=desired_count, - enable_ecs_managed_tags=enable_ecs_managed_tags, - enable_execute_command=enable_execute_command, - force_new_deployment=force_new_deployment, - health_check_grace_period_seconds=health_check_grace_period_seconds, - iam_role=iam_role, - load_balancers=load_balancers, - name=name, - network_configuration=network_configuration, - placement_constraints=placement_constraints, - platform_version=platform_version, - propagate_tags=propagate_tags, - scheduling_strategy=scheduling_strategy, - service_connect_configuration=service_connect_configuration, - service_registries=service_registries, - tags=tags, - task_definition=task_definition, - task_definition_args=task_definition_args, - triggers=triggers, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - alarms: Optional[pulumi.Input['pulumi_aws.ecs.ServiceAlarmsArgs']] = None, - assign_public_ip: Optional[pulumi.Input[bool]] = None, - cluster: Optional[pulumi.Input[str]] = None, - continue_before_steady_state: Optional[pulumi.Input[bool]] = None, - deployment_circuit_breaker: Optional[pulumi.Input['pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs']] = None, - deployment_controller: Optional[pulumi.Input['pulumi_aws.ecs.ServiceDeploymentControllerArgs']] = None, - deployment_maximum_percent: Optional[pulumi.Input[int]] = None, - deployment_minimum_healthy_percent: Optional[pulumi.Input[int]] = None, - desired_count: Optional[pulumi.Input[int]] = None, - enable_ecs_managed_tags: Optional[pulumi.Input[bool]] = None, - enable_execute_command: Optional[pulumi.Input[bool]] = None, - force_new_deployment: Optional[pulumi.Input[bool]] = None, - health_check_grace_period_seconds: Optional[pulumi.Input[int]] = None, - iam_role: Optional[pulumi.Input[str]] = None, - load_balancers: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServiceLoadBalancerArgs']]]] = None, - name: Optional[pulumi.Input[str]] = None, - network_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceNetworkConfigurationArgs']] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.ServicePlacementConstraintArgs']]]] = None, - platform_version: Optional[pulumi.Input[str]] = None, - propagate_tags: Optional[pulumi.Input[str]] = None, - scheduling_strategy: Optional[pulumi.Input[str]] = None, - service_connect_configuration: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs']] = None, - service_registries: Optional[pulumi.Input['pulumi_aws.ecs.ServiceServiceRegistriesArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_definition: Optional[pulumi.Input[str]] = None, - task_definition_args: Optional['FargateServiceTaskDefinitionArgs'] = None, - triggers: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if alarms is not None: - _setter("alarms", alarms) + pulumi.set(__self__, "alarms", alarms) if assign_public_ip is not None: - _setter("assign_public_ip", assign_public_ip) + pulumi.set(__self__, "assign_public_ip", assign_public_ip) if cluster is not None: - _setter("cluster", cluster) + pulumi.set(__self__, "cluster", cluster) if continue_before_steady_state is not None: - _setter("continue_before_steady_state", continue_before_steady_state) + pulumi.set(__self__, "continue_before_steady_state", continue_before_steady_state) if deployment_circuit_breaker is not None: - _setter("deployment_circuit_breaker", deployment_circuit_breaker) + pulumi.set(__self__, "deployment_circuit_breaker", deployment_circuit_breaker) if deployment_controller is not None: - _setter("deployment_controller", deployment_controller) + pulumi.set(__self__, "deployment_controller", deployment_controller) if deployment_maximum_percent is not None: - _setter("deployment_maximum_percent", deployment_maximum_percent) + pulumi.set(__self__, "deployment_maximum_percent", deployment_maximum_percent) if deployment_minimum_healthy_percent is not None: - _setter("deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) + pulumi.set(__self__, "deployment_minimum_healthy_percent", deployment_minimum_healthy_percent) if desired_count is not None: - _setter("desired_count", desired_count) + pulumi.set(__self__, "desired_count", desired_count) if enable_ecs_managed_tags is not None: - _setter("enable_ecs_managed_tags", enable_ecs_managed_tags) + pulumi.set(__self__, "enable_ecs_managed_tags", enable_ecs_managed_tags) if enable_execute_command is not None: - _setter("enable_execute_command", enable_execute_command) + pulumi.set(__self__, "enable_execute_command", enable_execute_command) if force_new_deployment is not None: - _setter("force_new_deployment", force_new_deployment) + pulumi.set(__self__, "force_new_deployment", force_new_deployment) if health_check_grace_period_seconds is not None: - _setter("health_check_grace_period_seconds", health_check_grace_period_seconds) + pulumi.set(__self__, "health_check_grace_period_seconds", health_check_grace_period_seconds) if iam_role is not None: - _setter("iam_role", iam_role) + pulumi.set(__self__, "iam_role", iam_role) if load_balancers is not None: - _setter("load_balancers", load_balancers) + pulumi.set(__self__, "load_balancers", load_balancers) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if network_configuration is not None: - _setter("network_configuration", network_configuration) + pulumi.set(__self__, "network_configuration", network_configuration) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if platform_version is not None: - _setter("platform_version", platform_version) + pulumi.set(__self__, "platform_version", platform_version) if propagate_tags is not None: - _setter("propagate_tags", propagate_tags) + pulumi.set(__self__, "propagate_tags", propagate_tags) if scheduling_strategy is not None: - _setter("scheduling_strategy", scheduling_strategy) + pulumi.set(__self__, "scheduling_strategy", scheduling_strategy) if service_connect_configuration is not None: - _setter("service_connect_configuration", service_connect_configuration) + pulumi.set(__self__, "service_connect_configuration", service_connect_configuration) if service_registries is not None: - _setter("service_registries", service_registries) + pulumi.set(__self__, "service_registries", service_registries) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_definition is not None: - _setter("task_definition", task_definition) + pulumi.set(__self__, "task_definition", task_definition) if task_definition_args is not None: - _setter("task_definition_args", task_definition_args) + pulumi.set(__self__, "task_definition_args", task_definition_args) if triggers is not None: - _setter("triggers", triggers) + pulumi.set(__self__, "triggers", triggers) @property @pulumi.getter @@ -609,10 +548,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - FargateServiceArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -656,26 +591,11 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = FargateServiceArgs.__new__(FargateServiceArgs) - if alarms is not None and not isinstance(alarms, pulumi_aws.ecs.ServiceAlarmsArgs): - alarms = alarms or {} - def _setter(key, value): - alarms[key] = value - pulumi_aws.ecs.ServiceAlarmsArgs._configure(_setter, **alarms) __props__.__dict__["alarms"] = alarms __props__.__dict__["assign_public_ip"] = assign_public_ip __props__.__dict__["cluster"] = cluster __props__.__dict__["continue_before_steady_state"] = continue_before_steady_state - if deployment_circuit_breaker is not None and not isinstance(deployment_circuit_breaker, pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs): - deployment_circuit_breaker = deployment_circuit_breaker or {} - def _setter(key, value): - deployment_circuit_breaker[key] = value - pulumi_aws.ecs.ServiceDeploymentCircuitBreakerArgs._configure(_setter, **deployment_circuit_breaker) __props__.__dict__["deployment_circuit_breaker"] = deployment_circuit_breaker - if deployment_controller is not None and not isinstance(deployment_controller, pulumi_aws.ecs.ServiceDeploymentControllerArgs): - deployment_controller = deployment_controller or {} - def _setter(key, value): - deployment_controller[key] = value - pulumi_aws.ecs.ServiceDeploymentControllerArgs._configure(_setter, **deployment_controller) __props__.__dict__["deployment_controller"] = deployment_controller __props__.__dict__["deployment_maximum_percent"] = deployment_maximum_percent __props__.__dict__["deployment_minimum_healthy_percent"] = deployment_minimum_healthy_percent @@ -687,35 +607,15 @@ def _setter(key, value): __props__.__dict__["iam_role"] = iam_role __props__.__dict__["load_balancers"] = load_balancers __props__.__dict__["name"] = name - if network_configuration is not None and not isinstance(network_configuration, pulumi_aws.ecs.ServiceNetworkConfigurationArgs): - network_configuration = network_configuration or {} - def _setter(key, value): - network_configuration[key] = value - pulumi_aws.ecs.ServiceNetworkConfigurationArgs._configure(_setter, **network_configuration) __props__.__dict__["network_configuration"] = network_configuration __props__.__dict__["placement_constraints"] = placement_constraints __props__.__dict__["platform_version"] = platform_version __props__.__dict__["propagate_tags"] = propagate_tags __props__.__dict__["scheduling_strategy"] = scheduling_strategy - if service_connect_configuration is not None and not isinstance(service_connect_configuration, pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs): - service_connect_configuration = service_connect_configuration or {} - def _setter(key, value): - service_connect_configuration[key] = value - pulumi_aws.ecs.ServiceServiceConnectConfigurationArgs._configure(_setter, **service_connect_configuration) __props__.__dict__["service_connect_configuration"] = service_connect_configuration - if service_registries is not None and not isinstance(service_registries, pulumi_aws.ecs.ServiceServiceRegistriesArgs): - service_registries = service_registries or {} - def _setter(key, value): - service_registries[key] = value - pulumi_aws.ecs.ServiceServiceRegistriesArgs._configure(_setter, **service_registries) __props__.__dict__["service_registries"] = service_registries __props__.__dict__["tags"] = tags __props__.__dict__["task_definition"] = task_definition - if task_definition_args is not None and not isinstance(task_definition_args, FargateServiceTaskDefinitionArgs): - task_definition_args = task_definition_args or {} - def _setter(key, value): - task_definition_args[key] = value - FargateServiceTaskDefinitionArgs._configure(_setter, **task_definition_args) __props__.__dict__["task_definition_args"] = task_definition_args __props__.__dict__["triggers"] = triggers __props__.__dict__["service"] = None diff --git a/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py b/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py index 1f885f0a3..b464944e8 100644 --- a/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py +++ b/sdk/python/pulumi_awsx/ecs/fargate_task_definition.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._enums import * @@ -66,85 +66,42 @@ def __init__(__self__, *, Will be created automatically if not defined. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]] volumes: Configuration block for volumes that containers in your task may use. Detailed below. """ - FargateTaskDefinitionArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - container=container, - containers=containers, - cpu=cpu, - ephemeral_storage=ephemeral_storage, - execution_role=execution_role, - family=family, - inference_accelerators=inference_accelerators, - ipc_mode=ipc_mode, - log_group=log_group, - memory=memory, - pid_mode=pid_mode, - placement_constraints=placement_constraints, - proxy_configuration=proxy_configuration, - runtime_platform=runtime_platform, - skip_destroy=skip_destroy, - tags=tags, - task_role=task_role, - volumes=volumes, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - container: Optional['TaskDefinitionContainerDefinitionArgs'] = None, - containers: Optional[Mapping[str, 'TaskDefinitionContainerDefinitionArgs']] = None, - cpu: Optional[pulumi.Input[str]] = None, - ephemeral_storage: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs']] = None, - execution_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - family: Optional[pulumi.Input[str]] = None, - inference_accelerators: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionInferenceAcceleratorArgs']]]] = None, - ipc_mode: Optional[pulumi.Input[str]] = None, - log_group: Optional['_awsx.DefaultLogGroupArgs'] = None, - memory: Optional[pulumi.Input[str]] = None, - pid_mode: Optional[pulumi.Input[str]] = None, - placement_constraints: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionPlacementConstraintArgs']]]] = None, - proxy_configuration: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs']] = None, - runtime_platform: Optional[pulumi.Input['pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs']] = None, - skip_destroy: Optional[pulumi.Input[bool]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - task_role: Optional['_awsx.DefaultRoleWithPolicyArgs'] = None, - volumes: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ecs.TaskDefinitionVolumeArgs']]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if container is not None: - _setter("container", container) + pulumi.set(__self__, "container", container) if containers is not None: - _setter("containers", containers) + pulumi.set(__self__, "containers", containers) if cpu is not None: - _setter("cpu", cpu) + pulumi.set(__self__, "cpu", cpu) if ephemeral_storage is not None: - _setter("ephemeral_storage", ephemeral_storage) + pulumi.set(__self__, "ephemeral_storage", ephemeral_storage) if execution_role is not None: - _setter("execution_role", execution_role) + pulumi.set(__self__, "execution_role", execution_role) if family is not None: - _setter("family", family) + pulumi.set(__self__, "family", family) if inference_accelerators is not None: - _setter("inference_accelerators", inference_accelerators) + pulumi.set(__self__, "inference_accelerators", inference_accelerators) if ipc_mode is not None: - _setter("ipc_mode", ipc_mode) + pulumi.set(__self__, "ipc_mode", ipc_mode) if log_group is not None: - _setter("log_group", log_group) + pulumi.set(__self__, "log_group", log_group) if memory is not None: - _setter("memory", memory) + pulumi.set(__self__, "memory", memory) if pid_mode is not None: - _setter("pid_mode", pid_mode) + pulumi.set(__self__, "pid_mode", pid_mode) if placement_constraints is not None: - _setter("placement_constraints", placement_constraints) + pulumi.set(__self__, "placement_constraints", placement_constraints) if proxy_configuration is not None: - _setter("proxy_configuration", proxy_configuration) + pulumi.set(__self__, "proxy_configuration", proxy_configuration) if runtime_platform is not None: - _setter("runtime_platform", runtime_platform) + pulumi.set(__self__, "runtime_platform", runtime_platform) if skip_destroy is not None: - _setter("skip_destroy", skip_destroy) + pulumi.set(__self__, "skip_destroy", skip_destroy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if task_role is not None: - _setter("task_role", task_role) + pulumi.set(__self__, "task_role", task_role) if volumes is not None: - _setter("volumes", volumes) + pulumi.set(__self__, "volumes", volumes) @property @pulumi.getter @@ -452,10 +409,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - FargateTaskDefinitionArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -490,57 +443,22 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = FargateTaskDefinitionArgs.__new__(FargateTaskDefinitionArgs) - if container is not None and not isinstance(container, TaskDefinitionContainerDefinitionArgs): - container = container or {} - def _setter(key, value): - container[key] = value - TaskDefinitionContainerDefinitionArgs._configure(_setter, **container) __props__.__dict__["container"] = container __props__.__dict__["containers"] = containers __props__.__dict__["cpu"] = cpu - if ephemeral_storage is not None and not isinstance(ephemeral_storage, pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs): - ephemeral_storage = ephemeral_storage or {} - def _setter(key, value): - ephemeral_storage[key] = value - pulumi_aws.ecs.TaskDefinitionEphemeralStorageArgs._configure(_setter, **ephemeral_storage) __props__.__dict__["ephemeral_storage"] = ephemeral_storage - if execution_role is not None and not isinstance(execution_role, _awsx.DefaultRoleWithPolicyArgs): - execution_role = execution_role or {} - def _setter(key, value): - execution_role[key] = value - _awsx.DefaultRoleWithPolicyArgs._configure(_setter, **execution_role) __props__.__dict__["execution_role"] = execution_role __props__.__dict__["family"] = family __props__.__dict__["inference_accelerators"] = inference_accelerators __props__.__dict__["ipc_mode"] = ipc_mode - if log_group is not None and not isinstance(log_group, _awsx.DefaultLogGroupArgs): - log_group = log_group or {} - def _setter(key, value): - log_group[key] = value - _awsx.DefaultLogGroupArgs._configure(_setter, **log_group) __props__.__dict__["log_group"] = log_group __props__.__dict__["memory"] = memory __props__.__dict__["pid_mode"] = pid_mode __props__.__dict__["placement_constraints"] = placement_constraints - if proxy_configuration is not None and not isinstance(proxy_configuration, pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs): - proxy_configuration = proxy_configuration or {} - def _setter(key, value): - proxy_configuration[key] = value - pulumi_aws.ecs.TaskDefinitionProxyConfigurationArgs._configure(_setter, **proxy_configuration) __props__.__dict__["proxy_configuration"] = proxy_configuration - if runtime_platform is not None and not isinstance(runtime_platform, pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs): - runtime_platform = runtime_platform or {} - def _setter(key, value): - runtime_platform[key] = value - pulumi_aws.ecs.TaskDefinitionRuntimePlatformArgs._configure(_setter, **runtime_platform) __props__.__dict__["runtime_platform"] = runtime_platform __props__.__dict__["skip_destroy"] = skip_destroy __props__.__dict__["tags"] = tags - if task_role is not None and not isinstance(task_role, _awsx.DefaultRoleWithPolicyArgs): - task_role = task_role or {} - def _setter(key, value): - task_role[key] = value - _awsx.DefaultRoleWithPolicyArgs._configure(_setter, **task_role) __props__.__dict__["task_role"] = task_role __props__.__dict__["volumes"] = volumes __props__.__dict__["load_balancers"] = None diff --git a/sdk/python/pulumi_awsx/lb/_inputs.py b/sdk/python/pulumi_awsx/lb/_inputs.py index 31f1a2d43..971876cc4 100644 --- a/sdk/python/pulumi_awsx/lb/_inputs.py +++ b/sdk/python/pulumi_awsx/lb/_inputs.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities import pulumi_aws @@ -1444,41 +1444,20 @@ def __init__(__self__, *, > **NOTE::** Please note that listeners that are attached to Application Load Balancers must use either `HTTP` or `HTTPS` protocols while listeners that are attached to Network Load Balancers must use the `TCP` protocol. """ - ListenerArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - alpn_policy=alpn_policy, - certificate_arn=certificate_arn, - default_actions=default_actions, - port=port, - protocol=protocol, - ssl_policy=ssl_policy, - tags=tags, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - alpn_policy: Optional[pulumi.Input[str]] = None, - certificate_arn: Optional[pulumi.Input[str]] = None, - default_actions: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.ListenerDefaultActionArgs']]]] = None, - port: Optional[pulumi.Input[int]] = None, - protocol: Optional[pulumi.Input[str]] = None, - ssl_policy: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if alpn_policy is not None: - _setter("alpn_policy", alpn_policy) + pulumi.set(__self__, "alpn_policy", alpn_policy) if certificate_arn is not None: - _setter("certificate_arn", certificate_arn) + pulumi.set(__self__, "certificate_arn", certificate_arn) if default_actions is not None: - _setter("default_actions", default_actions) + pulumi.set(__self__, "default_actions", default_actions) if port is not None: - _setter("port", port) + pulumi.set(__self__, "port", port) if protocol is not None: - _setter("protocol", protocol) + pulumi.set(__self__, "protocol", protocol) if ssl_policy is not None: - _setter("ssl_policy", ssl_policy) + pulumi.set(__self__, "ssl_policy", ssl_policy) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) @property @pulumi.getter(name="alpnPolicy") @@ -1588,6 +1567,7 @@ def __init__(__self__, *, stickiness: Optional[pulumi.Input['pulumi_aws.lb.TargetGroupStickinessArgs']] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetFailoverArgs']]]] = None, + target_health_states: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetHealthStateArgs']]]] = None, target_type: Optional[pulumi.Input[str]] = None, vpc_id: Optional[pulumi.Input[str]] = None): """ @@ -2046,6 +2026,131 @@ def __init__(__self__, *, vpcId: ${aws_vpc.main.id} ``` {{% /example %}} + {{% example %}} + ### Target group with unhealthy connection termination disabled + + ```typescript + import * as pulumi from "@pulumi/pulumi"; + import * as aws from "@pulumi/aws"; + + const tcp_example = new aws.lb.TargetGroup("tcp-example", { + port: 25, + protocol: "TCP", + vpcId: aws_vpc.main.id, + targetHealthStates: [{ + enableUnhealthyConnectionTermination: false, + }], + }); + ``` + ```python + import pulumi + import pulumi_aws as aws + + tcp_example = aws.lb.TargetGroup("tcp-example", + port=25, + protocol="TCP", + vpc_id=aws_vpc["main"]["id"], + target_health_states=[aws.lb.TargetGroupTargetHealthStateArgs( + enable_unhealthy_connection_termination=False, + )]) + ``` + ```csharp + using System.Collections.Generic; + using System.Linq; + using Pulumi; + using Aws = Pulumi.Aws; + + return await Deployment.RunAsync(() => + { + var tcp_example = new Aws.LB.TargetGroup("tcp-example", new() + { + Port = 25, + Protocol = "TCP", + VpcId = aws_vpc.Main.Id, + TargetHealthStates = new[] + { + new Aws.LB.Inputs.TargetGroupTargetHealthStateArgs + { + EnableUnhealthyConnectionTermination = false, + }, + }, + }); + + }); + ``` + ```go + package main + + import ( + "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lb" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + ) + + func main() { + pulumi.Run(func(ctx *pulumi.Context) error { + _, err := lb.NewTargetGroup(ctx, "tcp-example", &lb.TargetGroupArgs{ + Port: pulumi.Int(25), + Protocol: pulumi.String("TCP"), + VpcId: pulumi.Any(aws_vpc.Main.Id), + TargetHealthStates: lb.TargetGroupTargetHealthStateArray{ + &lb.TargetGroupTargetHealthStateArgs{ + EnableUnhealthyConnectionTermination: pulumi.Bool(false), + }, + }, + }) + if err != nil { + return err + } + return nil + }) + } + ``` + ```java + package generated_program; + + import com.pulumi.Context; + import com.pulumi.Pulumi; + import com.pulumi.core.Output; + import com.pulumi.aws.lb.TargetGroup; + import com.pulumi.aws.lb.TargetGroupArgs; + import com.pulumi.aws.lb.inputs.TargetGroupTargetHealthStateArgs; + import java.util.List; + import java.util.ArrayList; + import java.util.Map; + import java.io.File; + import java.nio.file.Files; + import java.nio.file.Paths; + + public class App { + public static void main(String[] args) { + Pulumi.run(App::stack); + } + + public static void stack(Context ctx) { + var tcp_example = new TargetGroup("tcp-example", TargetGroupArgs.builder() + .port(25) + .protocol("TCP") + .vpcId(aws_vpc.main().id()) + .targetHealthStates(TargetGroupTargetHealthStateArgs.builder() + .enableUnhealthyConnectionTermination(false) + .build()) + .build()); + + } + } + ``` + ```yaml + resources: + tcp-example: + type: aws:lb:TargetGroup + properties: + port: 25 + protocol: TCP + vpcId: ${aws_vpc.main.id} + targetHealthStates: + - enableUnhealthyConnectionTermination: false + ``` + {{% /example %}} {{% /examples %}} ## Import @@ -2074,6 +2179,7 @@ def __init__(__self__, *, :param pulumi.Input['pulumi_aws.lb.TargetGroupStickinessArgs'] stickiness: Stickiness configuration block. Detailed below. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetFailoverArgs']]] target_failovers: Target failover block. Only applicable for Gateway Load Balancer target groups. See target_failover for more information. + :param pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetHealthStateArgs']]] target_health_states: Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. :param pulumi.Input[str] target_type: Type of target that you must specify when registering targets with this target group. See [doc](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_CreateTargetGroup.html) for supported values. The default is `instance`. Note that you can't specify targets for a target group using both instance IDs and IP addresses. @@ -2085,93 +2191,48 @@ def __init__(__self__, *, Application Load Balancers do not support the `alb` target type. :param pulumi.Input[str] vpc_id: Identifier of the VPC in which to create the target group. Required when `target_type` is `instance`, `ip` or `alb`. Does not apply when `target_type` is `lambda`. """ - TargetGroupArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - connection_termination=connection_termination, - deregistration_delay=deregistration_delay, - health_check=health_check, - ip_address_type=ip_address_type, - lambda_multi_value_headers_enabled=lambda_multi_value_headers_enabled, - load_balancing_algorithm_type=load_balancing_algorithm_type, - load_balancing_cross_zone_enabled=load_balancing_cross_zone_enabled, - name=name, - name_prefix=name_prefix, - port=port, - preserve_client_ip=preserve_client_ip, - protocol=protocol, - protocol_version=protocol_version, - proxy_protocol_v2=proxy_protocol_v2, - slow_start=slow_start, - stickiness=stickiness, - tags=tags, - target_failovers=target_failovers, - target_type=target_type, - vpc_id=vpc_id, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - connection_termination: Optional[pulumi.Input[bool]] = None, - deregistration_delay: Optional[pulumi.Input[int]] = None, - health_check: Optional[pulumi.Input['pulumi_aws.lb.TargetGroupHealthCheckArgs']] = None, - ip_address_type: Optional[pulumi.Input[str]] = None, - lambda_multi_value_headers_enabled: Optional[pulumi.Input[bool]] = None, - load_balancing_algorithm_type: Optional[pulumi.Input[str]] = None, - load_balancing_cross_zone_enabled: Optional[pulumi.Input[str]] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - port: Optional[pulumi.Input[int]] = None, - preserve_client_ip: Optional[pulumi.Input[str]] = None, - protocol: Optional[pulumi.Input[str]] = None, - protocol_version: Optional[pulumi.Input[str]] = None, - proxy_protocol_v2: Optional[pulumi.Input[bool]] = None, - slow_start: Optional[pulumi.Input[int]] = None, - stickiness: Optional[pulumi.Input['pulumi_aws.lb.TargetGroupStickinessArgs']] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - target_failovers: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetFailoverArgs']]]] = None, - target_type: Optional[pulumi.Input[str]] = None, - vpc_id: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if connection_termination is not None: - _setter("connection_termination", connection_termination) + pulumi.set(__self__, "connection_termination", connection_termination) if deregistration_delay is not None: - _setter("deregistration_delay", deregistration_delay) + pulumi.set(__self__, "deregistration_delay", deregistration_delay) if health_check is not None: - _setter("health_check", health_check) + pulumi.set(__self__, "health_check", health_check) if ip_address_type is not None: - _setter("ip_address_type", ip_address_type) + pulumi.set(__self__, "ip_address_type", ip_address_type) if lambda_multi_value_headers_enabled is not None: - _setter("lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) + pulumi.set(__self__, "lambda_multi_value_headers_enabled", lambda_multi_value_headers_enabled) if load_balancing_algorithm_type is not None: - _setter("load_balancing_algorithm_type", load_balancing_algorithm_type) + pulumi.set(__self__, "load_balancing_algorithm_type", load_balancing_algorithm_type) if load_balancing_cross_zone_enabled is not None: - _setter("load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) + pulumi.set(__self__, "load_balancing_cross_zone_enabled", load_balancing_cross_zone_enabled) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if port is not None: - _setter("port", port) + pulumi.set(__self__, "port", port) if preserve_client_ip is not None: - _setter("preserve_client_ip", preserve_client_ip) + pulumi.set(__self__, "preserve_client_ip", preserve_client_ip) if protocol is not None: - _setter("protocol", protocol) + pulumi.set(__self__, "protocol", protocol) if protocol_version is not None: - _setter("protocol_version", protocol_version) + pulumi.set(__self__, "protocol_version", protocol_version) if proxy_protocol_v2 is not None: - _setter("proxy_protocol_v2", proxy_protocol_v2) + pulumi.set(__self__, "proxy_protocol_v2", proxy_protocol_v2) if slow_start is not None: - _setter("slow_start", slow_start) + pulumi.set(__self__, "slow_start", slow_start) if stickiness is not None: - _setter("stickiness", stickiness) + pulumi.set(__self__, "stickiness", stickiness) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if target_failovers is not None: - _setter("target_failovers", target_failovers) + pulumi.set(__self__, "target_failovers", target_failovers) + if target_health_states is not None: + pulumi.set(__self__, "target_health_states", target_health_states) if target_type is not None: - _setter("target_type", target_type) + pulumi.set(__self__, "target_type", target_type) if vpc_id is not None: - _setter("vpc_id", vpc_id) + pulumi.set(__self__, "vpc_id", vpc_id) @property @pulumi.getter(name="connectionTermination") @@ -2389,6 +2450,18 @@ def target_failovers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulum def target_failovers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetFailoverArgs']]]]): pulumi.set(self, "target_failovers", value) + @property + @pulumi.getter(name="targetHealthStates") + def target_health_states(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetHealthStateArgs']]]]: + """ + Target health state block. Only applicable for Network Load Balancer target groups when `protocol` is `TCP` or `TLS`. See target_health_state for more information. + """ + return pulumi.get(self, "target_health_states") + + @target_health_states.setter + def target_health_states(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.TargetGroupTargetHealthStateArgs']]]]): + pulumi.set(self, "target_health_states", value) + @property @pulumi.getter(name="targetType") def target_type(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_awsx/lb/application_load_balancer.py b/sdk/python/pulumi_awsx/lb/application_load_balancer.py index 28e011ea0..5196471a2 100644 --- a/sdk/python/pulumi_awsx/lb/application_load_balancer.py +++ b/sdk/python/pulumi_awsx/lb/application_load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from .. import awsx as _awsx from ._inputs import * @@ -23,6 +23,7 @@ def __init__(__self__, *, default_target_group: Optional['TargetGroupArgs'] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, enable_http2: Optional[pulumi.Input[bool]] = None, @@ -51,6 +52,7 @@ def __init__(__self__, *, :param 'TargetGroupArgs' default_target_group: Options creating a default target group. :param pulumi.Input[int] default_target_group_port: Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80. :param pulumi.Input[str] desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. + :param pulumi.Input[str] dns_record_client_routing_policy: Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. :param pulumi.Input[bool] drop_invalid_header_fields: Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. :param pulumi.Input[bool] enable_deletion_protection: If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. :param pulumi.Input[bool] enable_http2: Indicates whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`. @@ -76,117 +78,60 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. """ - ApplicationLoadBalancerArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - access_logs=access_logs, - customer_owned_ipv4_pool=customer_owned_ipv4_pool, - default_security_group=default_security_group, - default_target_group=default_target_group, - default_target_group_port=default_target_group_port, - desync_mitigation_mode=desync_mitigation_mode, - drop_invalid_header_fields=drop_invalid_header_fields, - enable_deletion_protection=enable_deletion_protection, - enable_http2=enable_http2, - enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, - enable_waf_fail_open=enable_waf_fail_open, - enable_xff_client_port=enable_xff_client_port, - idle_timeout=idle_timeout, - internal=internal, - ip_address_type=ip_address_type, - listener=listener, - listeners=listeners, - name=name, - name_prefix=name_prefix, - preserve_host_header=preserve_host_header, - security_groups=security_groups, - subnet_ids=subnet_ids, - subnet_mappings=subnet_mappings, - subnets=subnets, - tags=tags, - xff_header_processing_mode=xff_header_processing_mode, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - access_logs: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerAccessLogsArgs']] = None, - customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, - default_security_group: Optional['_awsx.DefaultSecurityGroupArgs'] = None, - default_target_group: Optional['TargetGroupArgs'] = None, - default_target_group_port: Optional[pulumi.Input[int]] = None, - desync_mitigation_mode: Optional[pulumi.Input[str]] = None, - drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, - enable_deletion_protection: Optional[pulumi.Input[bool]] = None, - enable_http2: Optional[pulumi.Input[bool]] = None, - enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, - enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, - enable_xff_client_port: Optional[pulumi.Input[bool]] = None, - idle_timeout: Optional[pulumi.Input[int]] = None, - internal: Optional[pulumi.Input[bool]] = None, - ip_address_type: Optional[pulumi.Input[str]] = None, - listener: Optional['ListenerArgs'] = None, - listeners: Optional[Sequence['ListenerArgs']] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - preserve_host_header: Optional[pulumi.Input[bool]] = None, - security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] = None, - subnets: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - xff_header_processing_mode: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if access_logs is not None: - _setter("access_logs", access_logs) + pulumi.set(__self__, "access_logs", access_logs) if customer_owned_ipv4_pool is not None: - _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) + pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) if default_security_group is not None: - _setter("default_security_group", default_security_group) + pulumi.set(__self__, "default_security_group", default_security_group) if default_target_group is not None: - _setter("default_target_group", default_target_group) + pulumi.set(__self__, "default_target_group", default_target_group) if default_target_group_port is not None: - _setter("default_target_group_port", default_target_group_port) + pulumi.set(__self__, "default_target_group_port", default_target_group_port) if desync_mitigation_mode is not None: - _setter("desync_mitigation_mode", desync_mitigation_mode) + pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + if dns_record_client_routing_policy is not None: + pulumi.set(__self__, "dns_record_client_routing_policy", dns_record_client_routing_policy) if drop_invalid_header_fields is not None: - _setter("drop_invalid_header_fields", drop_invalid_header_fields) + pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) if enable_deletion_protection is not None: - _setter("enable_deletion_protection", enable_deletion_protection) + pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) if enable_http2 is not None: - _setter("enable_http2", enable_http2) + pulumi.set(__self__, "enable_http2", enable_http2) if enable_tls_version_and_cipher_suite_headers is not None: - _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - _setter("enable_waf_fail_open", enable_waf_fail_open) + pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - _setter("enable_xff_client_port", enable_xff_client_port) + pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - _setter("idle_timeout", idle_timeout) + pulumi.set(__self__, "idle_timeout", idle_timeout) if internal is not None: - _setter("internal", internal) + pulumi.set(__self__, "internal", internal) if ip_address_type is not None: - _setter("ip_address_type", ip_address_type) + pulumi.set(__self__, "ip_address_type", ip_address_type) if listener is not None: - _setter("listener", listener) + pulumi.set(__self__, "listener", listener) if listeners is not None: - _setter("listeners", listeners) + pulumi.set(__self__, "listeners", listeners) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if preserve_host_header is not None: - _setter("preserve_host_header", preserve_host_header) + pulumi.set(__self__, "preserve_host_header", preserve_host_header) if security_groups is not None: - _setter("security_groups", security_groups) + pulumi.set(__self__, "security_groups", security_groups) if subnet_ids is not None: - _setter("subnet_ids", subnet_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) if subnet_mappings is not None: - _setter("subnet_mappings", subnet_mappings) + pulumi.set(__self__, "subnet_mappings", subnet_mappings) if subnets is not None: - _setter("subnets", subnets) + pulumi.set(__self__, "subnets", subnets) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if xff_header_processing_mode is not None: - _setter("xff_header_processing_mode", xff_header_processing_mode) + pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) @property @pulumi.getter(name="accessLogs") @@ -260,6 +205,18 @@ def desync_mitigation_mode(self) -> Optional[pulumi.Input[str]]: def desync_mitigation_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "desync_mitigation_mode", value) + @property + @pulumi.getter(name="dnsRecordClientRoutingPolicy") + def dns_record_client_routing_policy(self) -> Optional[pulumi.Input[str]]: + """ + Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + """ + return pulumi.get(self, "dns_record_client_routing_policy") + + @dns_record_client_routing_policy.setter + def dns_record_client_routing_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dns_record_client_routing_policy", value) + @property @pulumi.getter(name="dropInvalidHeaderFields") def drop_invalid_header_fields(self) -> Optional[pulumi.Input[bool]]: @@ -516,6 +473,7 @@ def __init__(__self__, default_target_group: Optional[pulumi.InputType['TargetGroupArgs']] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, enable_http2: Optional[pulumi.Input[bool]] = None, @@ -548,6 +506,7 @@ def __init__(__self__, :param pulumi.InputType['TargetGroupArgs'] default_target_group: Options creating a default target group. :param pulumi.Input[int] default_target_group_port: Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80. :param pulumi.Input[str] desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. + :param pulumi.Input[str] dns_record_client_routing_policy: Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. :param pulumi.Input[bool] drop_invalid_header_fields: Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. :param pulumi.Input[bool] enable_deletion_protection: If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. :param pulumi.Input[bool] enable_http2: Indicates whether HTTP/2 is enabled in `application` load balancers. Defaults to `true`. @@ -592,10 +551,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - ApplicationLoadBalancerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -607,6 +562,7 @@ def _internal_init(__self__, default_target_group: Optional[pulumi.InputType['TargetGroupArgs']] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, enable_http2: Optional[pulumi.Input[bool]] = None, @@ -638,27 +594,13 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ApplicationLoadBalancerArgs.__new__(ApplicationLoadBalancerArgs) - if access_logs is not None and not isinstance(access_logs, pulumi_aws.lb.LoadBalancerAccessLogsArgs): - access_logs = access_logs or {} - def _setter(key, value): - access_logs[key] = value - pulumi_aws.lb.LoadBalancerAccessLogsArgs._configure(_setter, **access_logs) __props__.__dict__["access_logs"] = access_logs __props__.__dict__["customer_owned_ipv4_pool"] = customer_owned_ipv4_pool - if default_security_group is not None and not isinstance(default_security_group, _awsx.DefaultSecurityGroupArgs): - default_security_group = default_security_group or {} - def _setter(key, value): - default_security_group[key] = value - _awsx.DefaultSecurityGroupArgs._configure(_setter, **default_security_group) __props__.__dict__["default_security_group"] = default_security_group - if default_target_group is not None and not isinstance(default_target_group, TargetGroupArgs): - default_target_group = default_target_group or {} - def _setter(key, value): - default_target_group[key] = value - TargetGroupArgs._configure(_setter, **default_target_group) __props__.__dict__["default_target_group"] = default_target_group __props__.__dict__["default_target_group_port"] = default_target_group_port __props__.__dict__["desync_mitigation_mode"] = desync_mitigation_mode + __props__.__dict__["dns_record_client_routing_policy"] = dns_record_client_routing_policy __props__.__dict__["drop_invalid_header_fields"] = drop_invalid_header_fields __props__.__dict__["enable_deletion_protection"] = enable_deletion_protection __props__.__dict__["enable_http2"] = enable_http2 @@ -668,11 +610,6 @@ def _setter(key, value): __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal __props__.__dict__["ip_address_type"] = ip_address_type - if listener is not None and not isinstance(listener, ListenerArgs): - listener = listener or {} - def _setter(key, value): - listener[key] = value - ListenerArgs._configure(_setter, **listener) __props__.__dict__["listener"] = listener __props__.__dict__["listeners"] = listeners __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_awsx/lb/network_load_balancer.py b/sdk/python/pulumi_awsx/lb/network_load_balancer.py index 37084a782..e64cdfc7b 100644 --- a/sdk/python/pulumi_awsx/lb/network_load_balancer.py +++ b/sdk/python/pulumi_awsx/lb/network_load_balancer.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities from ._inputs import * import pulumi_aws @@ -21,6 +21,7 @@ def __init__(__self__, *, default_target_group: Optional['TargetGroupArgs'] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, @@ -47,6 +48,7 @@ def __init__(__self__, *, :param 'TargetGroupArgs' default_target_group: Options creating a default target group. :param pulumi.Input[int] default_target_group_port: Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80. :param pulumi.Input[str] desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. + :param pulumi.Input[str] dns_record_client_routing_policy: Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. :param pulumi.Input[bool] drop_invalid_header_fields: Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. :param pulumi.Input[bool] enable_cross_zone_load_balancing: If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`. :param pulumi.Input[bool] enable_deletion_protection: If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. @@ -71,109 +73,56 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. :param pulumi.Input[str] xff_header_processing_mode: Determines how the load balancer modifies the `X-Forwarded-For` header in the HTTP request before sending the request to the target. The possible values are `append`, `preserve`, and `remove`. Only valid for Load Balancers of type `application`. The default is `append`. """ - NetworkLoadBalancerArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - access_logs=access_logs, - customer_owned_ipv4_pool=customer_owned_ipv4_pool, - default_target_group=default_target_group, - default_target_group_port=default_target_group_port, - desync_mitigation_mode=desync_mitigation_mode, - drop_invalid_header_fields=drop_invalid_header_fields, - enable_cross_zone_load_balancing=enable_cross_zone_load_balancing, - enable_deletion_protection=enable_deletion_protection, - enable_tls_version_and_cipher_suite_headers=enable_tls_version_and_cipher_suite_headers, - enable_waf_fail_open=enable_waf_fail_open, - enable_xff_client_port=enable_xff_client_port, - idle_timeout=idle_timeout, - internal=internal, - ip_address_type=ip_address_type, - listener=listener, - listeners=listeners, - name=name, - name_prefix=name_prefix, - preserve_host_header=preserve_host_header, - subnet_ids=subnet_ids, - subnet_mappings=subnet_mappings, - subnets=subnets, - tags=tags, - xff_header_processing_mode=xff_header_processing_mode, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - access_logs: Optional[pulumi.Input['pulumi_aws.lb.LoadBalancerAccessLogsArgs']] = None, - customer_owned_ipv4_pool: Optional[pulumi.Input[str]] = None, - default_target_group: Optional['TargetGroupArgs'] = None, - default_target_group_port: Optional[pulumi.Input[int]] = None, - desync_mitigation_mode: Optional[pulumi.Input[str]] = None, - drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, - enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, - enable_deletion_protection: Optional[pulumi.Input[bool]] = None, - enable_tls_version_and_cipher_suite_headers: Optional[pulumi.Input[bool]] = None, - enable_waf_fail_open: Optional[pulumi.Input[bool]] = None, - enable_xff_client_port: Optional[pulumi.Input[bool]] = None, - idle_timeout: Optional[pulumi.Input[int]] = None, - internal: Optional[pulumi.Input[bool]] = None, - ip_address_type: Optional[pulumi.Input[str]] = None, - listener: Optional['ListenerArgs'] = None, - listeners: Optional[Sequence['ListenerArgs']] = None, - name: Optional[pulumi.Input[str]] = None, - name_prefix: Optional[pulumi.Input[str]] = None, - preserve_host_header: Optional[pulumi.Input[bool]] = None, - subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - subnet_mappings: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.lb.LoadBalancerSubnetMappingArgs']]]] = None, - subnets: Optional[pulumi.Input[Sequence[pulumi.Input['pulumi_aws.ec2.Subnet']]]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, - xff_header_processing_mode: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if access_logs is not None: - _setter("access_logs", access_logs) + pulumi.set(__self__, "access_logs", access_logs) if customer_owned_ipv4_pool is not None: - _setter("customer_owned_ipv4_pool", customer_owned_ipv4_pool) + pulumi.set(__self__, "customer_owned_ipv4_pool", customer_owned_ipv4_pool) if default_target_group is not None: - _setter("default_target_group", default_target_group) + pulumi.set(__self__, "default_target_group", default_target_group) if default_target_group_port is not None: - _setter("default_target_group_port", default_target_group_port) + pulumi.set(__self__, "default_target_group_port", default_target_group_port) if desync_mitigation_mode is not None: - _setter("desync_mitigation_mode", desync_mitigation_mode) + pulumi.set(__self__, "desync_mitigation_mode", desync_mitigation_mode) + if dns_record_client_routing_policy is not None: + pulumi.set(__self__, "dns_record_client_routing_policy", dns_record_client_routing_policy) if drop_invalid_header_fields is not None: - _setter("drop_invalid_header_fields", drop_invalid_header_fields) + pulumi.set(__self__, "drop_invalid_header_fields", drop_invalid_header_fields) if enable_cross_zone_load_balancing is not None: - _setter("enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) + pulumi.set(__self__, "enable_cross_zone_load_balancing", enable_cross_zone_load_balancing) if enable_deletion_protection is not None: - _setter("enable_deletion_protection", enable_deletion_protection) + pulumi.set(__self__, "enable_deletion_protection", enable_deletion_protection) if enable_tls_version_and_cipher_suite_headers is not None: - _setter("enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) + pulumi.set(__self__, "enable_tls_version_and_cipher_suite_headers", enable_tls_version_and_cipher_suite_headers) if enable_waf_fail_open is not None: - _setter("enable_waf_fail_open", enable_waf_fail_open) + pulumi.set(__self__, "enable_waf_fail_open", enable_waf_fail_open) if enable_xff_client_port is not None: - _setter("enable_xff_client_port", enable_xff_client_port) + pulumi.set(__self__, "enable_xff_client_port", enable_xff_client_port) if idle_timeout is not None: - _setter("idle_timeout", idle_timeout) + pulumi.set(__self__, "idle_timeout", idle_timeout) if internal is not None: - _setter("internal", internal) + pulumi.set(__self__, "internal", internal) if ip_address_type is not None: - _setter("ip_address_type", ip_address_type) + pulumi.set(__self__, "ip_address_type", ip_address_type) if listener is not None: - _setter("listener", listener) + pulumi.set(__self__, "listener", listener) if listeners is not None: - _setter("listeners", listeners) + pulumi.set(__self__, "listeners", listeners) if name is not None: - _setter("name", name) + pulumi.set(__self__, "name", name) if name_prefix is not None: - _setter("name_prefix", name_prefix) + pulumi.set(__self__, "name_prefix", name_prefix) if preserve_host_header is not None: - _setter("preserve_host_header", preserve_host_header) + pulumi.set(__self__, "preserve_host_header", preserve_host_header) if subnet_ids is not None: - _setter("subnet_ids", subnet_ids) + pulumi.set(__self__, "subnet_ids", subnet_ids) if subnet_mappings is not None: - _setter("subnet_mappings", subnet_mappings) + pulumi.set(__self__, "subnet_mappings", subnet_mappings) if subnets is not None: - _setter("subnets", subnets) + pulumi.set(__self__, "subnets", subnets) if tags is not None: - _setter("tags", tags) + pulumi.set(__self__, "tags", tags) if xff_header_processing_mode is not None: - _setter("xff_header_processing_mode", xff_header_processing_mode) + pulumi.set(__self__, "xff_header_processing_mode", xff_header_processing_mode) @property @pulumi.getter(name="accessLogs") @@ -235,6 +184,18 @@ def desync_mitigation_mode(self) -> Optional[pulumi.Input[str]]: def desync_mitigation_mode(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "desync_mitigation_mode", value) + @property + @pulumi.getter(name="dnsRecordClientRoutingPolicy") + def dns_record_client_routing_policy(self) -> Optional[pulumi.Input[str]]: + """ + Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. + """ + return pulumi.get(self, "dns_record_client_routing_policy") + + @dns_record_client_routing_policy.setter + def dns_record_client_routing_policy(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dns_record_client_routing_policy", value) + @property @pulumi.getter(name="dropInvalidHeaderFields") def drop_invalid_header_fields(self) -> Optional[pulumi.Input[bool]]: @@ -478,6 +439,7 @@ def __init__(__self__, default_target_group: Optional[pulumi.InputType['TargetGroupArgs']] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, @@ -508,6 +470,7 @@ def __init__(__self__, :param pulumi.InputType['TargetGroupArgs'] default_target_group: Options creating a default target group. :param pulumi.Input[int] default_target_group_port: Port to use to connect with the target. Valid values are ports 1-65535. Defaults to 80. :param pulumi.Input[str] desync_mitigation_mode: Determines how the load balancer handles requests that might pose a security risk to an application due to HTTP desync. Valid values are `monitor`, `defensive` (default), `strictest`. + :param pulumi.Input[str] dns_record_client_routing_policy: Indicates how traffic is distributed among the load balancer Availability Zones. Possible values are `any_availability_zone` (default), `availability_zone_affinity`, or `partial_availability_zone_affinity`. See [Availability Zone DNS affinity](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#zonal-dns-affinity) for additional details. Only valid for `network` type load balancers. :param pulumi.Input[bool] drop_invalid_header_fields: Indicates whether HTTP headers with header fields that are not valid are removed by the load balancer (true) or routed to targets (false). The default is false. Elastic Load Balancing requires that message header names contain only alphanumeric characters and hyphens. Only valid for Load Balancers of type `application`. :param pulumi.Input[bool] enable_cross_zone_load_balancing: If true, cross-zone load balancing of the load balancer will be enabled. For `network` and `gateway` type load balancers, this feature is disabled by default (`false`). For `application` load balancer this feature is always enabled (`true`) and cannot be disabled. Defaults to `false`. :param pulumi.Input[bool] enable_deletion_protection: If true, deletion of the load balancer will be disabled via the AWS API. This will prevent this provider from deleting the load balancer. Defaults to `false`. @@ -551,10 +514,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - NetworkLoadBalancerArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, @@ -565,6 +524,7 @@ def _internal_init(__self__, default_target_group: Optional[pulumi.InputType['TargetGroupArgs']] = None, default_target_group_port: Optional[pulumi.Input[int]] = None, desync_mitigation_mode: Optional[pulumi.Input[str]] = None, + dns_record_client_routing_policy: Optional[pulumi.Input[str]] = None, drop_invalid_header_fields: Optional[pulumi.Input[bool]] = None, enable_cross_zone_load_balancing: Optional[pulumi.Input[bool]] = None, enable_deletion_protection: Optional[pulumi.Input[bool]] = None, @@ -595,21 +555,12 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = NetworkLoadBalancerArgs.__new__(NetworkLoadBalancerArgs) - if access_logs is not None and not isinstance(access_logs, pulumi_aws.lb.LoadBalancerAccessLogsArgs): - access_logs = access_logs or {} - def _setter(key, value): - access_logs[key] = value - pulumi_aws.lb.LoadBalancerAccessLogsArgs._configure(_setter, **access_logs) __props__.__dict__["access_logs"] = access_logs __props__.__dict__["customer_owned_ipv4_pool"] = customer_owned_ipv4_pool - if default_target_group is not None and not isinstance(default_target_group, TargetGroupArgs): - default_target_group = default_target_group or {} - def _setter(key, value): - default_target_group[key] = value - TargetGroupArgs._configure(_setter, **default_target_group) __props__.__dict__["default_target_group"] = default_target_group __props__.__dict__["default_target_group_port"] = default_target_group_port __props__.__dict__["desync_mitigation_mode"] = desync_mitigation_mode + __props__.__dict__["dns_record_client_routing_policy"] = dns_record_client_routing_policy __props__.__dict__["drop_invalid_header_fields"] = drop_invalid_header_fields __props__.__dict__["enable_cross_zone_load_balancing"] = enable_cross_zone_load_balancing __props__.__dict__["enable_deletion_protection"] = enable_deletion_protection @@ -619,11 +570,6 @@ def _setter(key, value): __props__.__dict__["idle_timeout"] = idle_timeout __props__.__dict__["internal"] = internal __props__.__dict__["ip_address_type"] = ip_address_type - if listener is not None and not isinstance(listener, ListenerArgs): - listener = listener or {} - def _setter(key, value): - listener[key] = value - ListenerArgs._configure(_setter, **listener) __props__.__dict__["listener"] = listener __props__.__dict__["listeners"] = listeners __props__.__dict__["name"] = name diff --git a/sdk/python/pulumi_awsx/lb/target_group_attachment.py b/sdk/python/pulumi_awsx/lb/target_group_attachment.py index fc47c4d50..1875bc672 100644 --- a/sdk/python/pulumi_awsx/lb/target_group_attachment.py +++ b/sdk/python/pulumi_awsx/lb/target_group_attachment.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities import pulumi_aws @@ -30,37 +30,18 @@ def __init__(__self__, *, :param pulumi.Input['pulumi_aws.lb.TargetGroup'] target_group: Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified. :param pulumi.Input[str] target_group_arn: ARN of the Target Group to attach to. Exactly one of [targetGroup] or [targetGroupArn] must be specified. """ - TargetGroupAttachmentArgs._configure( - lambda key, value: pulumi.set(__self__, key, value), - instance=instance, - instance_id=instance_id, - lambda_=lambda_, - lambda_arn=lambda_arn, - target_group=target_group, - target_group_arn=target_group_arn, - ) - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - instance: Optional[pulumi.Input['pulumi_aws.ec2.Instance']] = None, - instance_id: Optional[pulumi.Input[str]] = None, - lambda_: Optional[pulumi.Input['pulumi_aws.lambda_.Function']] = None, - lambda_arn: Optional[pulumi.Input[str]] = None, - target_group: Optional[pulumi.Input['pulumi_aws.lb.TargetGroup']] = None, - target_group_arn: Optional[pulumi.Input[str]] = None, - opts: Optional[pulumi.ResourceOptions]=None): if instance is not None: - _setter("instance", instance) + pulumi.set(__self__, "instance", instance) if instance_id is not None: - _setter("instance_id", instance_id) + pulumi.set(__self__, "instance_id", instance_id) if lambda_ is not None: - _setter("lambda_", lambda_) + pulumi.set(__self__, "lambda_", lambda_) if lambda_arn is not None: - _setter("lambda_arn", lambda_arn) + pulumi.set(__self__, "lambda_arn", lambda_arn) if target_group is not None: - _setter("target_group", target_group) + pulumi.set(__self__, "target_group", target_group) if target_group_arn is not None: - _setter("target_group_arn", target_group_arn) + pulumi.set(__self__, "target_group_arn", target_group_arn) @property @pulumi.getter @@ -178,10 +159,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - TargetGroupAttachmentArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/pulumi_awsx/provider.py b/sdk/python/pulumi_awsx/provider.py index e40bf7ef1..e3e4ba493 100644 --- a/sdk/python/pulumi_awsx/provider.py +++ b/sdk/python/pulumi_awsx/provider.py @@ -6,7 +6,7 @@ import warnings import pulumi import pulumi.runtime -from typing import Any, Callable, Mapping, Optional, Sequence, Union, overload +from typing import Any, Mapping, Optional, Sequence, Union, overload from . import _utilities __all__ = ['ProviderArgs', 'Provider'] @@ -18,11 +18,6 @@ def __init__(__self__): The set of arguments for constructing a Provider resource. """ pass - @staticmethod - def _configure( - _setter: Callable[[Any, Any], None], - opts: Optional[pulumi.ResourceOptions]=None): - pass class Provider(pulumi.ProviderResource): @@ -54,10 +49,6 @@ def __init__(__self__, resource_name: str, *args, **kwargs): if resource_args is not None: __self__._internal_init(resource_name, opts, **resource_args.__dict__) else: - kwargs = kwargs or {} - def _setter(key, value): - kwargs[key] = value - ProviderArgs._configure(_setter, **kwargs) __self__._internal_init(resource_name, *args, **kwargs) def _internal_init(__self__, diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 646c375f9..5d7bfed20 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -38,9 +38,9 @@ def readme(): }, install_requires=[ 'parver>=0.2.1', - 'pulumi>=3.76.1,<4.0.0', + 'pulumi>=3.91.1,<4.0.0', 'pulumi-aws>=6.0.4,<7.0.0', - 'pulumi-docker>=4.4.3,<5.0.0', + 'pulumi-docker>=4.4.4,<5.0.0', 'semver>=2.8.1' ], zip_safe=False)