From 7a397fd24998c9e6d934e00e4cee630a49b534cf Mon Sep 17 00:00:00 2001 From: Paul Stack Date: Fri, 29 Jan 2021 16:19:01 +0000 Subject: [PATCH] Upgrade to v3.26.0 of the AWS Terraform Provider (#1332) --- CHANGELOG.md | 3 +- provider/cmd/pulumi-resource-aws/schema.json | 1295 ++++++++++++++++- provider/go.mod | 3 +- provider/go.sum | 8 +- provider/resources.go | 7 + .../GetListenerDefaultActionForwardResult.cs | 29 + ...nerDefaultActionForwardStickinessResult.cs | 29 + ...erDefaultActionForwardTargetGroupResult.cs | 32 + .../Outputs/GetListenerDefaultActionResult.cs | 4 + sdk/dotnet/Amp/README.md | 1 + sdk/dotnet/Amp/Workspace.cs | 123 ++ sdk/dotnet/ApiGatewayV2/Api.cs | 4 +- sdk/dotnet/AppAutoScaling/Policy.cs | 37 + sdk/dotnet/AppAutoScaling/Target.cs | 22 + .../GetListenerDefaultActionForwardResult.cs | 29 + ...nerDefaultActionForwardStickinessResult.cs | 29 + ...erDefaultActionForwardTargetGroupResult.cs | 32 + .../Outputs/GetListenerDefaultActionResult.cs | 4 + sdk/dotnet/CodeArtifact/Domain.cs | 17 +- sdk/dotnet/Config/Config.cs | 1 + sdk/dotnet/Ebs/Volume.cs | 2 +- sdk/dotnet/Ec2/GetVpcPeeringConnection.cs | 21 +- ...LaunchTemplateBlockDeviceMappingEbsArgs.cs | 2 +- ...nchTemplateBlockDeviceMappingEbsGetArgs.cs | 2 +- ...tVpcPeeringConnectionCidrBlockSetResult.cs | 27 + ...PeeringConnectionPeerCidrBlockSetResult.cs | 27 + .../LaunchTemplateBlockDeviceMappingEbs.cs | 2 +- sdk/dotnet/ElastiCache/GetReplicationGroup.cs | 9 +- .../Inputs/ReplicationGroupClusterModeArgs.cs | 2 +- .../ReplicationGroupClusterModeGetArgs.cs | 2 +- .../Outputs/ReplicationGroupClusterMode.cs | 2 +- sdk/dotnet/ElastiCache/ReplicationGroup.cs | 24 +- .../GetListenerDefaultActionForwardResult.cs | 29 + ...nerDefaultActionForwardStickinessResult.cs | 29 + ...erDefaultActionForwardTargetGroupResult.cs | 32 + .../Outputs/GetListenerDefaultActionResult.cs | 4 + sdk/dotnet/ImageBuilder/GetImage.cs | 182 +++ sdk/dotnet/ImageBuilder/Image.cs | 314 ++++ .../ImageImageTestsConfigurationArgs.cs | 31 + .../ImageImageTestsConfigurationGetArgs.cs | 31 + .../Inputs/ImageOutputResourceAmiArgs.cs | 49 + .../Inputs/ImageOutputResourceAmiGetArgs.cs | 49 + .../Inputs/ImageOutputResourceArgs.cs | 31 + .../Inputs/ImageOutputResourceGetArgs.cs | 31 + .../GetImageImageTestsConfigurationResult.cs | 35 + .../GetImageOutputResourceAmiResult.cs | 56 + .../Outputs/GetImageOutputResourceResult.cs | 27 + .../Outputs/ImageImageTestsConfiguration.cs | 35 + .../Outputs/ImageOutputResource.cs | 27 + .../Outputs/ImageOutputResourceAmi.cs | 56 + sdk/dotnet/Inputs/ProviderEndpointArgs.cs | 3 + .../GetListenerDefaultActionForwardResult.cs | 29 + ...nerDefaultActionForwardStickinessResult.cs | 29 + ...erDefaultActionForwardTargetGroupResult.cs | 32 + .../Outputs/GetListenerDefaultActionResult.cs | 4 + sdk/dotnet/NetworkFirewall/RuleGroup.cs | 72 +- sdk/dotnet/Outputs/ProviderEndpoint.cs | 4 + sdk/dotnet/Sagemaker/AppImageConfig.cs | 184 +++ sdk/dotnet/Sagemaker/CodeRepository.cs | 102 ++ ...ImageConfigKernelGatewayImageConfigArgs.cs | 31 + ...lGatewayImageConfigFileSystemConfigArgs.cs | 37 + ...tewayImageConfigFileSystemConfigGetArgs.cs | 37 + ...geConfigKernelGatewayImageConfigGetArgs.cs | 31 + ...gKernelGatewayImageConfigKernelSpecArgs.cs | 31 + ...rnelGatewayImageConfigKernelSpecGetArgs.cs | 31 + .../Inputs/CodeRepositoryGitConfigArgs.cs | 9 + .../Inputs/CodeRepositoryGitConfigGetArgs.cs | 9 + .../AppImageConfigKernelGatewayImageConfig.cs | 35 + ...ernelGatewayImageConfigFileSystemConfig.cs | 42 + ...onfigKernelGatewayImageConfigKernelSpec.cs | 35 + .../Outputs/CodeRepositoryGitConfig.cs | 9 + ...entDestinationCloudwatchDestinationArgs.cs | 2 +- ...DestinationCloudwatchDestinationGetArgs.cs | 2 +- .../EventDestinationCloudwatchDestination.cs | 2 +- .../Inputs/PatchBaselineApprovalRuleArgs.cs | 2 +- .../PatchBaselineApprovalRuleGetArgs.cs | 2 +- .../Ssm/Outputs/PatchBaselineApprovalRule.cs | 2 +- sdk/dotnet/Transfer/User.cs | 9 + sdk/go/aws/alb/pulumiTypes.go | 319 ++++ sdk/go/aws/amp/init.go | 43 + sdk/go/aws/amp/workspace.go | 281 ++++ sdk/go/aws/apigatewayv2/api.go | 6 +- sdk/go/aws/appautoscaling/policy.go | 41 + sdk/go/aws/appautoscaling/target.go | 26 + .../applicationloadbalancing/pulumiTypes.go | 319 ++++ sdk/go/aws/codeartifact/domain.go | 29 +- sdk/go/aws/config/pulumiTypes.go | 6 + sdk/go/aws/ebs/volume.go | 2 +- sdk/go/aws/ec2/getVpcPeeringConnection.go | 29 +- sdk/go/aws/ec2/pulumiTypes.go | 206 ++- sdk/go/aws/elasticache/getReplicationGroup.go | 4 +- sdk/go/aws/elasticache/pulumiTypes.go | 8 +- sdk/go/aws/elasticache/replicationGroup.go | 20 +- .../aws/elasticloadbalancingv2/pulumiTypes.go | 319 ++++ sdk/go/aws/imagebuilder/getImage.go | 83 ++ sdk/go/aws/imagebuilder/image.go | 395 +++++ sdk/go/aws/imagebuilder/init.go | 7 + sdk/go/aws/imagebuilder/pulumiTypes.go | 728 +++++++++ sdk/go/aws/lb/pulumiTypes.go | 319 ++++ sdk/go/aws/networkfirewall/ruleGroup.go | 71 +- sdk/go/aws/pulumiTypes.go | 6 + sdk/go/aws/sagemaker/appImageConfig.go | 348 +++++ sdk/go/aws/sagemaker/codeRepository.go | 121 +- sdk/go/aws/sagemaker/init.go | 7 + sdk/go/aws/sagemaker/pulumiTypes.go | 508 ++++++- sdk/go/aws/ses/pulumiTypes.go | 6 +- sdk/go/aws/ssm/pulumiTypes.go | 6 +- sdk/go/aws/transfer/user.go | 13 +- sdk/nodejs/amp/index.ts | 24 + sdk/nodejs/amp/workspace.ts | 115 ++ sdk/nodejs/apigatewayv2/api.ts | 4 +- sdk/nodejs/appautoscaling/policy.ts | 26 + sdk/nodejs/appautoscaling/target.ts | 14 + sdk/nodejs/codeartifact/domain.ts | 15 +- sdk/nodejs/ebs/volume.ts | 2 +- sdk/nodejs/ec2/getVpcPeeringConnection.ts | 15 +- sdk/nodejs/elasticache/getReplicationGroup.ts | 6 +- sdk/nodejs/elasticache/replicationGroup.ts | 20 +- sdk/nodejs/imagebuilder/getImage.ts | 112 ++ sdk/nodejs/imagebuilder/image.ts | 257 ++++ sdk/nodejs/imagebuilder/index.ts | 6 + sdk/nodejs/index.ts | 2 + sdk/nodejs/networkfirewall/ruleGroup.ts | 44 +- sdk/nodejs/sagemaker/appImageConfig.ts | 158 ++ sdk/nodejs/sagemaker/codeRepository.ts | 74 + sdk/nodejs/sagemaker/index.ts | 5 + sdk/nodejs/transfer/user.ts | 5 + sdk/nodejs/tsconfig.json | 5 + sdk/nodejs/types/input.ts | 96 +- sdk/nodejs/types/output.ts | 228 ++- sdk/python/pulumi_aws/__init__.py | 1 + sdk/python/pulumi_aws/_inputs.py | 12 + sdk/python/pulumi_aws/_tables.py | 12 + sdk/python/pulumi_aws/alb/outputs.py | 73 + sdk/python/pulumi_aws/amp/__init__.py | 29 + sdk/python/pulumi_aws/amp/workspace.py | 117 ++ sdk/python/pulumi_aws/apigatewayv2/api.py | 4 +- .../pulumi_aws/appautoscaling/policy.py | 24 + .../pulumi_aws/appautoscaling/target.py | 13 + .../applicationloadbalancing/outputs.py | 73 + sdk/python/pulumi_aws/codeartifact/domain.py | 13 +- sdk/python/pulumi_aws/config/outputs.py | 8 + sdk/python/pulumi_aws/ebs/volume.py | 2 +- sdk/python/pulumi_aws/ec2/_inputs.py | 4 +- .../ec2/get_vpc_peering_connection.py | 35 +- sdk/python/pulumi_aws/ec2/outputs.py | 42 +- sdk/python/pulumi_aws/elasticache/_inputs.py | 4 +- .../elasticache/get_replication_group.py | 17 +- sdk/python/pulumi_aws/elasticache/outputs.py | 4 +- .../elasticache/replication_group.py | 20 +- .../elasticloadbalancingv2/outputs.py | 73 + .../pulumi_aws/imagebuilder/__init__.py | 5 + sdk/python/pulumi_aws/imagebuilder/_inputs.py | 152 ++ .../pulumi_aws/imagebuilder/get_image.py | 255 ++++ sdk/python/pulumi_aws/imagebuilder/image.py | 267 ++++ sdk/python/pulumi_aws/imagebuilder/outputs.py | 241 +++ sdk/python/pulumi_aws/lb/outputs.py | 73 + .../pulumi_aws/networkfirewall/rule_group.py | 43 +- sdk/python/pulumi_aws/outputs.py | 8 + sdk/python/pulumi_aws/sagemaker/__init__.py | 6 +- sdk/python/pulumi_aws/sagemaker/_inputs.py | 148 ++ .../pulumi_aws/sagemaker/app_image_config.py | 156 ++ .../pulumi_aws/sagemaker/code_repository.py | 61 +- sdk/python/pulumi_aws/sagemaker/outputs.py | 129 ++ sdk/python/pulumi_aws/ses/_inputs.py | 4 +- sdk/python/pulumi_aws/ses/outputs.py | 4 +- sdk/python/pulumi_aws/ssm/_inputs.py | 4 +- sdk/python/pulumi_aws/ssm/outputs.py | 4 +- sdk/python/pulumi_aws/transfer/user.py | 7 +- 169 files changed, 11131 insertions(+), 221 deletions(-) create mode 100644 sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardResult.cs create mode 100644 sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardStickinessResult.cs create mode 100644 sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs create mode 100644 sdk/dotnet/Amp/README.md create mode 100644 sdk/dotnet/Amp/Workspace.cs create mode 100644 sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardResult.cs create mode 100644 sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardStickinessResult.cs create mode 100644 sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs create mode 100644 sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionCidrBlockSetResult.cs create mode 100644 sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionPeerCidrBlockSetResult.cs create mode 100644 sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardResult.cs create mode 100644 sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardStickinessResult.cs create mode 100644 sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs create mode 100644 sdk/dotnet/ImageBuilder/GetImage.cs create mode 100644 sdk/dotnet/ImageBuilder/Image.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationGetArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiGetArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceGetArgs.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/GetImageImageTestsConfigurationResult.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceAmiResult.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceResult.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/ImageImageTestsConfiguration.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/ImageOutputResource.cs create mode 100644 sdk/dotnet/ImageBuilder/Outputs/ImageOutputResourceAmi.cs create mode 100644 sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardResult.cs create mode 100644 sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardStickinessResult.cs create mode 100644 sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs create mode 100644 sdk/dotnet/Sagemaker/AppImageConfig.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigGetArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs.cs create mode 100644 sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfig.cs create mode 100644 sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigFileSystemConfig.cs create mode 100644 sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigKernelSpec.cs create mode 100644 sdk/go/aws/amp/init.go create mode 100644 sdk/go/aws/amp/workspace.go create mode 100644 sdk/go/aws/imagebuilder/getImage.go create mode 100644 sdk/go/aws/imagebuilder/image.go create mode 100644 sdk/go/aws/sagemaker/appImageConfig.go create mode 100644 sdk/nodejs/amp/index.ts create mode 100644 sdk/nodejs/amp/workspace.ts create mode 100644 sdk/nodejs/imagebuilder/getImage.ts create mode 100644 sdk/nodejs/imagebuilder/image.ts create mode 100644 sdk/nodejs/sagemaker/appImageConfig.ts create mode 100644 sdk/python/pulumi_aws/amp/__init__.py create mode 100644 sdk/python/pulumi_aws/amp/workspace.py create mode 100644 sdk/python/pulumi_aws/imagebuilder/get_image.py create mode 100644 sdk/python/pulumi_aws/imagebuilder/image.py create mode 100644 sdk/python/pulumi_aws/sagemaker/app_image_config.py diff --git a/CHANGELOG.md b/CHANGELOG.md index 59c04d39ec0..873b59c061c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ CHANGELOG ========= ## HEAD (Unreleased) -* Upgrading pulumi-terraform-bridge to v2.18.0 +* Update to v3.26.0 of the AWS Terraform Provider +* Upgrading pulumi-terraform-bridge to v2.18.1 --- diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 4e8f44951ab..f4d2d8606d4 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -1943,6 +1943,17 @@ } } }, + "forwards": { + "type": "array", + "items": { + "$ref": "#/types/aws:alb/getListenerDefaultActionForward:getListenerDefaultActionForward" + }, + "language": { + "python": { + "mapCase": false + } + } + }, "order": { "type": "integer", "language": { @@ -1984,6 +1995,7 @@ "authenticateCognitos", "authenticateOidcs", "fixedResponses", + "forwards", "order", "redirects", "targetGroupArn", @@ -2235,6 +2247,103 @@ } } }, + "aws:alb/getListenerDefaultActionForward:getListenerDefaultActionForward": { + "properties": { + "stickinesses": { + "type": "array", + "items": { + "$ref": "#/types/aws:alb/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness" + }, + "language": { + "python": { + "mapCase": false + } + } + }, + "targetGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws:alb/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "stickinesses", + "targetGroups" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:alb/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness": { + "properties": { + "duration": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, + "enabled": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "duration", + "enabled" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:alb/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup": { + "properties": { + "arn": { + "type": "string", + "description": "The arn of the listener. Required if `load_balancer_arn` and `port` is not set.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "weight": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "arn", + "weight" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:alb/getListenerDefaultActionRedirect:getListenerDefaultActionRedirect": { "properties": { "host": { @@ -5130,6 +5239,17 @@ } } }, + "forwards": { + "type": "array", + "items": { + "$ref": "#/types/aws:applicationloadbalancing/getListenerDefaultActionForward:getListenerDefaultActionForward" + }, + "language": { + "python": { + "mapCase": false + } + } + }, "order": { "type": "integer", "language": { @@ -5171,6 +5291,7 @@ "authenticateCognitos", "authenticateOidcs", "fixedResponses", + "forwards", "order", "redirects", "targetGroupArn", @@ -5422,6 +5543,103 @@ } } }, + "aws:applicationloadbalancing/getListenerDefaultActionForward:getListenerDefaultActionForward": { + "properties": { + "stickinesses": { + "type": "array", + "items": { + "$ref": "#/types/aws:applicationloadbalancing/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness" + }, + "language": { + "python": { + "mapCase": false + } + } + }, + "targetGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws:applicationloadbalancing/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "stickinesses", + "targetGroups" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:applicationloadbalancing/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness": { + "properties": { + "duration": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, + "enabled": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "duration", + "enabled" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:applicationloadbalancing/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup": { + "properties": { + "arn": { + "type": "string", + "description": "The arn of the listener. Required if `load_balancer_arn` and `port` is not set.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "weight": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "arn", + "weight" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:applicationloadbalancing/getListenerDefaultActionRedirect:getListenerDefaultActionRedirect": { "properties": { "host": { @@ -16682,6 +16900,9 @@ "emr": { "type": "string" }, + "emrcontainers": { + "type": "string" + }, "es": { "type": "string" }, @@ -21915,7 +22136,7 @@ }, "throughput": { "type": "integer", - "description": "The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s.\n", + "description": "The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s.\n", "language": { "python": { "mapCase": false @@ -27275,6 +27496,28 @@ "values" ] }, + "aws:ec2/getVpcPeeringConnectionCidrBlockSet:getVpcPeeringConnectionCidrBlockSet": { + "properties": { + "cidrBlock": { + "type": "string", + "description": "The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "cidrBlock" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:ec2/getVpcPeeringConnectionFilter:getVpcPeeringConnectionFilter": { "properties": { "name": { @@ -27305,6 +27548,28 @@ "values" ] }, + "aws:ec2/getVpcPeeringConnectionPeerCidrBlockSet:getVpcPeeringConnectionPeerCidrBlockSet": { + "properties": { + "cidrBlock": { + "type": "string", + "description": "The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "cidrBlock" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:ec2/getVpcPeeringConnectionsFilter:getVpcPeeringConnectionsFilter": { "properties": { "name": { @@ -29400,7 +29665,7 @@ }, "replicasPerNodeGroup": { "type": "integer", - "description": "Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource.\n", + "description": "Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications.\n", "language": { "python": { "mapCase": false @@ -31507,6 +31772,17 @@ } } }, + "forwards": { + "type": "array", + "items": { + "$ref": "#/types/aws:elasticloadbalancingv2/getListenerDefaultActionForward:getListenerDefaultActionForward" + }, + "language": { + "python": { + "mapCase": false + } + } + }, "order": { "type": "integer", "language": { @@ -31548,6 +31824,7 @@ "authenticateCognitos", "authenticateOidcs", "fixedResponses", + "forwards", "order", "redirects", "targetGroupArn", @@ -31799,6 +32076,103 @@ } } }, + "aws:elasticloadbalancingv2/getListenerDefaultActionForward:getListenerDefaultActionForward": { + "properties": { + "stickinesses": { + "type": "array", + "items": { + "$ref": "#/types/aws:elasticloadbalancingv2/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness" + }, + "language": { + "python": { + "mapCase": false + } + } + }, + "targetGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws:elasticloadbalancingv2/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "stickinesses", + "targetGroups" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:elasticloadbalancingv2/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness": { + "properties": { + "duration": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, + "enabled": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "duration", + "enabled" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:elasticloadbalancingv2/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup": { + "properties": { + "arn": { + "type": "string", + "description": "The arn of the listener. Required if `load_balancer_arn` and `port` is not set.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "weight": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "arn", + "weight" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:elasticloadbalancingv2/getListenerDefaultActionRedirect:getListenerDefaultActionRedirect": { "properties": { "host": { @@ -39382,6 +39756,114 @@ }, "type": "object" }, + "aws:imagebuilder/ImageImageTestsConfiguration:ImageImageTestsConfiguration": { + "properties": { + "imageTestsEnabled": { + "type": "boolean", + "description": "Whether image tests are enabled. Defaults to `true`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "timeoutMinutes": { + "type": "integer", + "description": "Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:imagebuilder/ImageOutputResource:ImageOutputResource": { + "properties": { + "amis": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImageOutputResourceAmi:ImageOutputResourceAmi" + }, + "description": "Set of objects with each Amazon Machine Image (AMI) created.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "amis" + ] + } + } + }, + "aws:imagebuilder/ImageOutputResourceAmi:ImageOutputResourceAmi": { + "properties": { + "accountId": { + "type": "string", + "description": "Account identifier of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "description": { + "type": "string", + "description": "Description of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "image": { + "type": "string", + "description": "Identifier of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "name": { + "type": "string", + "description": "Name of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "region": { + "type": "string", + "description": "Region of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "accountId", + "description", + "image", + "name", + "region" + ] + } + } + }, "aws:imagebuilder/ImagePipelineImageTestsConfiguration:ImagePipelineImageTestsConfiguration": { "properties": { "imageTestsEnabled": { @@ -39767,6 +40249,125 @@ } } }, + "aws:imagebuilder/getImageImageTestsConfiguration:getImageImageTestsConfiguration": { + "properties": { + "imageTestsEnabled": { + "type": "boolean", + "description": "Whether image tests are enabled.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "timeoutMinutes": { + "type": "integer", + "description": "Number of minutes before image tests time out.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "imageTestsEnabled", + "timeoutMinutes" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:imagebuilder/getImageOutputResource:getImageOutputResource": { + "properties": { + "amis": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/getImageOutputResourceAmi:getImageOutputResourceAmi" + }, + "description": "Set of objects with each Amazon Machine Image (AMI) created.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "amis" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:imagebuilder/getImageOutputResourceAmi:getImageOutputResourceAmi": { + "properties": { + "accountId": { + "type": "string", + "description": "Account identifier of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "description": { + "type": "string", + "description": "Description of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "image": { + "type": "string", + "description": "Identifier of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "name": { + "type": "string", + "description": "Name of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "region": { + "type": "string", + "description": "Region of the AMI.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "accountId", + "description", + "image", + "name", + "region" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:imagebuilder/getImagePipelineImageTestsConfiguration:getImagePipelineImageTestsConfiguration": { "properties": { "imageTestsEnabled": { @@ -40591,6 +41192,14 @@ } } }, + "emrcontainers": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, "es": { "type": "string", "language": { @@ -50229,6 +50838,17 @@ } } }, + "forwards": { + "type": "array", + "items": { + "$ref": "#/types/aws:lb/getListenerDefaultActionForward:getListenerDefaultActionForward" + }, + "language": { + "python": { + "mapCase": false + } + } + }, "order": { "type": "integer", "language": { @@ -50270,6 +50890,7 @@ "authenticateCognitos", "authenticateOidcs", "fixedResponses", + "forwards", "order", "redirects", "targetGroupArn", @@ -50521,6 +51142,103 @@ } } }, + "aws:lb/getListenerDefaultActionForward:getListenerDefaultActionForward": { + "properties": { + "stickinesses": { + "type": "array", + "items": { + "$ref": "#/types/aws:lb/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness" + }, + "language": { + "python": { + "mapCase": false + } + } + }, + "targetGroups": { + "type": "array", + "items": { + "$ref": "#/types/aws:lb/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "stickinesses", + "targetGroups" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:lb/getListenerDefaultActionForwardStickiness:getListenerDefaultActionForwardStickiness": { + "properties": { + "duration": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + }, + "enabled": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "duration", + "enabled" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "aws:lb/getListenerDefaultActionForwardTargetGroup:getListenerDefaultActionForwardTargetGroup": { + "properties": { + "arn": { + "type": "string", + "description": "The arn of the listener. Required if `load_balancer_arn` and `port` is not set.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "weight": { + "type": "integer", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "arn", + "weight" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:lb/getListenerDefaultActionRedirect:getListenerDefaultActionRedirect": { "properties": { "host": { @@ -58496,10 +59214,95 @@ } } }, + "aws:sagemaker/AppImageConfigKernelGatewayImageConfig:AppImageConfigKernelGatewayImageConfig": { + "properties": { + "fileSystemConfig": { + "$ref": "#/types/aws:sagemaker/AppImageConfigKernelGatewayImageConfigFileSystemConfig:AppImageConfigKernelGatewayImageConfigFileSystemConfig", + "description": "The URL where the Git repository is located. See File System Config details below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "kernelSpec": { + "$ref": "#/types/aws:sagemaker/AppImageConfigKernelGatewayImageConfigKernelSpec:AppImageConfigKernelGatewayImageConfigKernelSpec", + "description": "The default branch for the Git repository. See Kernel Spec details below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "kernelSpec" + ] + }, + "aws:sagemaker/AppImageConfigKernelGatewayImageConfigFileSystemConfig:AppImageConfigKernelGatewayImageConfigFileSystemConfig": { + "properties": { + "defaultGid": { + "type": "integer", + "description": "The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "defaultUid": { + "type": "integer", + "description": "The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "mountPath": { + "type": "string", + "description": "The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:sagemaker/AppImageConfigKernelGatewayImageConfigKernelSpec:AppImageConfigKernelGatewayImageConfigKernelSpec": { + "properties": { + "displayName": { + "type": "string", + "description": "The display name of the kernel.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "name": { + "type": "string", + "description": "The name of the kernel.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "name" + ] + }, "aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig": { "properties": { "branch": { "type": "string", + "description": "The default branch for the Git repository.\n", "language": { "python": { "mapCase": false @@ -58508,6 +59311,7 @@ }, "repositoryUrl": { "type": "string", + "description": "The URL where the Git repository is located.\n", "language": { "python": { "mapCase": false @@ -58516,6 +59320,7 @@ }, "secretArn": { "type": "string", + "description": "The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{\"username\": UserName, \"password\": Password}`\n", "language": { "python": { "mapCase": false @@ -59820,7 +60625,7 @@ }, "valueSource": { "type": "string", - "description": "The source for the value. It can be either `\"messageTag\"` or `\"emailHeader\"`\n", + "description": "The source for the value. May be any of `\"messageTag\"`, `\"emailHeader\"` or `\"linkTag\"`.\n", "language": { "python": { "mapCase": false @@ -61211,7 +62016,7 @@ "items": { "$ref": "#/types/aws:ssm/PatchBaselineApprovalRulePatchFilter:PatchBaselineApprovalRulePatchFilter" }, - "description": "The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`.\n", + "description": "The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values.\n", "language": { "python": { "mapCase": false @@ -140386,6 +141191,51 @@ } ] }, + "aws:amp/workspace:Workspace": { + "description": "\n\n\n## Import\n\nAMP Workspaces can be imported using the identifier, e.g.\n\n```sh\n $ pulumi import aws:amp/workspace:Workspace demo ws-C6DCB907-F2D7-4D96-957B-66691F865D8B\n```\n\n ", + "properties": { + "alias": { + "type": "string", + "description": "The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html).\n" + }, + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the workspace.\n" + }, + "prometheusEndpoint": { + "type": "string", + "description": "Prometheus endpoint available for this workspace.\n" + } + }, + "required": [ + "arn", + "prometheusEndpoint" + ], + "inputProperties": { + "alias": { + "type": "string", + "description": "The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html).\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering Workspace resources.\n", + "properties": { + "alias": { + "type": "string", + "description": "The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html).\n" + }, + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the workspace.\n" + }, + "prometheusEndpoint": { + "type": "string", + "description": "Prometheus endpoint available for this workspace.\n" + } + }, + "type": "object" + } + }, "aws:apigateway/account:Account": { "description": "Provides a settings of an API Gateway Account. Settings is applied region-wide per `provider` block.\n\n\u003e **Note:** As there is no API method for deleting account settings or resetting it to defaults, destroying this resource will keep your account settings intact\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst cloudwatchRole = new aws.iam.Role(\"cloudwatchRole\", {assumeRolePolicy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"apigateway.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}\n`});\nconst demo = new aws.apigateway.Account(\"demo\", {cloudwatchRoleArn: cloudwatchRole.arn});\nconst cloudwatchRolePolicy = new aws.iam.RolePolicy(\"cloudwatchRolePolicy\", {\n role: cloudwatchRole.id,\n policy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:DescribeLogGroups\",\n \"logs:DescribeLogStreams\",\n \"logs:PutLogEvents\",\n \"logs:GetLogEvents\",\n \"logs:FilterLogEvents\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncloudwatch_role = aws.iam.Role(\"cloudwatchRole\", assume_role_policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Sid\": \"\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"apigateway.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}\n\"\"\")\ndemo = aws.apigateway.Account(\"demo\", cloudwatch_role_arn=cloudwatch_role.arn)\ncloudwatch_role_policy = aws.iam.RolePolicy(\"cloudwatchRolePolicy\",\n role=cloudwatch_role.id,\n policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:DescribeLogGroups\",\n \"logs:DescribeLogStreams\",\n \"logs:PutLogEvents\",\n \"logs:GetLogEvents\",\n \"logs:FilterLogEvents\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}\n\"\"\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var cloudwatchRole = new Aws.Iam.Role(\"cloudwatchRole\", new Aws.Iam.RoleArgs\n {\n AssumeRolePolicy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {\n \"\"Sid\"\": \"\"\"\",\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Principal\"\": {\n \"\"Service\"\": \"\"apigateway.amazonaws.com\"\"\n },\n \"\"Action\"\": \"\"sts:AssumeRole\"\"\n }\n ]\n}\n\",\n });\n var demo = new Aws.ApiGateway.Account(\"demo\", new Aws.ApiGateway.AccountArgs\n {\n CloudwatchRoleArn = cloudwatchRole.Arn,\n });\n var cloudwatchRolePolicy = new Aws.Iam.RolePolicy(\"cloudwatchRolePolicy\", new Aws.Iam.RolePolicyArgs\n {\n Role = cloudwatchRole.Id,\n Policy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"logs:CreateLogGroup\"\",\n \"\"logs:CreateLogStream\"\",\n \"\"logs:DescribeLogGroups\"\",\n \"\"logs:DescribeLogStreams\"\",\n \"\"logs:PutLogEvents\"\",\n \"\"logs:GetLogEvents\"\",\n \"\"logs:FilterLogEvents\"\"\n ],\n \"\"Resource\"\": \"\"*\"\"\n }\n ]\n}\n\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcloudwatchRole, err := iam.NewRole(ctx, \"cloudwatchRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \" \\\"Version\\\": \\\"2012-10-17\\\",\\n\", \" \\\"Statement\\\": [\\n\", \" {\\n\", \" \\\"Sid\\\": \\\"\\\",\\n\", \" \\\"Effect\\\": \\\"Allow\\\",\\n\", \" \\\"Principal\\\": {\\n\", \" \\\"Service\\\": \\\"apigateway.amazonaws.com\\\"\\n\", \" },\\n\", \" \\\"Action\\\": \\\"sts:AssumeRole\\\"\\n\", \" }\\n\", \" ]\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewAccount(ctx, \"demo\", \u0026apigateway.AccountArgs{\n\t\t\tCloudwatchRoleArn: cloudwatchRole.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"cloudwatchRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: cloudwatchRole.ID(),\n\t\t\tPolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \" \\\"Version\\\": \\\"2012-10-17\\\",\\n\", \" \\\"Statement\\\": [\\n\", \" {\\n\", \" \\\"Effect\\\": \\\"Allow\\\",\\n\", \" \\\"Action\\\": [\\n\", \" \\\"logs:CreateLogGroup\\\",\\n\", \" \\\"logs:CreateLogStream\\\",\\n\", \" \\\"logs:DescribeLogGroups\\\",\\n\", \" \\\"logs:DescribeLogStreams\\\",\\n\", \" \\\"logs:PutLogEvents\\\",\\n\", \" \\\"logs:GetLogEvents\\\",\\n\", \" \\\"logs:FilterLogEvents\\\"\\n\", \" ],\\n\", \" \\\"Resource\\\": \\\"*\\\"\\n\", \" }\\n\", \" ]\\n\", \"}\\n\")),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAPI Gateway Accounts can be imported using the word `api-gateway-account`, e.g.\n\n```sh\n $ pulumi import aws:apigateway/account:Account demo api-gateway-account\n```\n\n ", "properties": { @@ -143408,7 +144258,7 @@ "properties": { "apiEndpoint": { "type": "string", - "description": "The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`.\n" + "description": "The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs.\n" }, "apiKeySelectionExpression": { "type": "string", @@ -143546,7 +144396,7 @@ "properties": { "apiEndpoint": { "type": "string", - "description": "The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`.\n" + "description": "The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs.\n" }, "apiKeySelectionExpression": { "type": "string", @@ -145058,7 +145908,7 @@ } }, "aws:appautoscaling/policy:Policy": { - "description": "Provides an Application AutoScaling Policy resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Table Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbTableReadTarget = new aws.appautoscaling.Target(\"dynamodbTableReadTarget\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: \"table/tableName\",\n scalableDimension: \"dynamodb:table:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\nconst dynamodbTableReadPolicy = new aws.appautoscaling.Policy(\"dynamodbTableReadPolicy\", {\n policyType: \"TargetTrackingScaling\",\n resourceId: dynamodbTableReadTarget.resourceId,\n scalableDimension: dynamodbTableReadTarget.scalableDimension,\n serviceNamespace: dynamodbTableReadTarget.serviceNamespace,\n targetTrackingScalingPolicyConfiguration: {\n predefinedMetricSpecification: {\n predefinedMetricType: \"DynamoDBReadCapacityUtilization\",\n },\n targetValue: 70,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_table_read_target = aws.appautoscaling.Target(\"dynamodbTableReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=\"table/tableName\",\n scalable_dimension=\"dynamodb:table:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\ndynamodb_table_read_policy = aws.appautoscaling.Policy(\"dynamodbTableReadPolicy\",\n policy_type=\"TargetTrackingScaling\",\n resource_id=dynamodb_table_read_target.resource_id,\n scalable_dimension=dynamodb_table_read_target.scalable_dimension,\n service_namespace=dynamodb_table_read_target.service_namespace,\n target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs(\n predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs(\n predefined_metric_type=\"DynamoDBReadCapacityUtilization\",\n ),\n target_value=70,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbTableReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbTableReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = \"table/tableName\",\n ScalableDimension = \"dynamodb:table:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n var dynamodbTableReadPolicy = new Aws.AppAutoScaling.Policy(\"dynamodbTableReadPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n PolicyType = \"TargetTrackingScaling\",\n ResourceId = dynamodbTableReadTarget.ResourceId,\n ScalableDimension = dynamodbTableReadTarget.ScalableDimension,\n ServiceNamespace = dynamodbTableReadTarget.ServiceNamespace,\n TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs\n {\n PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs\n {\n PredefinedMetricType = \"DynamoDBReadCapacityUtilization\",\n },\n TargetValue = 70,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdynamodbTableReadTarget, err := appautoscaling.NewTarget(ctx, \"dynamodbTableReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(\"table/tableName\"),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:table:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"dynamodbTableReadPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tPolicyType: pulumi.String(\"TargetTrackingScaling\"),\n\t\t\tResourceId: dynamodbTableReadTarget.ResourceId,\n\t\t\tScalableDimension: dynamodbTableReadTarget.ScalableDimension,\n\t\t\tServiceNamespace: dynamodbTableReadTarget.ServiceNamespace,\n\t\t\tTargetTrackingScalingPolicyConfiguration: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{\n\t\t\t\tPredefinedMetricSpecification: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{\n\t\t\t\t\tPredefinedMetricType: pulumi.String(\"DynamoDBReadCapacityUtilization\"),\n\t\t\t\t},\n\t\t\t\tTargetValue: pulumi.Float64(70),\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{{% /example %}}\n{{% example %}}\n### ECS Service Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsTarget = new aws.appautoscaling.Target(\"ecsTarget\", {\n maxCapacity: 4,\n minCapacity: 1,\n resourceId: \"service/clusterName/serviceName\",\n scalableDimension: \"ecs:service:DesiredCount\",\n serviceNamespace: \"ecs\",\n});\nconst ecsPolicy = new aws.appautoscaling.Policy(\"ecsPolicy\", {\n policyType: \"StepScaling\",\n resourceId: ecsTarget.resourceId,\n scalableDimension: ecsTarget.scalableDimension,\n serviceNamespace: ecsTarget.serviceNamespace,\n stepScalingPolicyConfiguration: {\n adjustmentType: \"ChangeInCapacity\",\n cooldown: 60,\n metricAggregationType: \"Maximum\",\n stepAdjustments: [{\n metricIntervalUpperBound: 0,\n scalingAdjustment: -1,\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_target = aws.appautoscaling.Target(\"ecsTarget\",\n max_capacity=4,\n min_capacity=1,\n resource_id=\"service/clusterName/serviceName\",\n scalable_dimension=\"ecs:service:DesiredCount\",\n service_namespace=\"ecs\")\necs_policy = aws.appautoscaling.Policy(\"ecsPolicy\",\n policy_type=\"StepScaling\",\n resource_id=ecs_target.resource_id,\n scalable_dimension=ecs_target.scalable_dimension,\n service_namespace=ecs_target.service_namespace,\n step_scaling_policy_configuration=aws.appautoscaling.PolicyStepScalingPolicyConfigurationArgs(\n adjustment_type=\"ChangeInCapacity\",\n cooldown=60,\n metric_aggregation_type=\"Maximum\",\n step_adjustments=[{\n \"metricIntervalUpperBound\": 0,\n \"scaling_adjustment\": -1,\n }],\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsTarget = new Aws.AppAutoScaling.Target(\"ecsTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 4,\n MinCapacity = 1,\n ResourceId = \"service/clusterName/serviceName\",\n ScalableDimension = \"ecs:service:DesiredCount\",\n ServiceNamespace = \"ecs\",\n });\n var ecsPolicy = new Aws.AppAutoScaling.Policy(\"ecsPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n PolicyType = \"StepScaling\",\n ResourceId = ecsTarget.ResourceId,\n ScalableDimension = ecsTarget.ScalableDimension,\n ServiceNamespace = ecsTarget.ServiceNamespace,\n StepScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyStepScalingPolicyConfigurationArgs\n {\n AdjustmentType = \"ChangeInCapacity\",\n Cooldown = 60,\n MetricAggregationType = \"Maximum\",\n StepAdjustments = \n {\n new Aws.AppAutoScaling.Inputs.PolicyStepScalingPolicyConfigurationStepAdjustmentArgs\n {\n MetricIntervalUpperBound = \"0\",\n ScalingAdjustment = -1,\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTarget, err := appautoscaling.NewTarget(ctx, \"ecsTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(4),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(\"service/clusterName/serviceName\"),\n\t\t\tScalableDimension: pulumi.String(\"ecs:service:DesiredCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"ecs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"ecsPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tPolicyType: pulumi.String(\"StepScaling\"),\n\t\t\tResourceId: ecsTarget.ResourceId,\n\t\t\tScalableDimension: ecsTarget.ScalableDimension,\n\t\t\tServiceNamespace: ecsTarget.ServiceNamespace,\n\t\t\tStepScalingPolicyConfiguration: \u0026appautoscaling.PolicyStepScalingPolicyConfigurationArgs{\n\t\t\t\tAdjustmentType: pulumi.String(\"ChangeInCapacity\"),\n\t\t\t\tCooldown: pulumi.Int(60),\n\t\t\t\tMetricAggregationType: pulumi.String(\"Maximum\"),\n\t\t\t\tStepAdjustments: appautoscaling.PolicyStepScalingPolicyConfigurationStepAdjustmentArray{\n\t\t\t\t\t\u0026appautoscaling.PolicyStepScalingPolicyConfigurationStepAdjustmentArgs{\n\t\t\t\t\t\tMetricIntervalUpperBound: pulumi.String(\"0\"),\n\t\t\t\t\t\tScalingAdjustment: pulumi.Int(-1),\n\t\t\t\t\t},\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{{% /example %}}\n{{% example %}}\n### Preserve desired count when updating an autoscaled ECS Service\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsService = new aws.ecs.Service(\"ecsService\", {\n cluster: \"clusterName\",\n taskDefinition: \"taskDefinitionFamily:1\",\n desiredCount: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_service = aws.ecs.Service(\"ecsService\",\n cluster=\"clusterName\",\n task_definition=\"taskDefinitionFamily:1\",\n desired_count=2)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsService = new Aws.Ecs.Service(\"ecsService\", new Aws.Ecs.ServiceArgs\n {\n Cluster = \"clusterName\",\n TaskDefinition = \"taskDefinitionFamily:1\",\n DesiredCount = 2,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewService(ctx, \"ecsService\", \u0026ecs.ServiceArgs{\n\t\t\tCluster: pulumi.String(\"clusterName\"),\n\t\t\tTaskDefinition: pulumi.String(\"taskDefinitionFamily:1\"),\n\t\t\tDesiredCount: pulumi.Int(2),\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{{% /example %}}\n{{% example %}}\n### Aurora Read Replica Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst replicasTarget = new aws.appautoscaling.Target(\"replicasTarget\", {\n serviceNamespace: \"rds\",\n scalableDimension: \"rds:cluster:ReadReplicaCount\",\n resourceId: `cluster:${aws_rds_cluster.example.id}`,\n minCapacity: 1,\n maxCapacity: 15,\n});\nconst replicasPolicy = new aws.appautoscaling.Policy(\"replicasPolicy\", {\n serviceNamespace: replicasTarget.serviceNamespace,\n scalableDimension: replicasTarget.scalableDimension,\n resourceId: replicasTarget.resourceId,\n policyType: \"TargetTrackingScaling\",\n targetTrackingScalingPolicyConfiguration: {\n predefinedMetricSpecification: {\n predefinedMetricType: \"RDSReaderAverageCPUUtilization\",\n },\n targetValue: 75,\n scaleInCooldown: 300,\n scaleOutCooldown: 300,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nreplicas_target = aws.appautoscaling.Target(\"replicasTarget\",\n service_namespace=\"rds\",\n scalable_dimension=\"rds:cluster:ReadReplicaCount\",\n resource_id=f\"cluster:{aws_rds_cluster['example']['id']}\",\n min_capacity=1,\n max_capacity=15)\nreplicas_policy = aws.appautoscaling.Policy(\"replicasPolicy\",\n service_namespace=replicas_target.service_namespace,\n scalable_dimension=replicas_target.scalable_dimension,\n resource_id=replicas_target.resource_id,\n policy_type=\"TargetTrackingScaling\",\n target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs(\n predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs(\n predefined_metric_type=\"RDSReaderAverageCPUUtilization\",\n ),\n target_value=75,\n scale_in_cooldown=300,\n scale_out_cooldown=300,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var replicasTarget = new Aws.AppAutoScaling.Target(\"replicasTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n ServiceNamespace = \"rds\",\n ScalableDimension = \"rds:cluster:ReadReplicaCount\",\n ResourceId = $\"cluster:{aws_rds_cluster.Example.Id}\",\n MinCapacity = 1,\n MaxCapacity = 15,\n });\n var replicasPolicy = new Aws.AppAutoScaling.Policy(\"replicasPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n ServiceNamespace = replicasTarget.ServiceNamespace,\n ScalableDimension = replicasTarget.ScalableDimension,\n ResourceId = replicasTarget.ResourceId,\n PolicyType = \"TargetTrackingScaling\",\n TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs\n {\n PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs\n {\n PredefinedMetricType = \"RDSReaderAverageCPUUtilization\",\n },\n TargetValue = 75,\n ScaleInCooldown = 300,\n ScaleOutCooldown = 300,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treplicasTarget, err := appautoscaling.NewTarget(ctx, \"replicasTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tServiceNamespace: pulumi.String(\"rds\"),\n\t\t\tScalableDimension: pulumi.String(\"rds:cluster:ReadReplicaCount\"),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"cluster:\", aws_rds_cluster.Example.Id)),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tMaxCapacity: pulumi.Int(15),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"replicasPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tServiceNamespace: replicasTarget.ServiceNamespace,\n\t\t\tScalableDimension: replicasTarget.ScalableDimension,\n\t\t\tResourceId: replicasTarget.ResourceId,\n\t\t\tPolicyType: pulumi.String(\"TargetTrackingScaling\"),\n\t\t\tTargetTrackingScalingPolicyConfiguration: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{\n\t\t\t\tPredefinedMetricSpecification: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{\n\t\t\t\t\tPredefinedMetricType: pulumi.String(\"RDSReaderAverageCPUUtilization\"),\n\t\t\t\t},\n\t\t\t\tTargetValue: pulumi.Float64(75),\n\t\t\t\tScaleInCooldown: pulumi.Int(300),\n\t\t\t\tScaleOutCooldown: pulumi.Int(300),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication AutoScaling Policy can be imported using the `service-namespace` , `resource-id`, `scalable-dimension` and `policy-name` separated by `/`.\n\n```sh\n $ pulumi import aws:appautoscaling/policy:Policy test-policy service-namespace/resource-id/scalable-dimension/policy-name\n```\n\n ", + "description": "Provides an Application AutoScaling Policy resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Table Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbTableReadTarget = new aws.appautoscaling.Target(\"dynamodbTableReadTarget\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: \"table/tableName\",\n scalableDimension: \"dynamodb:table:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\nconst dynamodbTableReadPolicy = new aws.appautoscaling.Policy(\"dynamodbTableReadPolicy\", {\n policyType: \"TargetTrackingScaling\",\n resourceId: dynamodbTableReadTarget.resourceId,\n scalableDimension: dynamodbTableReadTarget.scalableDimension,\n serviceNamespace: dynamodbTableReadTarget.serviceNamespace,\n targetTrackingScalingPolicyConfiguration: {\n predefinedMetricSpecification: {\n predefinedMetricType: \"DynamoDBReadCapacityUtilization\",\n },\n targetValue: 70,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_table_read_target = aws.appautoscaling.Target(\"dynamodbTableReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=\"table/tableName\",\n scalable_dimension=\"dynamodb:table:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\ndynamodb_table_read_policy = aws.appautoscaling.Policy(\"dynamodbTableReadPolicy\",\n policy_type=\"TargetTrackingScaling\",\n resource_id=dynamodb_table_read_target.resource_id,\n scalable_dimension=dynamodb_table_read_target.scalable_dimension,\n service_namespace=dynamodb_table_read_target.service_namespace,\n target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs(\n predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs(\n predefined_metric_type=\"DynamoDBReadCapacityUtilization\",\n ),\n target_value=70,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbTableReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbTableReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = \"table/tableName\",\n ScalableDimension = \"dynamodb:table:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n var dynamodbTableReadPolicy = new Aws.AppAutoScaling.Policy(\"dynamodbTableReadPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n PolicyType = \"TargetTrackingScaling\",\n ResourceId = dynamodbTableReadTarget.ResourceId,\n ScalableDimension = dynamodbTableReadTarget.ScalableDimension,\n ServiceNamespace = dynamodbTableReadTarget.ServiceNamespace,\n TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs\n {\n PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs\n {\n PredefinedMetricType = \"DynamoDBReadCapacityUtilization\",\n },\n TargetValue = 70,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdynamodbTableReadTarget, err := appautoscaling.NewTarget(ctx, \"dynamodbTableReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(\"table/tableName\"),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:table:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"dynamodbTableReadPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tPolicyType: pulumi.String(\"TargetTrackingScaling\"),\n\t\t\tResourceId: dynamodbTableReadTarget.ResourceId,\n\t\t\tScalableDimension: dynamodbTableReadTarget.ScalableDimension,\n\t\t\tServiceNamespace: dynamodbTableReadTarget.ServiceNamespace,\n\t\t\tTargetTrackingScalingPolicyConfiguration: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{\n\t\t\t\tPredefinedMetricSpecification: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{\n\t\t\t\t\tPredefinedMetricType: pulumi.String(\"DynamoDBReadCapacityUtilization\"),\n\t\t\t\t},\n\t\t\t\tTargetValue: pulumi.Float64(70),\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{{% /example %}}\n{{% example %}}\n### ECS Service Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsTarget = new aws.appautoscaling.Target(\"ecsTarget\", {\n maxCapacity: 4,\n minCapacity: 1,\n resourceId: \"service/clusterName/serviceName\",\n scalableDimension: \"ecs:service:DesiredCount\",\n serviceNamespace: \"ecs\",\n});\nconst ecsPolicy = new aws.appautoscaling.Policy(\"ecsPolicy\", {\n policyType: \"StepScaling\",\n resourceId: ecsTarget.resourceId,\n scalableDimension: ecsTarget.scalableDimension,\n serviceNamespace: ecsTarget.serviceNamespace,\n stepScalingPolicyConfiguration: {\n adjustmentType: \"ChangeInCapacity\",\n cooldown: 60,\n metricAggregationType: \"Maximum\",\n stepAdjustments: [{\n metricIntervalUpperBound: 0,\n scalingAdjustment: -1,\n }],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_target = aws.appautoscaling.Target(\"ecsTarget\",\n max_capacity=4,\n min_capacity=1,\n resource_id=\"service/clusterName/serviceName\",\n scalable_dimension=\"ecs:service:DesiredCount\",\n service_namespace=\"ecs\")\necs_policy = aws.appautoscaling.Policy(\"ecsPolicy\",\n policy_type=\"StepScaling\",\n resource_id=ecs_target.resource_id,\n scalable_dimension=ecs_target.scalable_dimension,\n service_namespace=ecs_target.service_namespace,\n step_scaling_policy_configuration=aws.appautoscaling.PolicyStepScalingPolicyConfigurationArgs(\n adjustment_type=\"ChangeInCapacity\",\n cooldown=60,\n metric_aggregation_type=\"Maximum\",\n step_adjustments=[{\n \"metricIntervalUpperBound\": 0,\n \"scaling_adjustment\": -1,\n }],\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsTarget = new Aws.AppAutoScaling.Target(\"ecsTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 4,\n MinCapacity = 1,\n ResourceId = \"service/clusterName/serviceName\",\n ScalableDimension = \"ecs:service:DesiredCount\",\n ServiceNamespace = \"ecs\",\n });\n var ecsPolicy = new Aws.AppAutoScaling.Policy(\"ecsPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n PolicyType = \"StepScaling\",\n ResourceId = ecsTarget.ResourceId,\n ScalableDimension = ecsTarget.ScalableDimension,\n ServiceNamespace = ecsTarget.ServiceNamespace,\n StepScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyStepScalingPolicyConfigurationArgs\n {\n AdjustmentType = \"ChangeInCapacity\",\n Cooldown = 60,\n MetricAggregationType = \"Maximum\",\n StepAdjustments = \n {\n new Aws.AppAutoScaling.Inputs.PolicyStepScalingPolicyConfigurationStepAdjustmentArgs\n {\n MetricIntervalUpperBound = \"0\",\n ScalingAdjustment = -1,\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tecsTarget, err := appautoscaling.NewTarget(ctx, \"ecsTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(4),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(\"service/clusterName/serviceName\"),\n\t\t\tScalableDimension: pulumi.String(\"ecs:service:DesiredCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"ecs\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"ecsPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tPolicyType: pulumi.String(\"StepScaling\"),\n\t\t\tResourceId: ecsTarget.ResourceId,\n\t\t\tScalableDimension: ecsTarget.ScalableDimension,\n\t\t\tServiceNamespace: ecsTarget.ServiceNamespace,\n\t\t\tStepScalingPolicyConfiguration: \u0026appautoscaling.PolicyStepScalingPolicyConfigurationArgs{\n\t\t\t\tAdjustmentType: pulumi.String(\"ChangeInCapacity\"),\n\t\t\t\tCooldown: pulumi.Int(60),\n\t\t\t\tMetricAggregationType: pulumi.String(\"Maximum\"),\n\t\t\t\tStepAdjustments: appautoscaling.PolicyStepScalingPolicyConfigurationStepAdjustmentArray{\n\t\t\t\t\t\u0026appautoscaling.PolicyStepScalingPolicyConfigurationStepAdjustmentArgs{\n\t\t\t\t\t\tMetricIntervalUpperBound: pulumi.String(\"0\"),\n\t\t\t\t\t\tScalingAdjustment: pulumi.Int(-1),\n\t\t\t\t\t},\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{{% /example %}}\n{{% example %}}\n### Preserve desired count when updating an autoscaled ECS Service\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsService = new aws.ecs.Service(\"ecsService\", {\n cluster: \"clusterName\",\n taskDefinition: \"taskDefinitionFamily:1\",\n desiredCount: 2,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_service = aws.ecs.Service(\"ecsService\",\n cluster=\"clusterName\",\n task_definition=\"taskDefinitionFamily:1\",\n desired_count=2)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsService = new Aws.Ecs.Service(\"ecsService\", new Aws.Ecs.ServiceArgs\n {\n Cluster = \"clusterName\",\n TaskDefinition = \"taskDefinitionFamily:1\",\n DesiredCount = 2,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ecs.NewService(ctx, \"ecsService\", \u0026ecs.ServiceArgs{\n\t\t\tCluster: pulumi.String(\"clusterName\"),\n\t\t\tTaskDefinition: pulumi.String(\"taskDefinitionFamily:1\"),\n\t\t\tDesiredCount: pulumi.Int(2),\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{{% /example %}}\n{{% example %}}\n### Aurora Read Replica Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst replicasTarget = new aws.appautoscaling.Target(\"replicasTarget\", {\n serviceNamespace: \"rds\",\n scalableDimension: \"rds:cluster:ReadReplicaCount\",\n resourceId: `cluster:${aws_rds_cluster.example.id}`,\n minCapacity: 1,\n maxCapacity: 15,\n});\nconst replicasPolicy = new aws.appautoscaling.Policy(\"replicasPolicy\", {\n serviceNamespace: replicasTarget.serviceNamespace,\n scalableDimension: replicasTarget.scalableDimension,\n resourceId: replicasTarget.resourceId,\n policyType: \"TargetTrackingScaling\",\n targetTrackingScalingPolicyConfiguration: {\n predefinedMetricSpecification: {\n predefinedMetricType: \"RDSReaderAverageCPUUtilization\",\n },\n targetValue: 75,\n scaleInCooldown: 300,\n scaleOutCooldown: 300,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nreplicas_target = aws.appautoscaling.Target(\"replicasTarget\",\n service_namespace=\"rds\",\n scalable_dimension=\"rds:cluster:ReadReplicaCount\",\n resource_id=f\"cluster:{aws_rds_cluster['example']['id']}\",\n min_capacity=1,\n max_capacity=15)\nreplicas_policy = aws.appautoscaling.Policy(\"replicasPolicy\",\n service_namespace=replicas_target.service_namespace,\n scalable_dimension=replicas_target.scalable_dimension,\n resource_id=replicas_target.resource_id,\n policy_type=\"TargetTrackingScaling\",\n target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs(\n predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs(\n predefined_metric_type=\"RDSReaderAverageCPUUtilization\",\n ),\n target_value=75,\n scale_in_cooldown=300,\n scale_out_cooldown=300,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var replicasTarget = new Aws.AppAutoScaling.Target(\"replicasTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n ServiceNamespace = \"rds\",\n ScalableDimension = \"rds:cluster:ReadReplicaCount\",\n ResourceId = $\"cluster:{aws_rds_cluster.Example.Id}\",\n MinCapacity = 1,\n MaxCapacity = 15,\n });\n var replicasPolicy = new Aws.AppAutoScaling.Policy(\"replicasPolicy\", new Aws.AppAutoScaling.PolicyArgs\n {\n ServiceNamespace = replicasTarget.ServiceNamespace,\n ScalableDimension = replicasTarget.ScalableDimension,\n ResourceId = replicasTarget.ResourceId,\n PolicyType = \"TargetTrackingScaling\",\n TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs\n {\n PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs\n {\n PredefinedMetricType = \"RDSReaderAverageCPUUtilization\",\n },\n TargetValue = 75,\n ScaleInCooldown = 300,\n ScaleOutCooldown = 300,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treplicasTarget, err := appautoscaling.NewTarget(ctx, \"replicasTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tServiceNamespace: pulumi.String(\"rds\"),\n\t\t\tScalableDimension: pulumi.String(\"rds:cluster:ReadReplicaCount\"),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"cluster:\", aws_rds_cluster.Example.Id)),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tMaxCapacity: pulumi.Int(15),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"replicasPolicy\", \u0026appautoscaling.PolicyArgs{\n\t\t\tServiceNamespace: replicasTarget.ServiceNamespace,\n\t\t\tScalableDimension: replicasTarget.ScalableDimension,\n\t\t\tResourceId: replicasTarget.ResourceId,\n\t\t\tPolicyType: pulumi.String(\"TargetTrackingScaling\"),\n\t\t\tTargetTrackingScalingPolicyConfiguration: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{\n\t\t\t\tPredefinedMetricSpecification: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{\n\t\t\t\t\tPredefinedMetricType: pulumi.String(\"RDSReaderAverageCPUUtilization\"),\n\t\t\t\t},\n\t\t\t\tTargetValue: pulumi.Float64(75),\n\t\t\t\tScaleInCooldown: pulumi.Int(300),\n\t\t\t\tScaleOutCooldown: pulumi.Int(300),\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{{% /example %}}\n{{% example %}}\n### MSK / Kafka Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst mskTarget = new aws.appautoscaling.Target(\"mskTarget\", {\n serviceNamespace: \"kafka\",\n scalableDimension: \"kafka:broker-storage:VolumeSize\",\n resourceId: aws_msk_cluster.example.arn,\n minCapacity: 1,\n maxCapacity: 8,\n});\nconst targets = new aws.appautoscaling.Policy(\"targets\", {\n serviceNamespace: mskTarget.serviceNamespace,\n scalableDimension: mskTarget.scalableDimension,\n resourceId: mskTarget.resourceId,\n policyType: \"TargetTrackingScaling\",\n targetTrackingScalingPolicyConfiguration: {\n predefinedMetricSpecification: {\n predefinedMetricType: \"KafkaBrokerStorageUtilization\",\n },\n targetValue: 55,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmsk_target = aws.appautoscaling.Target(\"mskTarget\",\n service_namespace=\"kafka\",\n scalable_dimension=\"kafka:broker-storage:VolumeSize\",\n resource_id=aws_msk_cluster[\"example\"][\"arn\"],\n min_capacity=1,\n max_capacity=8)\ntargets = aws.appautoscaling.Policy(\"targets\",\n service_namespace=msk_target.service_namespace,\n scalable_dimension=msk_target.scalable_dimension,\n resource_id=msk_target.resource_id,\n policy_type=\"TargetTrackingScaling\",\n target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs(\n predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs(\n predefined_metric_type=\"KafkaBrokerStorageUtilization\",\n ),\n target_value=55,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var mskTarget = new Aws.AppAutoScaling.Target(\"mskTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n ServiceNamespace = \"kafka\",\n ScalableDimension = \"kafka:broker-storage:VolumeSize\",\n ResourceId = aws_msk_cluster.Example.Arn,\n MinCapacity = 1,\n MaxCapacity = 8,\n });\n var targets = new Aws.AppAutoScaling.Policy(\"targets\", new Aws.AppAutoScaling.PolicyArgs\n {\n ServiceNamespace = mskTarget.ServiceNamespace,\n ScalableDimension = mskTarget.ScalableDimension,\n ResourceId = mskTarget.ResourceId,\n PolicyType = \"TargetTrackingScaling\",\n TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs\n {\n PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs\n {\n PredefinedMetricType = \"KafkaBrokerStorageUtilization\",\n },\n TargetValue = 55,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmskTarget, err := appautoscaling.NewTarget(ctx, \"mskTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tServiceNamespace: pulumi.String(\"kafka\"),\n\t\t\tScalableDimension: pulumi.String(\"kafka:broker-storage:VolumeSize\"),\n\t\t\tResourceId: pulumi.Any(aws_msk_cluster.Example.Arn),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tMaxCapacity: pulumi.Int(8),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appautoscaling.NewPolicy(ctx, \"targets\", \u0026appautoscaling.PolicyArgs{\n\t\t\tServiceNamespace: mskTarget.ServiceNamespace,\n\t\t\tScalableDimension: mskTarget.ScalableDimension,\n\t\t\tResourceId: mskTarget.ResourceId,\n\t\t\tPolicyType: pulumi.String(\"TargetTrackingScaling\"),\n\t\t\tTargetTrackingScalingPolicyConfiguration: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{\n\t\t\t\tPredefinedMetricSpecification: \u0026appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{\n\t\t\t\t\tPredefinedMetricType: pulumi.String(\"KafkaBrokerStorageUtilization\"),\n\t\t\t\t},\n\t\t\t\tTargetValue: pulumi.Float64(55),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication AutoScaling Policy can be imported using the `service-namespace` , `resource-id`, `scalable-dimension` and `policy-name` separated by `/`.\n\n```sh\n $ pulumi import aws:appautoscaling/policy:Policy test-policy service-namespace/resource-id/scalable-dimension/policy-name\n```\n\n ", "properties": { "arn": { "type": "string", @@ -145302,7 +146152,7 @@ } }, "aws:appautoscaling/target:Target": { - "description": "Provides an Application AutoScaling ScalableTarget resource. To manage policies which get attached to the target, see the `aws.appautoscaling.Policy` resource.\n\n\u003e **NOTE:** The [Application Auto Scaling service automatically attempts to manage IAM Service-Linked Roles](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles) when registering certain service namespaces for the first time. To manually manage this role, see the `aws.iam.ServiceLinkedRole` resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Table Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbTableReadTarget = new aws.appautoscaling.Target(\"dynamodb_table_read_target\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}`,\n scalableDimension: \"dynamodb:table:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_table_read_target = aws.appautoscaling.Target(\"dynamodbTableReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=f\"table/{aws_dynamodb_table['example']['name']}\",\n scalable_dimension=\"dynamodb:table:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbTableReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbTableReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = $\"table/{aws_dynamodb_table.Example.Name}\",\n ScalableDimension = \"dynamodb:table:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"dynamodbTableReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"table/\", aws_dynamodb_table.Example.Name)),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:table:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\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{{% /example %}}\n{{% example %}}\n### DynamoDB Index Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbIndexReadTarget = new aws.appautoscaling.Target(\"dynamodb_index_read_target\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}/index/${var_index_name}`,\n scalableDimension: \"dynamodb:index:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_index_read_target = aws.appautoscaling.Target(\"dynamodbIndexReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=f\"table/{aws_dynamodb_table['example']['name']}/index/{var['index_name']}\",\n scalable_dimension=\"dynamodb:index:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbIndexReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbIndexReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = $\"table/{aws_dynamodb_table.Example.Name}/index/{@var.Index_name}\",\n ScalableDimension = \"dynamodb:index:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"dynamodbIndexReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"table/\", aws_dynamodb_table.Example.Name, \"/index/\", _var.Index_name)),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:index:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\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{{% /example %}}\n{{% example %}}\n### ECS Service Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsTarget = new aws.appautoscaling.Target(\"ecs_target\", {\n maxCapacity: 4,\n minCapacity: 1,\n resourceId: pulumi.interpolate`service/${aws_ecs_cluster_example.name}/${aws_ecs_service_example.name}`,\n scalableDimension: \"ecs:service:DesiredCount\",\n serviceNamespace: \"ecs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_target = aws.appautoscaling.Target(\"ecsTarget\",\n max_capacity=4,\n min_capacity=1,\n resource_id=f\"service/{aws_ecs_cluster['example']['name']}/{aws_ecs_service['example']['name']}\",\n scalable_dimension=\"ecs:service:DesiredCount\",\n service_namespace=\"ecs\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsTarget = new Aws.AppAutoScaling.Target(\"ecsTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 4,\n MinCapacity = 1,\n ResourceId = $\"service/{aws_ecs_cluster.Example.Name}/{aws_ecs_service.Example.Name}\",\n ScalableDimension = \"ecs:service:DesiredCount\",\n ServiceNamespace = \"ecs\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"ecsTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(4),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"service/\", aws_ecs_cluster.Example.Name, \"/\", aws_ecs_service.Example.Name)),\n\t\t\tScalableDimension: pulumi.String(\"ecs:service:DesiredCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"ecs\"),\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{{% /example %}}\n{{% example %}}\n### Aurora Read Replica Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst replicas = new aws.appautoscaling.Target(\"replicas\", {\n maxCapacity: 15,\n minCapacity: 1,\n resourceId: pulumi.interpolate`cluster:${aws_rds_cluster_example.id}`,\n scalableDimension: \"rds:cluster:ReadReplicaCount\",\n serviceNamespace: \"rds\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nreplicas = aws.appautoscaling.Target(\"replicas\",\n max_capacity=15,\n min_capacity=1,\n resource_id=f\"cluster:{aws_rds_cluster['example']['id']}\",\n scalable_dimension=\"rds:cluster:ReadReplicaCount\",\n service_namespace=\"rds\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var replicas = new Aws.AppAutoScaling.Target(\"replicas\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 15,\n MinCapacity = 1,\n ResourceId = $\"cluster:{aws_rds_cluster.Example.Id}\",\n ScalableDimension = \"rds:cluster:ReadReplicaCount\",\n ServiceNamespace = \"rds\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"replicas\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(15),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"cluster:\", aws_rds_cluster.Example.Id)),\n\t\t\tScalableDimension: pulumi.String(\"rds:cluster:ReadReplicaCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"rds\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication AutoScaling Target can be imported using the `service-namespace` , `resource-id` and `scalable-dimension` separated by `/`.\n\n```sh\n $ pulumi import aws:appautoscaling/target:Target test-target service-namespace/resource-id/scalable-dimension\n```\n\n ", + "description": "Provides an Application AutoScaling ScalableTarget resource. To manage policies which get attached to the target, see the `aws.appautoscaling.Policy` resource.\n\n\u003e **NOTE:** The [Application Auto Scaling service automatically attempts to manage IAM Service-Linked Roles](https://docs.aws.amazon.com/autoscaling/application/userguide/security_iam_service-with-iam.html#security_iam_service-with-iam-roles) when registering certain service namespaces for the first time. To manually manage this role, see the `aws.iam.ServiceLinkedRole` resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Table Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbTableReadTarget = new aws.appautoscaling.Target(\"dynamodb_table_read_target\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}`,\n scalableDimension: \"dynamodb:table:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_table_read_target = aws.appautoscaling.Target(\"dynamodbTableReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=f\"table/{aws_dynamodb_table['example']['name']}\",\n scalable_dimension=\"dynamodb:table:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbTableReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbTableReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = $\"table/{aws_dynamodb_table.Example.Name}\",\n ScalableDimension = \"dynamodb:table:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"dynamodbTableReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"table/\", aws_dynamodb_table.Example.Name)),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:table:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\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{{% /example %}}\n{{% example %}}\n### DynamoDB Index Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst dynamodbIndexReadTarget = new aws.appautoscaling.Target(\"dynamodb_index_read_target\", {\n maxCapacity: 100,\n minCapacity: 5,\n resourceId: pulumi.interpolate`table/${aws_dynamodb_table_example.name}/index/${var_index_name}`,\n scalableDimension: \"dynamodb:index:ReadCapacityUnits\",\n serviceNamespace: \"dynamodb\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndynamodb_index_read_target = aws.appautoscaling.Target(\"dynamodbIndexReadTarget\",\n max_capacity=100,\n min_capacity=5,\n resource_id=f\"table/{aws_dynamodb_table['example']['name']}/index/{var['index_name']}\",\n scalable_dimension=\"dynamodb:index:ReadCapacityUnits\",\n service_namespace=\"dynamodb\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var dynamodbIndexReadTarget = new Aws.AppAutoScaling.Target(\"dynamodbIndexReadTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 100,\n MinCapacity = 5,\n ResourceId = $\"table/{aws_dynamodb_table.Example.Name}/index/{@var.Index_name}\",\n ScalableDimension = \"dynamodb:index:ReadCapacityUnits\",\n ServiceNamespace = \"dynamodb\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"dynamodbIndexReadTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(100),\n\t\t\tMinCapacity: pulumi.Int(5),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"table/\", aws_dynamodb_table.Example.Name, \"/index/\", _var.Index_name)),\n\t\t\tScalableDimension: pulumi.String(\"dynamodb:index:ReadCapacityUnits\"),\n\t\t\tServiceNamespace: pulumi.String(\"dynamodb\"),\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{{% /example %}}\n{{% example %}}\n### ECS Service Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ecsTarget = new aws.appautoscaling.Target(\"ecs_target\", {\n maxCapacity: 4,\n minCapacity: 1,\n resourceId: pulumi.interpolate`service/${aws_ecs_cluster_example.name}/${aws_ecs_service_example.name}`,\n scalableDimension: \"ecs:service:DesiredCount\",\n serviceNamespace: \"ecs\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\necs_target = aws.appautoscaling.Target(\"ecsTarget\",\n max_capacity=4,\n min_capacity=1,\n resource_id=f\"service/{aws_ecs_cluster['example']['name']}/{aws_ecs_service['example']['name']}\",\n scalable_dimension=\"ecs:service:DesiredCount\",\n service_namespace=\"ecs\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ecsTarget = new Aws.AppAutoScaling.Target(\"ecsTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 4,\n MinCapacity = 1,\n ResourceId = $\"service/{aws_ecs_cluster.Example.Name}/{aws_ecs_service.Example.Name}\",\n ScalableDimension = \"ecs:service:DesiredCount\",\n ServiceNamespace = \"ecs\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"ecsTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(4),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v%v%v\", \"service/\", aws_ecs_cluster.Example.Name, \"/\", aws_ecs_service.Example.Name)),\n\t\t\tScalableDimension: pulumi.String(\"ecs:service:DesiredCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"ecs\"),\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{{% /example %}}\n{{% example %}}\n### Aurora Read Replica Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst replicas = new aws.appautoscaling.Target(\"replicas\", {\n maxCapacity: 15,\n minCapacity: 1,\n resourceId: pulumi.interpolate`cluster:${aws_rds_cluster_example.id}`,\n scalableDimension: \"rds:cluster:ReadReplicaCount\",\n serviceNamespace: \"rds\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nreplicas = aws.appautoscaling.Target(\"replicas\",\n max_capacity=15,\n min_capacity=1,\n resource_id=f\"cluster:{aws_rds_cluster['example']['id']}\",\n scalable_dimension=\"rds:cluster:ReadReplicaCount\",\n service_namespace=\"rds\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var replicas = new Aws.AppAutoScaling.Target(\"replicas\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 15,\n MinCapacity = 1,\n ResourceId = $\"cluster:{aws_rds_cluster.Example.Id}\",\n ScalableDimension = \"rds:cluster:ReadReplicaCount\",\n ServiceNamespace = \"rds\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"replicas\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(15),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.String(fmt.Sprintf(\"%v%v\", \"cluster:\", aws_rds_cluster.Example.Id)),\n\t\t\tScalableDimension: pulumi.String(\"rds:cluster:ReadReplicaCount\"),\n\t\t\tServiceNamespace: pulumi.String(\"rds\"),\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{{% /example %}}\n{{% example %}}\n### MSK / Kafka Autoscaling\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst mskTarget = new aws.appautoscaling.Target(\"msk_target\", {\n maxCapacity: 8,\n minCapacity: 1,\n resourceId: aws_msk_cluster_example.arn,\n scalableDimension: \"kafka:broker-storage:VolumeSize\",\n serviceNamespace: \"kafka\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmsk_target = aws.appautoscaling.Target(\"mskTarget\",\n max_capacity=8,\n min_capacity=1,\n resource_id=aws_msk_cluster[\"example\"][\"arn\"],\n scalable_dimension=\"kafka:broker-storage:VolumeSize\",\n service_namespace=\"kafka\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var mskTarget = new Aws.AppAutoScaling.Target(\"mskTarget\", new Aws.AppAutoScaling.TargetArgs\n {\n MaxCapacity = 8,\n MinCapacity = 1,\n ResourceId = aws_msk_cluster.Example.Arn,\n ScalableDimension = \"kafka:broker-storage:VolumeSize\",\n ServiceNamespace = \"kafka\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appautoscaling.NewTarget(ctx, \"mskTarget\", \u0026appautoscaling.TargetArgs{\n\t\t\tMaxCapacity: pulumi.Int(8),\n\t\t\tMinCapacity: pulumi.Int(1),\n\t\t\tResourceId: pulumi.Any(aws_msk_cluster.Example.Arn),\n\t\t\tScalableDimension: pulumi.String(\"kafka:broker-storage:VolumeSize\"),\n\t\t\tServiceNamespace: pulumi.String(\"kafka\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nApplication AutoScaling Target can be imported using the `service-namespace` , `resource-id` and `scalable-dimension` separated by `/`.\n\n```sh\n $ pulumi import aws:appautoscaling/target:Target test-target service-namespace/resource-id/scalable-dimension\n```\n\n ", "properties": { "maxCapacity": { "type": "integer", @@ -154574,7 +155424,7 @@ } }, "aws:codeartifact/domain:Domain": { - "description": "Provides a CodeArtifact Domain Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleKey = new aws.kms.Key(\"exampleKey\", {description: \"domain key\"});\nconst exampleDomain = new aws.codeartifact.Domain(\"exampleDomain\", {\n domain: \"example\",\n encryptionKey: exampleKey.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_key = aws.kms.Key(\"exampleKey\", description=\"domain key\")\nexample_domain = aws.codeartifact.Domain(\"exampleDomain\",\n domain=\"example\",\n encryption_key=example_key.arn)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleKey = new Aws.Kms.Key(\"exampleKey\", new Aws.Kms.KeyArgs\n {\n Description = \"domain key\",\n });\n var exampleDomain = new Aws.CodeArtifact.Domain(\"exampleDomain\", new Aws.CodeArtifact.DomainArgs\n {\n Domain = \"example\",\n EncryptionKey = exampleKey.Arn,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codeartifact\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/kms\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleKey, err := kms.NewKey(ctx, \"exampleKey\", \u0026kms.KeyArgs{\n\t\t\tDescription: pulumi.String(\"domain key\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = codeartifact.NewDomain(ctx, \"exampleDomain\", \u0026codeartifact.DomainArgs{\n\t\t\tDomain: pulumi.String(\"example\"),\n\t\t\tEncryptionKey: exampleKey.Arn,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodeArtifact Domain can be imported using the CodeArtifact Domain arn, e.g.\n\n```sh\n $ pulumi import aws:codeartifact/domain:Domain example arn:aws:codeartifact:us-west-2:012345678912:domain/tf-acc-test-8593714120730241305\n```\n\n ", + "description": "Provides a CodeArtifact Domain Resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.codeartifact.Domain(\"example\", {\n domain: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.codeartifact.Domain(\"example\", domain=\"example\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.CodeArtifact.Domain(\"example\", new Aws.CodeArtifact.DomainArgs\n {\n Domain = \"example\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codeartifact\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := codeartifact.NewDomain(ctx, \"example\", \u0026codeartifact.DomainArgs{\n\t\t\tDomain: pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodeArtifact Domain can be imported using the CodeArtifact Domain arn, e.g.\n\n```sh\n $ pulumi import aws:codeartifact/domain:Domain example arn:aws:codeartifact:us-west-2:012345678912:domain/tf-acc-test-8593714120730241305\n```\n\n ", "properties": { "arn": { "type": "string", @@ -154599,7 +155449,7 @@ }, "encryptionKey": { "type": "string", - "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN).\n" + "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent.\n" }, "owner": { "type": "string", @@ -154638,7 +155488,7 @@ }, "encryptionKey": { "type": "string", - "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN).\n" + "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent.\n" }, "tags": { "type": "object", @@ -154649,8 +155499,7 @@ } }, "requiredInputs": [ - "domain", - "encryptionKey" + "domain" ], "stateInputs": { "description": "Input properties used for looking up and filtering Domain resources.\n", @@ -154678,7 +155527,7 @@ }, "encryptionKey": { "type": "string", - "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN).\n" + "description": "The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent.\n" }, "owner": { "type": "string", @@ -164668,7 +165517,7 @@ } }, "aws:ebs/volume:Volume": { - "description": "Manages a single EBS volume.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ebs.Volume(\"example\", {\n availabilityZone: \"us-west-2a\",\n size: 40,\n tags: {\n Name: \"HelloWorld\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ebs.Volume(\"example\",\n availability_zone=\"us-west-2a\",\n size=40,\n tags={\n \"Name\": \"HelloWorld\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Ebs.Volume(\"example\", new Aws.Ebs.VolumeArgs\n {\n AvailabilityZone = \"us-west-2a\",\n Size = 40,\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ebs.NewVolume(ctx, \"example\", \u0026ebs.VolumeArgs{\n\t\t\tAvailabilityZone: pulumi.String(\"us-west-2a\"),\n\t\t\tSize: pulumi.Int(40),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"HelloWorld\"),\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\n\u003e **NOTE**: One of `size` or `snapshot_id` is required when specifying an EBS volume\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEBS Volumes can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:ebs/volume:Volume id vol-049df61146c4d7901\n```\n\n ", + "description": "Manages a single EBS volume.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ebs.Volume(\"example\", {\n availabilityZone: \"us-west-2a\",\n size: 40,\n tags: {\n Name: \"HelloWorld\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ebs.Volume(\"example\",\n availability_zone=\"us-west-2a\",\n size=40,\n tags={\n \"Name\": \"HelloWorld\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Ebs.Volume(\"example\", new Aws.Ebs.VolumeArgs\n {\n AvailabilityZone = \"us-west-2a\",\n Size = 40,\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ebs.NewVolume(ctx, \"example\", \u0026ebs.VolumeArgs{\n\t\t\tAvailabilityZone: pulumi.String(\"us-west-2a\"),\n\t\t\tSize: pulumi.Int(40),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"HelloWorld\"),\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\n\u003e **NOTE**: At least one of `size` or `snapshot_id` is required when specifying an EBS volume\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEBS Volumes can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:ebs/volume:Volume id vol-049df61146c4d7901\n```\n\n ", "properties": { "arn": { "type": "string", @@ -179751,7 +180600,7 @@ }, "engine": { "type": "string", - "description": "The name of the cache engine to be used for the clusters in this replication group. e.g. `redis`\n" + "description": "The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n" }, "engineVersion": { "type": "string", @@ -179776,6 +180625,10 @@ }, "description": "The identifiers of all the nodes that are part of this replication group.\n" }, + "multiAzEnabled": { + "type": "boolean", + "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + }, "nodeType": { "type": "string", "description": "The compute and memory capacity of the nodes in the node group.\n" @@ -179916,7 +180769,7 @@ }, "engine": { "type": "string", - "description": "The name of the cache engine to be used for the clusters in this replication group. e.g. `redis`\n" + "description": "The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n" }, "engineVersion": { "type": "string", @@ -179934,6 +180787,10 @@ "type": "string", "description": "Specifies the weekly time range for when maintenance\non the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).\nThe minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`\n" }, + "multiAzEnabled": { + "type": "boolean", + "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + }, "nodeType": { "type": "string", "description": "The compute and memory capacity of the nodes in the node group.\n" @@ -180062,7 +180919,7 @@ }, "engine": { "type": "string", - "description": "The name of the cache engine to be used for the clusters in this replication group. e.g. `redis`\n" + "description": "The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`.\n" }, "engineVersion": { "type": "string", @@ -180087,6 +180944,10 @@ }, "description": "The identifiers of all the nodes that are part of this replication group.\n" }, + "multiAzEnabled": { + "type": "boolean", + "description": "Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`.\n" + }, "nodeType": { "type": "string", "description": "The compute and memory capacity of the nodes in the node group.\n" @@ -192552,6 +193413,178 @@ "type": "object" } }, + "aws:imagebuilder/image:Image": { + "description": "Manages an Image Builder Image.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.imagebuilder.Image(\"example\", {\n distributionConfigurationArn: aws_imagebuilder_distribution_configuration.example.arn,\n imageRecipeArn: aws_imagebuilder_image_recipe.example.arn,\n infrastructureConfigurationArn: aws_imagebuilder_infrastructure_configuration.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.Image(\"example\",\n distribution_configuration_arn=aws_imagebuilder_distribution_configuration[\"example\"][\"arn\"],\n image_recipe_arn=aws_imagebuilder_image_recipe[\"example\"][\"arn\"],\n infrastructure_configuration_arn=aws_imagebuilder_infrastructure_configuration[\"example\"][\"arn\"])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.ImageBuilder.Image(\"example\", new Aws.ImageBuilder.ImageArgs\n {\n DistributionConfigurationArn = aws_imagebuilder_distribution_configuration.Example.Arn,\n ImageRecipeArn = aws_imagebuilder_image_recipe.Example.Arn,\n InfrastructureConfigurationArn = aws_imagebuilder_infrastructure_configuration.Example.Arn,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imagebuilder.NewImage(ctx, \"example\", \u0026imagebuilder.ImageArgs{\n\t\t\tDistributionConfigurationArn: pulumi.Any(aws_imagebuilder_distribution_configuration.Example.Arn),\n\t\t\tImageRecipeArn: pulumi.Any(aws_imagebuilder_image_recipe.Example.Arn),\n\t\t\tInfrastructureConfigurationArn: pulumi.Any(aws_imagebuilder_infrastructure_configuration.Example.Arn),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_imagebuilder_image` resources can be imported using the Amazon Resource Name (ARN), e.g.\n\n```sh\n $ pulumi import aws:imagebuilder/image:Image example arn:aws:imagebuilder:us-east-1:123456789012:image/example/1.0.0/1\n```\n\n ", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the image.\n" + }, + "dateCreated": { + "type": "string", + "description": "Date the image was created.\n" + }, + "distributionConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Distribution Configuration.\n" + }, + "enhancedImageMetadataEnabled": { + "type": "boolean", + "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" + }, + "imageRecipeArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe.\n" + }, + "imageTestsConfiguration": { + "$ref": "#/types/aws:imagebuilder/ImageImageTestsConfiguration:ImageImageTestsConfiguration", + "description": "Configuration block with image tests configuration. Detailed below.\n" + }, + "infrastructureConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration.\n" + }, + "name": { + "type": "string", + "description": "Name of the AMI.\n" + }, + "osVersion": { + "type": "string", + "description": "Operating System version of the image.\n" + }, + "outputResources": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImageOutputResource:ImageOutputResource" + }, + "description": "List of objects with resources created by the image.\n" + }, + "platform": { + "type": "string", + "description": "Platform of the image.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Image.\n" + }, + "version": { + "type": "string", + "description": "Version of the image.\n" + } + }, + "required": [ + "arn", + "dateCreated", + "imageRecipeArn", + "imageTestsConfiguration", + "infrastructureConfigurationArn", + "name", + "osVersion", + "outputResources", + "platform", + "version" + ], + "inputProperties": { + "distributionConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Distribution Configuration.\n" + }, + "enhancedImageMetadataEnabled": { + "type": "boolean", + "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" + }, + "imageRecipeArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe.\n" + }, + "imageTestsConfiguration": { + "$ref": "#/types/aws:imagebuilder/ImageImageTestsConfiguration:ImageImageTestsConfiguration", + "description": "Configuration block with image tests configuration. Detailed below.\n" + }, + "infrastructureConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Image.\n" + } + }, + "requiredInputs": [ + "imageRecipeArn", + "infrastructureConfigurationArn" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Image resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the image.\n" + }, + "dateCreated": { + "type": "string", + "description": "Date the image was created.\n" + }, + "distributionConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Distribution Configuration.\n" + }, + "enhancedImageMetadataEnabled": { + "type": "boolean", + "description": "Whether additional information about the image being created is collected. Defaults to `true`.\n" + }, + "imageRecipeArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe.\n" + }, + "imageTestsConfiguration": { + "$ref": "#/types/aws:imagebuilder/ImageImageTestsConfiguration:ImageImageTestsConfiguration", + "description": "Configuration block with image tests configuration. Detailed below.\n" + }, + "infrastructureConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration.\n" + }, + "name": { + "type": "string", + "description": "Name of the AMI.\n" + }, + "osVersion": { + "type": "string", + "description": "Operating System version of the image.\n" + }, + "outputResources": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/ImageOutputResource:ImageOutputResource" + }, + "description": "List of objects with resources created by the image.\n" + }, + "platform": { + "type": "string", + "description": "Platform of the image.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the Image Builder Image.\n" + }, + "version": { + "type": "string", + "description": "Version of the image.\n" + } + }, + "type": "object" + } + }, "aws:imagebuilder/imagePipeline:ImagePipeline": { "description": "Manages an Image Builder Image Pipeline.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.imagebuilder.ImagePipeline(\"example\", {\n imageRecipeArn: aws_imagebuilder_image_recipe.example.arn,\n infrastructureConfigurationArn: aws_imagebuilder_infrastructure_configuration.example.arn,\n schedule: {\n scheduleExpression: \"cron(0 0 * * *)\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.ImagePipeline(\"example\",\n image_recipe_arn=aws_imagebuilder_image_recipe[\"example\"][\"arn\"],\n infrastructure_configuration_arn=aws_imagebuilder_infrastructure_configuration[\"example\"][\"arn\"],\n schedule=aws.imagebuilder.ImagePipelineScheduleArgs(\n schedule_expression=\"cron(0 0 * * *)\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.ImageBuilder.ImagePipeline(\"example\", new Aws.ImageBuilder.ImagePipelineArgs\n {\n ImageRecipeArn = aws_imagebuilder_image_recipe.Example.Arn,\n InfrastructureConfigurationArn = aws_imagebuilder_infrastructure_configuration.Example.Arn,\n Schedule = new Aws.ImageBuilder.Inputs.ImagePipelineScheduleArgs\n {\n ScheduleExpression = \"cron(0 0 * * *)\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imagebuilder.NewImagePipeline(ctx, \"example\", \u0026imagebuilder.ImagePipelineArgs{\n\t\t\tImageRecipeArn: pulumi.Any(aws_imagebuilder_image_recipe.Example.Arn),\n\t\t\tInfrastructureConfigurationArn: pulumi.Any(aws_imagebuilder_infrastructure_configuration.Example.Arn),\n\t\t\tSchedule: \u0026imagebuilder.ImagePipelineScheduleArgs{\n\t\t\t\tScheduleExpression: pulumi.String(\"cron(0 0 * * *)\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_imagebuilder_image_pipeline` resources can be imported using the Amazon Resource Name (ARN), e.g.\n\n```sh\n $ pulumi import aws:imagebuilder/imagePipeline:ImagePipeline example arn:aws:imagebuilder:us-east-1:123456789012:image-pipeline/example\n```\n\n ", "properties": { @@ -202430,7 +203463,7 @@ } }, "aws:networkfirewall/ruleGroup:RuleGroup": { - "description": "Provides an AWS Network Firewall Rule Group Resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Stateful Inspection\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n ruleGroup: {\n rulesSource: {\n rulesSourceList: {\n generatedRulesType: \"DENYLIST\",\n targetTypes: [\"HTTP_HOST\"],\n targets: [\"test.example.com\"],\n },\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATEFUL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n rules_source_list=aws.networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs(\n generated_rules_type=\"DENYLIST\",\n target_types=[\"HTTP_HOST\"],\n targets=[\"test.example.com\"],\n ),\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATEFUL\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n RulesSourceList = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs\n {\n GeneratedRulesType = \"DENYLIST\",\n TargetTypes = \n {\n \"HTTP_HOST\",\n },\n Targets = \n {\n \"test.example.com\",\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATEFUL\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tRulesSourceList: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs{\n\t\t\t\t\t\tGeneratedRulesType: pulumi.String(\"DENYLIST\"),\n\t\t\t\t\t\tTargetTypes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"HTTP_HOST\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTargets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"test.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATEFUL\"),\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{{% /example %}}\n{{% example %}}\n### Stateful Inspection compatible with intrusion detection systems like Snort or Suricata\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n ruleGroup: {\n rulesSource: {\n statefulRules: [{\n action: \"DROP\",\n header: {\n destination: \"124.1.1.24/32\",\n destinationPort: \"53\",\n direction: \"ANY\",\n protocol: \"TCP\",\n source: \"1.2.3.4/32\",\n sourcePort: \"53\",\n },\n ruleOptions: [{\n keyword: \"sid:1\",\n }],\n }],\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATEFUL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n stateful_rule=[{\n \"action\": \"DROP\",\n \"header\": {\n \"destination\": \"124.1.1.24/32\",\n \"destinationPort\": 53,\n \"direction\": \"ANY\",\n \"protocol\": \"TCP\",\n \"source\": \"1.2.3.4/32\",\n \"sourcePort\": 53,\n },\n \"ruleOption\": [{\n \"keyword\": \"sid:1\",\n }],\n }],\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATEFUL\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n StatefulRule = \n {\n \n {\n { \"action\", \"DROP\" },\n { \"header\", \n {\n { \"destination\", \"124.1.1.24/32\" },\n { \"destinationPort\", 53 },\n { \"direction\", \"ANY\" },\n { \"protocol\", \"TCP\" },\n { \"source\", \"1.2.3.4/32\" },\n { \"sourcePort\", 53 },\n } },\n { \"ruleOption\", \n {\n \n {\n { \"keyword\", \"sid:1\" },\n },\n } },\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATEFUL\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tStatefulRule: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"action\": pulumi.String(\"DROP\"),\n\t\t\t\t\t\t\t\"header\": pulumi.Map{\n\t\t\t\t\t\t\t\t\"destination\": pulumi.String(\"124.1.1.24/32\"),\n\t\t\t\t\t\t\t\t\"destinationPort\": pulumi.Float64(53),\n\t\t\t\t\t\t\t\t\"direction\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\"protocol\": pulumi.String(\"TCP\"),\n\t\t\t\t\t\t\t\t\"source\": pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\t\t\t\t\"sourcePort\": pulumi.Float64(53),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"ruleOption\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\"keyword\": pulumi.String(\"sid:1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATEFUL\"),\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{{% /example %}}\n{{% example %}}\n### Stateful Inspection from rules specifications defined in Suricata flat format\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * from \"fs\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n type: \"STATEFUL\",\n rules: fs.readFileSync(\"example.rules\"),\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n type=\"STATEFUL\",\n rules=(lambda path: open(path).read())(\"example.rules\"),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n })\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n Type = \"STATEFUL\",\n Rules = File.ReadAllText(\"example.rules\"),\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n });\n }\n\n}\n```\n{{% /example %}}\n{{% example %}}\n### Stateless Inspection with a Custom Action\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n description: \"Stateless Rate Limiting Rule\",\n ruleGroup: {\n rulesSource: {\n statelessRulesAndCustomActions: {\n customActions: [{\n actionDefinition: {\n publishMetricAction: {\n dimensions: [{\n value: \"2\",\n }],\n },\n },\n actionName: \"ExampleMetricsAction\",\n }],\n statelessRules: [{\n priority: 1,\n ruleDefinition: {\n actions: [\n \"aws:pass\",\n \"ExampleMetricsAction\",\n ],\n matchAttributes: {\n destinations: [{\n addressDefinition: \"124.1.1.5/32\",\n }],\n destinationPorts: [{\n fromPort: 443,\n toPort: 443,\n }],\n protocols: [6],\n sources: [{\n addressDefinition: \"1.2.3.4/32\",\n }],\n sourcePorts: [{\n fromPort: 443,\n toPort: 443,\n }],\n tcpFlags: [{\n flags: [\"SYN\"],\n masks: [\n \"SYN\",\n \"ACK\",\n ],\n }],\n },\n },\n }],\n },\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATELESS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n description=\"Stateless Rate Limiting Rule\",\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n stateless_rules_and_custom_actions=aws.networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs(\n custom_action=[{\n \"actionDefinition\": {\n \"publishMetricAction\": {\n \"dimension\": [{\n \"value\": \"2\",\n }],\n },\n },\n \"actionName\": \"ExampleMetricsAction\",\n }],\n stateless_rule=[{\n \"priority\": 1,\n \"ruleDefinition\": {\n \"actions\": [\n \"aws:pass\",\n \"ExampleMetricsAction\",\n ],\n \"matchAttributes\": {\n \"destination\": [{\n \"addressDefinition\": \"124.1.1.5/32\",\n }],\n \"destinationPort\": [{\n \"from_port\": 443,\n \"to_port\": 443,\n }],\n \"protocols\": [6],\n \"source\": [{\n \"addressDefinition\": \"1.2.3.4/32\",\n }],\n \"sourcePort\": [{\n \"from_port\": 443,\n \"to_port\": 443,\n }],\n \"tcpFlag\": [{\n \"flags\": [\"SYN\"],\n \"masks\": [\n \"SYN\",\n \"ACK\",\n ],\n }],\n },\n },\n }],\n ),\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATELESS\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n Description = \"Stateless Rate Limiting Rule\",\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n StatelessRulesAndCustomActions = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs\n {\n CustomAction = \n {\n \n {\n { \"actionDefinition\", \n {\n { \"publishMetricAction\", \n {\n { \"dimension\", \n {\n \n {\n { \"value\", \"2\" },\n },\n } },\n } },\n } },\n { \"actionName\", \"ExampleMetricsAction\" },\n },\n },\n StatelessRule = \n {\n \n {\n { \"priority\", 1 },\n { \"ruleDefinition\", \n {\n { \"actions\", \n {\n \"aws:pass\",\n \"ExampleMetricsAction\",\n } },\n { \"matchAttributes\", \n {\n { \"destination\", \n {\n \n {\n { \"addressDefinition\", \"124.1.1.5/32\" },\n },\n } },\n { \"destinationPort\", \n {\n \n {\n { \"fromPort\", 443 },\n { \"toPort\", 443 },\n },\n } },\n { \"protocols\", \n {\n 6,\n } },\n { \"source\", \n {\n \n {\n { \"addressDefinition\", \"1.2.3.4/32\" },\n },\n } },\n { \"sourcePort\", \n {\n \n {\n { \"fromPort\", 443 },\n { \"toPort\", 443 },\n },\n } },\n { \"tcpFlag\", \n {\n \n {\n { \"flags\", \n {\n \"SYN\",\n } },\n { \"masks\", \n {\n \"SYN\",\n \"ACK\",\n } },\n },\n } },\n } },\n } },\n },\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATELESS\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tDescription: pulumi.String(\"Stateless Rate Limiting Rule\"),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tStatelessRulesAndCustomActions: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs{\n\t\t\t\t\t\tCustomAction: pulumi.MapArray{\n\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\"actionDefinition\": pulumi.StringMapArrayMapMap{\n\t\t\t\t\t\t\t\t\t\"publishMetricAction\": pulumi.StringMapArrayMap{\n\t\t\t\t\t\t\t\t\t\t\"dimension\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"value\": pulumi.String(\"2\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"actionName\": pulumi.String(\"ExampleMetricsAction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tStatelessRule: pulumi.MapArray{\n\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\"priority\": pulumi.Float64(1),\n\t\t\t\t\t\t\t\t\"ruleDefinition\": pulumi.Map{\n\t\t\t\t\t\t\t\t\t\"actions\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"aws:pass\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"ExampleMetricsAction\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"matchAttributes\": pulumi.Map{\n\t\t\t\t\t\t\t\t\t\t\"destination\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"addressDefinition\": pulumi.String(\"124.1.1.5/32\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"destinationPort\": pulumi.Float64MapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64Map{\n\t\t\t\t\t\t\t\t\t\t\t\t\"fromPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t\t\"toPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"protocols\": pulumi.Float64Array{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64(6),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"source\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"addressDefinition\": pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"sourcePort\": pulumi.Float64MapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64Map{\n\t\t\t\t\t\t\t\t\t\t\t\t\"fromPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t\t\"toPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"tcpFlag\": pulumi.StringArrayMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringArrayMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"flags\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"SYN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\"masks\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"SYN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"ACK\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATELESS\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Firewall Rule Groups can be imported using their `ARN`.\n\n```sh\n $ pulumi import aws:networkfirewall/ruleGroup:RuleGroup example arn:aws:network-firewall:us-west-1:123456789012:stateful-rulegroup/example\n```\n\n ", + "description": "Provides an AWS Network Firewall Rule Group Resource\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Stateful Inspection for denying access to a domain\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n ruleGroup: {\n rulesSource: {\n rulesSourceList: {\n generatedRulesType: \"DENYLIST\",\n targetTypes: [\"HTTP_HOST\"],\n targets: [\"test.example.com\"],\n },\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATEFUL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n rules_source_list=aws.networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs(\n generated_rules_type=\"DENYLIST\",\n target_types=[\"HTTP_HOST\"],\n targets=[\"test.example.com\"],\n ),\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATEFUL\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n RulesSourceList = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceRulesSourceListArgs\n {\n GeneratedRulesType = \"DENYLIST\",\n TargetTypes = \n {\n \"HTTP_HOST\",\n },\n Targets = \n {\n \"test.example.com\",\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATEFUL\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tRulesSourceList: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceRulesSourceListArgs{\n\t\t\t\t\t\tGeneratedRulesType: pulumi.String(\"DENYLIST\"),\n\t\t\t\t\t\tTargetTypes: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"HTTP_HOST\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTargets: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"test.example.com\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATEFUL\"),\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{{% /example %}}\n{{% example %}}\n### Stateful Inspection for permitting packets from a source IP address\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ips = [\n \"1.1.1.1/32\",\n \"1.0.0.1/32\",\n];\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 50,\n description: \"Permits http traffic from source\",\n type: \"STATEFUL\",\n ruleGroup: {\n rulesSource: {\n dynamic: [{\n forEach: ips,\n content: [{\n action: \"PASS\",\n header: [{\n destination: \"ANY\",\n destinationPort: \"ANY\",\n protocol: \"HTTP\",\n direction: \"ANY\",\n sourcePort: \"ANY\",\n source: stateful_rule.value,\n }],\n ruleOption: [{\n keyword: \"sid:1\",\n }],\n }],\n }],\n },\n },\n tags: {\n Name: \"permit HTTP from source\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nips = [\n \"1.1.1.1/32\",\n \"1.0.0.1/32\",\n]\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=50,\n description=\"Permits http traffic from source\",\n type=\"STATEFUL\",\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n dynamic=[{\n \"forEach\": ips,\n \"content\": [{\n \"action\": \"PASS\",\n \"header\": [{\n \"destination\": \"ANY\",\n \"destinationPort\": \"ANY\",\n \"protocol\": \"HTTP\",\n \"direction\": \"ANY\",\n \"sourcePort\": \"ANY\",\n \"source\": stateful_rule[\"value\"],\n }],\n \"ruleOption\": [{\n \"keyword\": \"sid:1\",\n }],\n }],\n }],\n ),\n ),\n tags={\n \"Name\": \"permit HTTP from source\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ips = \n {\n \"1.1.1.1/32\",\n \"1.0.0.1/32\",\n };\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 50,\n Description = \"Permits http traffic from source\",\n Type = \"STATEFUL\",\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n Dynamic = \n {\n \n {\n { \"forEach\", ips },\n { \"content\", \n {\n \n {\n { \"action\", \"PASS\" },\n { \"header\", \n {\n \n {\n { \"destination\", \"ANY\" },\n { \"destinationPort\", \"ANY\" },\n { \"protocol\", \"HTTP\" },\n { \"direction\", \"ANY\" },\n { \"sourcePort\", \"ANY\" },\n { \"source\", stateful_rule.Value },\n },\n } },\n { \"ruleOption\", \n {\n \n {\n { \"keyword\", \"sid:1\" },\n },\n } },\n },\n } },\n },\n },\n },\n },\n Tags = \n {\n { \"Name\", \"permit HTTP from source\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tips := []string{\n\t\t\t\"1.1.1.1/32\",\n\t\t\t\"1.0.0.1/32\",\n\t\t}\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(50),\n\t\t\tDescription: pulumi.String(\"Permits http traffic from source\"),\n\t\t\tType: pulumi.String(\"STATEFUL\"),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tDynamic: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"forEach\": toPulumiStringArray(ips),\n\t\t\t\t\t\t\t\"content\": pulumi.MapArray{\n\t\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\t\"action\": pulumi.String(\"PASS\"),\n\t\t\t\t\t\t\t\t\t\"header\": pulumi.MapArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\t\t\t\"destination\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\t\t\t\"destinationPort\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\t\t\t\"protocol\": pulumi.String(\"HTTP\"),\n\t\t\t\t\t\t\t\t\t\t\t\"direction\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\t\t\t\"sourcePort\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\t\t\t\"source\": pulumi.Any(stateful_rule.Value),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"ruleOption\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\"keyword\": pulumi.String(\"sid:1\"),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"permit HTTP from source\"),\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}\nfunc toPulumiStringArray(arr []string) pulumi.StringArray {\n\tvar pulumiArr pulumi.StringArray\n\tfor _, v := range arr {\n\t\tpulumiArr = append(pulumiArr, pulumi.String(v))\n\t}\n\treturn pulumiArr\n}\n```\n{{% /example %}}\n{{% example %}}\n### Stateful Inspection for blocking packets from going to an intended destination\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n ruleGroup: {\n rulesSource: {\n statefulRules: [{\n action: \"DROP\",\n header: {\n destination: \"124.1.1.24/32\",\n destinationPort: \"53\",\n direction: \"ANY\",\n protocol: \"TCP\",\n source: \"1.2.3.4/32\",\n sourcePort: \"53\",\n },\n ruleOptions: [{\n keyword: \"sid:1\",\n }],\n }],\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATEFUL\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n stateful_rule=[{\n \"action\": \"DROP\",\n \"header\": {\n \"destination\": \"124.1.1.24/32\",\n \"destinationPort\": 53,\n \"direction\": \"ANY\",\n \"protocol\": \"TCP\",\n \"source\": \"1.2.3.4/32\",\n \"sourcePort\": 53,\n },\n \"ruleOption\": [{\n \"keyword\": \"sid:1\",\n }],\n }],\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATEFUL\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n StatefulRule = \n {\n \n {\n { \"action\", \"DROP\" },\n { \"header\", \n {\n { \"destination\", \"124.1.1.24/32\" },\n { \"destinationPort\", 53 },\n { \"direction\", \"ANY\" },\n { \"protocol\", \"TCP\" },\n { \"source\", \"1.2.3.4/32\" },\n { \"sourcePort\", 53 },\n } },\n { \"ruleOption\", \n {\n \n {\n { \"keyword\", \"sid:1\" },\n },\n } },\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATEFUL\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tStatefulRule: pulumi.MapArray{\n\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\"action\": pulumi.String(\"DROP\"),\n\t\t\t\t\t\t\t\"header\": pulumi.Map{\n\t\t\t\t\t\t\t\t\"destination\": pulumi.String(\"124.1.1.24/32\"),\n\t\t\t\t\t\t\t\t\"destinationPort\": pulumi.Float64(53),\n\t\t\t\t\t\t\t\t\"direction\": pulumi.String(\"ANY\"),\n\t\t\t\t\t\t\t\t\"protocol\": pulumi.String(\"TCP\"),\n\t\t\t\t\t\t\t\t\"source\": pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\t\t\t\t\"sourcePort\": pulumi.Float64(53),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"ruleOption\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\"keyword\": pulumi.String(\"sid:1\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATEFUL\"),\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{{% /example %}}\n{{% example %}}\n### Stateful Inspection from rules specifications defined in Suricata flat format\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * from \"fs\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n type: \"STATEFUL\",\n rules: fs.readFileSync(\"example.rules\"),\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n type=\"STATEFUL\",\n rules=(lambda path: open(path).read())(\"example.rules\"),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n })\n```\n```csharp\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n Type = \"STATEFUL\",\n Rules = File.ReadAllText(\"example.rules\"),\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n });\n }\n\n}\n```\n{{% /example %}}\n{{% example %}}\n### Stateless Inspection with a Custom Action\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.networkfirewall.RuleGroup(\"example\", {\n capacity: 100,\n description: \"Stateless Rate Limiting Rule\",\n ruleGroup: {\n rulesSource: {\n statelessRulesAndCustomActions: {\n customActions: [{\n actionDefinition: {\n publishMetricAction: {\n dimensions: [{\n value: \"2\",\n }],\n },\n },\n actionName: \"ExampleMetricsAction\",\n }],\n statelessRules: [{\n priority: 1,\n ruleDefinition: {\n actions: [\n \"aws:pass\",\n \"ExampleMetricsAction\",\n ],\n matchAttributes: {\n destinations: [{\n addressDefinition: \"124.1.1.5/32\",\n }],\n destinationPorts: [{\n fromPort: 443,\n toPort: 443,\n }],\n protocols: [6],\n sources: [{\n addressDefinition: \"1.2.3.4/32\",\n }],\n sourcePorts: [{\n fromPort: 443,\n toPort: 443,\n }],\n tcpFlags: [{\n flags: [\"SYN\"],\n masks: [\n \"SYN\",\n \"ACK\",\n ],\n }],\n },\n },\n }],\n },\n },\n },\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n type: \"STATELESS\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkfirewall.RuleGroup(\"example\",\n capacity=100,\n description=\"Stateless Rate Limiting Rule\",\n rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs(\n rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs(\n stateless_rules_and_custom_actions=aws.networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs(\n custom_action=[{\n \"actionDefinition\": {\n \"publishMetricAction\": {\n \"dimension\": [{\n \"value\": \"2\",\n }],\n },\n },\n \"actionName\": \"ExampleMetricsAction\",\n }],\n stateless_rule=[{\n \"priority\": 1,\n \"ruleDefinition\": {\n \"actions\": [\n \"aws:pass\",\n \"ExampleMetricsAction\",\n ],\n \"matchAttributes\": {\n \"destination\": [{\n \"addressDefinition\": \"124.1.1.5/32\",\n }],\n \"destinationPort\": [{\n \"from_port\": 443,\n \"to_port\": 443,\n }],\n \"protocols\": [6],\n \"source\": [{\n \"addressDefinition\": \"1.2.3.4/32\",\n }],\n \"sourcePort\": [{\n \"from_port\": 443,\n \"to_port\": 443,\n }],\n \"tcpFlag\": [{\n \"flags\": [\"SYN\"],\n \"masks\": [\n \"SYN\",\n \"ACK\",\n ],\n }],\n },\n },\n }],\n ),\n ),\n ),\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n type=\"STATELESS\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.NetworkFirewall.RuleGroup(\"example\", new Aws.NetworkFirewall.RuleGroupArgs\n {\n Capacity = 100,\n Description = \"Stateless Rate Limiting Rule\",\n RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs\n {\n RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs\n {\n StatelessRulesAndCustomActions = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs\n {\n CustomAction = \n {\n \n {\n { \"actionDefinition\", \n {\n { \"publishMetricAction\", \n {\n { \"dimension\", \n {\n \n {\n { \"value\", \"2\" },\n },\n } },\n } },\n } },\n { \"actionName\", \"ExampleMetricsAction\" },\n },\n },\n StatelessRule = \n {\n \n {\n { \"priority\", 1 },\n { \"ruleDefinition\", \n {\n { \"actions\", \n {\n \"aws:pass\",\n \"ExampleMetricsAction\",\n } },\n { \"matchAttributes\", \n {\n { \"destination\", \n {\n \n {\n { \"addressDefinition\", \"124.1.1.5/32\" },\n },\n } },\n { \"destinationPort\", \n {\n \n {\n { \"fromPort\", 443 },\n { \"toPort\", 443 },\n },\n } },\n { \"protocols\", \n {\n 6,\n } },\n { \"source\", \n {\n \n {\n { \"addressDefinition\", \"1.2.3.4/32\" },\n },\n } },\n { \"sourcePort\", \n {\n \n {\n { \"fromPort\", 443 },\n { \"toPort\", 443 },\n },\n } },\n { \"tcpFlag\", \n {\n \n {\n { \"flags\", \n {\n \"SYN\",\n } },\n { \"masks\", \n {\n \"SYN\",\n \"ACK\",\n } },\n },\n } },\n } },\n } },\n },\n },\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n Type = \"STATELESS\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkfirewall.NewRuleGroup(ctx, \"example\", \u0026networkfirewall.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(100),\n\t\t\tDescription: pulumi.String(\"Stateless Rate Limiting Rule\"),\n\t\t\tRuleGroup: \u0026networkfirewall.RuleGroupRuleGroupArgs{\n\t\t\t\tRulesSource: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceArgs{\n\t\t\t\t\tStatelessRulesAndCustomActions: \u0026networkfirewall.RuleGroupRuleGroupRulesSourceStatelessRulesAndCustomActionsArgs{\n\t\t\t\t\t\tCustomAction: pulumi.MapArray{\n\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\"actionDefinition\": pulumi.StringMapArrayMapMap{\n\t\t\t\t\t\t\t\t\t\"publishMetricAction\": pulumi.StringMapArrayMap{\n\t\t\t\t\t\t\t\t\t\t\"dimension\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"value\": pulumi.String(\"2\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\"actionName\": pulumi.String(\"ExampleMetricsAction\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tStatelessRule: pulumi.MapArray{\n\t\t\t\t\t\t\tpulumi.Map{\n\t\t\t\t\t\t\t\t\"priority\": pulumi.Float64(1),\n\t\t\t\t\t\t\t\t\"ruleDefinition\": pulumi.Map{\n\t\t\t\t\t\t\t\t\t\"actions\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"aws:pass\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"ExampleMetricsAction\"),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\"matchAttributes\": pulumi.Map{\n\t\t\t\t\t\t\t\t\t\t\"destination\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"addressDefinition\": pulumi.String(\"124.1.1.5/32\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"destinationPort\": pulumi.Float64MapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64Map{\n\t\t\t\t\t\t\t\t\t\t\t\t\"fromPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t\t\"toPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"protocols\": pulumi.Float64Array{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64(6),\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"source\": pulumi.StringMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"addressDefinition\": pulumi.String(\"1.2.3.4/32\"),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"sourcePort\": pulumi.Float64MapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.Float64Map{\n\t\t\t\t\t\t\t\t\t\t\t\t\"fromPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t\t\"toPort\": pulumi.Float64(443),\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\"tcpFlag\": pulumi.StringArrayMapArray{\n\t\t\t\t\t\t\t\t\t\t\tpulumi.StringArrayMap{\n\t\t\t\t\t\t\t\t\t\t\t\t\"flags\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"SYN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\t\"masks\": pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"SYN\"),\n\t\t\t\t\t\t\t\t\t\t\t\t\tpulumi.String(\"ACK\"),\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Tag1\": pulumi.String(\"Value1\"),\n\t\t\t\t\"Tag2\": pulumi.String(\"Value2\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"STATELESS\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Firewall Rule Groups can be imported using their `ARN`.\n\n```sh\n $ pulumi import aws:networkfirewall/ruleGroup:RuleGroup example arn:aws:network-firewall:us-west-1:123456789012:stateful-rulegroup/example\n```\n\n ", "properties": { "arn": { "type": "string", @@ -218012,16 +219045,72 @@ "type": "object" } }, + "aws:sagemaker/appImageConfig:AppImageConfig": { + "description": "Provides a Sagemaker App Image Config resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.sagemaker.AppImageConfig(\"test\", {\n appImageConfigName: \"example\",\n kernelGatewayImageConfig: {\n kernelSpec: {\n name: \"example\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.sagemaker.AppImageConfig(\"test\",\n app_image_config_name=\"example\",\n kernel_gateway_image_config=aws.sagemaker.AppImageConfigKernelGatewayImageConfigArgs(\n kernel_spec=aws.sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs(\n name=\"example\",\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = new Aws.Sagemaker.AppImageConfig(\"test\", new Aws.Sagemaker.AppImageConfigArgs\n {\n AppImageConfigName = \"example\",\n KernelGatewayImageConfig = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigArgs\n {\n KernelSpec = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigKernelSpecArgs\n {\n Name = \"example\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sagemaker.NewAppImageConfig(ctx, \"test\", \u0026sagemaker.AppImageConfigArgs{\n\t\t\tAppImageConfigName: pulumi.String(\"example\"),\n\t\t\tKernelGatewayImageConfig: \u0026sagemaker.AppImageConfigKernelGatewayImageConfigArgs{\n\t\t\t\tKernelSpec: \u0026sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\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{{% /example %}}\n{{% example %}}\n### Default File System Config\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.sagemaker.AppImageConfig(\"test\", {\n appImageConfigName: \"example\",\n kernelGatewayImageConfig: {\n fileSystemConfig: {},\n kernelSpec: {\n name: \"example\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.sagemaker.AppImageConfig(\"test\",\n app_image_config_name=\"example\",\n kernel_gateway_image_config=aws.sagemaker.AppImageConfigKernelGatewayImageConfigArgs(\n file_system_config={},\n kernel_spec=aws.sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs(\n name=\"example\",\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = new Aws.Sagemaker.AppImageConfig(\"test\", new Aws.Sagemaker.AppImageConfigArgs\n {\n AppImageConfigName = \"example\",\n KernelGatewayImageConfig = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigArgs\n {\n FileSystemConfig = ,\n KernelSpec = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigKernelSpecArgs\n {\n Name = \"example\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sagemaker.NewAppImageConfig(ctx, \"test\", \u0026sagemaker.AppImageConfigArgs{\n\t\t\tAppImageConfigName: pulumi.String(\"example\"),\n\t\t\tKernelGatewayImageConfig: \u0026sagemaker.AppImageConfigKernelGatewayImageConfigArgs{\n\t\t\t\tFileSystemConfig: nil,\n\t\t\t\tKernelSpec: \u0026sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs{\n\t\t\t\t\tName: pulumi.String(\"example\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSagemaker App Image Configs can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aws:sagemaker/appImageConfig:AppImageConfig example example\n```\n\n ", + "properties": { + "appImageConfigName": { + "type": "string", + "description": "The name of the App Image Config.\n" + }, + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this App Image Config.\n" + }, + "kernelGatewayImageConfig": { + "$ref": "#/types/aws:sagemaker/AppImageConfigKernelGatewayImageConfig:AppImageConfigKernelGatewayImageConfig", + "description": "The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below.\n" + } + }, + "required": [ + "appImageConfigName", + "arn" + ], + "inputProperties": { + "appImageConfigName": { + "type": "string", + "description": "The name of the App Image Config.\n" + }, + "kernelGatewayImageConfig": { + "$ref": "#/types/aws:sagemaker/AppImageConfigKernelGatewayImageConfig:AppImageConfigKernelGatewayImageConfig", + "description": "The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below.\n" + } + }, + "requiredInputs": [ + "appImageConfigName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AppImageConfig resources.\n", + "properties": { + "appImageConfigName": { + "type": "string", + "description": "The name of the App Image Config.\n" + }, + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this App Image Config.\n" + }, + "kernelGatewayImageConfig": { + "$ref": "#/types/aws:sagemaker/AppImageConfigKernelGatewayImageConfig:AppImageConfigKernelGatewayImageConfig", + "description": "The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below.\n" + } + }, + "type": "object" + } + }, "aws:sagemaker/codeRepository:CodeRepository": { + "description": "Provides a Sagemaker Code Repository resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.sagemaker.CodeRepository(\"example\", {\n codeRepositoryName: \"example\",\n gitConfig: {\n repositoryUrl: \"https://github.com/hashicorp/terraform-provider-aws.git\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.sagemaker.CodeRepository(\"example\",\n code_repository_name=\"example\",\n git_config=aws.sagemaker.CodeRepositoryGitConfigArgs(\n repository_url=\"https://github.com/hashicorp/terraform-provider-aws.git\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Sagemaker.CodeRepository(\"example\", new Aws.Sagemaker.CodeRepositoryArgs\n {\n CodeRepositoryName = \"example\",\n GitConfig = new Aws.Sagemaker.Inputs.CodeRepositoryGitConfigArgs\n {\n RepositoryUrl = \"https://github.com/hashicorp/terraform-provider-aws.git\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sagemaker.NewCodeRepository(ctx, \"example\", \u0026sagemaker.CodeRepositoryArgs{\n\t\t\tCodeRepositoryName: pulumi.String(\"example\"),\n\t\t\tGitConfig: \u0026sagemaker.CodeRepositoryGitConfigArgs{\n\t\t\t\tRepositoryUrl: pulumi.String(\"https://github.com/hashicorp/terraform-provider-aws.git\"),\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{{% /example %}}\n{{% example %}}\n### Example with Secret\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleSecret = new aws.secretsmanager.Secret(\"exampleSecret\", {});\nconst exampleSecretVersion = new aws.secretsmanager.SecretVersion(\"exampleSecretVersion\", {\n secretId: exampleSecret.id,\n secretString: JSON.stringify({\n username: \"example\",\n password: \"example\",\n }),\n});\nconst exampleCodeRepository = new aws.sagemaker.CodeRepository(\"exampleCodeRepository\", {\n codeRepositoryName: \"example\",\n gitConfig: {\n repositoryUrl: \"https://github.com/hashicorp/terraform-provider-aws.git\",\n secretArn: exampleSecret.arn,\n },\n}, {\n dependsOn: [exampleSecretVersion],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nexample_secret = aws.secretsmanager.Secret(\"exampleSecret\")\nexample_secret_version = aws.secretsmanager.SecretVersion(\"exampleSecretVersion\",\n secret_id=example_secret.id,\n secret_string=json.dumps({\n \"username\": \"example\",\n \"password\": \"example\",\n }))\nexample_code_repository = aws.sagemaker.CodeRepository(\"exampleCodeRepository\",\n code_repository_name=\"example\",\n git_config=aws.sagemaker.CodeRepositoryGitConfigArgs(\n repository_url=\"https://github.com/hashicorp/terraform-provider-aws.git\",\n secret_arn=example_secret.arn,\n ),\n opts=pulumi.ResourceOptions(depends_on=[example_secret_version]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleSecret = new Aws.SecretsManager.Secret(\"exampleSecret\", new Aws.SecretsManager.SecretArgs\n {\n });\n var exampleSecretVersion = new Aws.SecretsManager.SecretVersion(\"exampleSecretVersion\", new Aws.SecretsManager.SecretVersionArgs\n {\n SecretId = exampleSecret.Id,\n SecretString = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n { \"username\", \"example\" },\n { \"password\", \"example\" },\n }),\n });\n var exampleCodeRepository = new Aws.Sagemaker.CodeRepository(\"exampleCodeRepository\", new Aws.Sagemaker.CodeRepositoryArgs\n {\n CodeRepositoryName = \"example\",\n GitConfig = new Aws.Sagemaker.Inputs.CodeRepositoryGitConfigArgs\n {\n RepositoryUrl = \"https://github.com/hashicorp/terraform-provider-aws.git\",\n SecretArn = exampleSecret.Arn,\n },\n }, new CustomResourceOptions\n {\n DependsOn = \n {\n exampleSecretVersion,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/secretsmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleSecret, err := secretsmanager.NewSecret(ctx, \"exampleSecret\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"username\": \"example\",\n\t\t\t\"password\": \"example\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\texampleSecretVersion, err := secretsmanager.NewSecretVersion(ctx, \"exampleSecretVersion\", \u0026secretsmanager.SecretVersionArgs{\n\t\t\tSecretId: exampleSecret.ID(),\n\t\t\tSecretString: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sagemaker.NewCodeRepository(ctx, \"exampleCodeRepository\", \u0026sagemaker.CodeRepositoryArgs{\n\t\t\tCodeRepositoryName: pulumi.String(\"example\"),\n\t\t\tGitConfig: \u0026sagemaker.CodeRepositoryGitConfigArgs{\n\t\t\t\tRepositoryUrl: pulumi.String(\"https://github.com/hashicorp/terraform-provider-aws.git\"),\n\t\t\t\tSecretArn: exampleSecret.Arn,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleSecretVersion,\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSagemaker Code Repositories can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aws:sagemaker/codeRepository:CodeRepository test_code_repository my-code-repo\n```\n\n ", "properties": { "arn": { - "type": "string" + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Code Repository.\n" }, "codeRepositoryName": { - "type": "string" + "type": "string", + "description": "The name of the Code Repository (must be unique).\n" }, "gitConfig": { - "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig" + "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig", + "description": "Specifies details about the repository. see Git Config details below.\n" } }, "required": [ @@ -218031,10 +219120,12 @@ ], "inputProperties": { "codeRepositoryName": { - "type": "string" + "type": "string", + "description": "The name of the Code Repository (must be unique).\n" }, "gitConfig": { - "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig" + "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig", + "description": "Specifies details about the repository. see Git Config details below.\n" } }, "requiredInputs": [ @@ -218045,13 +219136,16 @@ "description": "Input properties used for looking up and filtering CodeRepository resources.\n", "properties": { "arn": { - "type": "string" + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Code Repository.\n" }, "codeRepositoryName": { - "type": "string" + "type": "string", + "description": "The name of the Code Repository (must be unique).\n" }, "gitConfig": { - "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig" + "$ref": "#/types/aws:sagemaker/CodeRepositoryGitConfig:CodeRepositoryGitConfig", + "description": "Specifies details about the repository. see Git Config details below.\n" } }, "type": "object" @@ -227017,7 +228111,7 @@ } }, "aws:transfer/user:User": { - "description": "Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` resource.\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooServer = new aws.transfer.Server(\"fooServer\", {\n identityProviderType: \"SERVICE_MANAGED\",\n tags: {\n NAME: \"tf-acc-test-transfer-server\",\n },\n});\nconst fooRole = new aws.iam.Role(\"fooRole\", {assumeRolePolicy: `{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\"Effect\": \"Allow\",\n\t\t\"Principal\": {\n\t\t\t\"Service\": \"transfer.amazonaws.com\"\n\t\t},\n\t\t\"Action\": \"sts:AssumeRole\"\n\t\t}\n\t]\n}\n`});\nconst fooRolePolicy = new aws.iam.RolePolicy(\"fooRolePolicy\", {\n role: fooRole.id,\n policy: `{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"AllowFullAccesstoS3\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": [\n\t\t\t\t\"s3:*\"\n\t\t\t],\n\t\t\t\"Resource\": \"*\"\n\t\t}\n\t]\n}\n`,\n});\nconst fooUser = new aws.transfer.User(\"fooUser\", {\n serverId: fooServer.id,\n userName: \"tftestuser\",\n role: fooRole.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_server = aws.transfer.Server(\"fooServer\",\n identity_provider_type=\"SERVICE_MANAGED\",\n tags={\n \"NAME\": \"tf-acc-test-transfer-server\",\n })\nfoo_role = aws.iam.Role(\"fooRole\", assume_role_policy=\"\"\"{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\"Effect\": \"Allow\",\n\t\t\"Principal\": {\n\t\t\t\"Service\": \"transfer.amazonaws.com\"\n\t\t},\n\t\t\"Action\": \"sts:AssumeRole\"\n\t\t}\n\t]\n}\n\"\"\")\nfoo_role_policy = aws.iam.RolePolicy(\"fooRolePolicy\",\n role=foo_role.id,\n policy=\"\"\"{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"AllowFullAccesstoS3\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": [\n\t\t\t\t\"s3:*\"\n\t\t\t],\n\t\t\t\"Resource\": \"*\"\n\t\t}\n\t]\n}\n\"\"\")\nfoo_user = aws.transfer.User(\"fooUser\",\n server_id=foo_server.id,\n user_name=\"tftestuser\",\n role=foo_role.arn)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var fooServer = new Aws.Transfer.Server(\"fooServer\", new Aws.Transfer.ServerArgs\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n Tags = \n {\n { \"NAME\", \"tf-acc-test-transfer-server\" },\n },\n });\n var fooRole = new Aws.Iam.Role(\"fooRole\", new Aws.Iam.RoleArgs\n {\n AssumeRolePolicy = @\"{\n\t\"\"Version\"\": \"\"2012-10-17\"\",\n\t\"\"Statement\"\": [\n\t\t{\n\t\t\"\"Effect\"\": \"\"Allow\"\",\n\t\t\"\"Principal\"\": {\n\t\t\t\"\"Service\"\": \"\"transfer.amazonaws.com\"\"\n\t\t},\n\t\t\"\"Action\"\": \"\"sts:AssumeRole\"\"\n\t\t}\n\t]\n}\n\",\n });\n var fooRolePolicy = new Aws.Iam.RolePolicy(\"fooRolePolicy\", new Aws.Iam.RolePolicyArgs\n {\n Role = fooRole.Id,\n Policy = @\"{\n\t\"\"Version\"\": \"\"2012-10-17\"\",\n\t\"\"Statement\"\": [\n\t\t{\n\t\t\t\"\"Sid\"\": \"\"AllowFullAccesstoS3\"\",\n\t\t\t\"\"Effect\"\": \"\"Allow\"\",\n\t\t\t\"\"Action\"\": [\n\t\t\t\t\"\"s3:*\"\"\n\t\t\t],\n\t\t\t\"\"Resource\"\": \"\"*\"\"\n\t\t}\n\t]\n}\n\",\n });\n var fooUser = new Aws.Transfer.User(\"fooUser\", new Aws.Transfer.UserArgs\n {\n ServerId = fooServer.Id,\n UserName = \"tftestuser\",\n Role = fooRole.Arn,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooServer, err := transfer.NewServer(ctx, \"fooServer\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"SERVICE_MANAGED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"NAME\": pulumi.String(\"tf-acc-test-transfer-server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRole, err := iam.NewRole(ctx, \"fooRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"\t\\\"Version\\\": \\\"2012-10-17\\\",\\n\", \"\t\\\"Statement\\\": [\\n\", \"\t\t{\\n\", \"\t\t\\\"Effect\\\": \\\"Allow\\\",\\n\", \"\t\t\\\"Principal\\\": {\\n\", \"\t\t\t\\\"Service\\\": \\\"transfer.amazonaws.com\\\"\\n\", \"\t\t},\\n\", \"\t\t\\\"Action\\\": \\\"sts:AssumeRole\\\"\\n\", \"\t\t}\\n\", \"\t]\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"fooRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: fooRole.ID(),\n\t\t\tPolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"\t\\\"Version\\\": \\\"2012-10-17\\\",\\n\", \"\t\\\"Statement\\\": [\\n\", \"\t\t{\\n\", \"\t\t\t\\\"Sid\\\": \\\"AllowFullAccesstoS3\\\",\\n\", \"\t\t\t\\\"Effect\\\": \\\"Allow\\\",\\n\", \"\t\t\t\\\"Action\\\": [\\n\", \"\t\t\t\t\\\"s3:*\\\"\\n\", \"\t\t\t],\\n\", \"\t\t\t\\\"Resource\\\": \\\"*\\\"\\n\", \"\t\t}\\n\", \"\t]\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewUser(ctx, \"fooUser\", \u0026transfer.UserArgs{\n\t\t\tServerId: fooServer.ID(),\n\t\t\tUserName: pulumi.String(\"tftestuser\"),\n\t\t\tRole: fooRole.Arn,\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\n\n## Import\n\nTransfer Users can be imported using the `server_id` and `user_name` separated by `/`.\n\n```sh\n $ pulumi import aws:transfer/user:User bar s-12345678/test-username\n```\n\n ", + "description": "Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `aws.transfer.SshKey` resource.\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooServer = new aws.transfer.Server(\"fooServer\", {\n identityProviderType: \"SERVICE_MANAGED\",\n tags: {\n NAME: \"tf-acc-test-transfer-server\",\n },\n});\nconst fooRole = new aws.iam.Role(\"fooRole\", {assumeRolePolicy: `{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\"Effect\": \"Allow\",\n\t\t\"Principal\": {\n\t\t\t\"Service\": \"transfer.amazonaws.com\"\n\t\t},\n\t\t\"Action\": \"sts:AssumeRole\"\n\t\t}\n\t]\n}\n`});\nconst fooRolePolicy = new aws.iam.RolePolicy(\"fooRolePolicy\", {\n role: fooRole.id,\n policy: `{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"AllowFullAccesstoS3\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": [\n\t\t\t\t\"s3:*\"\n\t\t\t],\n\t\t\t\"Resource\": \"*\"\n\t\t}\n\t]\n}\n`,\n});\nconst fooUser = new aws.transfer.User(\"fooUser\", {\n serverId: fooServer.id,\n userName: \"tftestuser\",\n role: fooRole.arn,\n homeDirectoryType: \"LOGICAL\",\n homeDirectoryMappings: [{\n entry: \"/test.pdf\",\n target: \"/bucket3/test-path/tftestuser.pdf\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_server = aws.transfer.Server(\"fooServer\",\n identity_provider_type=\"SERVICE_MANAGED\",\n tags={\n \"NAME\": \"tf-acc-test-transfer-server\",\n })\nfoo_role = aws.iam.Role(\"fooRole\", assume_role_policy=\"\"\"{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\"Effect\": \"Allow\",\n\t\t\"Principal\": {\n\t\t\t\"Service\": \"transfer.amazonaws.com\"\n\t\t},\n\t\t\"Action\": \"sts:AssumeRole\"\n\t\t}\n\t]\n}\n\"\"\")\nfoo_role_policy = aws.iam.RolePolicy(\"fooRolePolicy\",\n role=foo_role.id,\n policy=\"\"\"{\n\t\"Version\": \"2012-10-17\",\n\t\"Statement\": [\n\t\t{\n\t\t\t\"Sid\": \"AllowFullAccesstoS3\",\n\t\t\t\"Effect\": \"Allow\",\n\t\t\t\"Action\": [\n\t\t\t\t\"s3:*\"\n\t\t\t],\n\t\t\t\"Resource\": \"*\"\n\t\t}\n\t]\n}\n\"\"\")\nfoo_user = aws.transfer.User(\"fooUser\",\n server_id=foo_server.id,\n user_name=\"tftestuser\",\n role=foo_role.arn,\n home_directory_type=\"LOGICAL\",\n home_directory_mappings=[aws.transfer.UserHomeDirectoryMappingArgs(\n entry=\"/test.pdf\",\n target=\"/bucket3/test-path/tftestuser.pdf\",\n )])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var fooServer = new Aws.Transfer.Server(\"fooServer\", new Aws.Transfer.ServerArgs\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n Tags = \n {\n { \"NAME\", \"tf-acc-test-transfer-server\" },\n },\n });\n var fooRole = new Aws.Iam.Role(\"fooRole\", new Aws.Iam.RoleArgs\n {\n AssumeRolePolicy = @\"{\n\t\"\"Version\"\": \"\"2012-10-17\"\",\n\t\"\"Statement\"\": [\n\t\t{\n\t\t\"\"Effect\"\": \"\"Allow\"\",\n\t\t\"\"Principal\"\": {\n\t\t\t\"\"Service\"\": \"\"transfer.amazonaws.com\"\"\n\t\t},\n\t\t\"\"Action\"\": \"\"sts:AssumeRole\"\"\n\t\t}\n\t]\n}\n\",\n });\n var fooRolePolicy = new Aws.Iam.RolePolicy(\"fooRolePolicy\", new Aws.Iam.RolePolicyArgs\n {\n Role = fooRole.Id,\n Policy = @\"{\n\t\"\"Version\"\": \"\"2012-10-17\"\",\n\t\"\"Statement\"\": [\n\t\t{\n\t\t\t\"\"Sid\"\": \"\"AllowFullAccesstoS3\"\",\n\t\t\t\"\"Effect\"\": \"\"Allow\"\",\n\t\t\t\"\"Action\"\": [\n\t\t\t\t\"\"s3:*\"\"\n\t\t\t],\n\t\t\t\"\"Resource\"\": \"\"*\"\"\n\t\t}\n\t]\n}\n\",\n });\n var fooUser = new Aws.Transfer.User(\"fooUser\", new Aws.Transfer.UserArgs\n {\n ServerId = fooServer.Id,\n UserName = \"tftestuser\",\n Role = fooRole.Arn,\n HomeDirectoryType = \"LOGICAL\",\n HomeDirectoryMappings = \n {\n new Aws.Transfer.Inputs.UserHomeDirectoryMappingArgs\n {\n Entry = \"/test.pdf\",\n Target = \"/bucket3/test-path/tftestuser.pdf\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooServer, err := transfer.NewServer(ctx, \"fooServer\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"SERVICE_MANAGED\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"NAME\": pulumi.String(\"tf-acc-test-transfer-server\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooRole, err := iam.NewRole(ctx, \"fooRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"\t\\\"Version\\\": \\\"2012-10-17\\\",\\n\", \"\t\\\"Statement\\\": [\\n\", \"\t\t{\\n\", \"\t\t\\\"Effect\\\": \\\"Allow\\\",\\n\", \"\t\t\\\"Principal\\\": {\\n\", \"\t\t\t\\\"Service\\\": \\\"transfer.amazonaws.com\\\"\\n\", \"\t\t},\\n\", \"\t\t\\\"Action\\\": \\\"sts:AssumeRole\\\"\\n\", \"\t\t}\\n\", \"\t]\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"fooRolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: fooRole.ID(),\n\t\t\tPolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \"\t\\\"Version\\\": \\\"2012-10-17\\\",\\n\", \"\t\\\"Statement\\\": [\\n\", \"\t\t{\\n\", \"\t\t\t\\\"Sid\\\": \\\"AllowFullAccesstoS3\\\",\\n\", \"\t\t\t\\\"Effect\\\": \\\"Allow\\\",\\n\", \"\t\t\t\\\"Action\\\": [\\n\", \"\t\t\t\t\\\"s3:*\\\"\\n\", \"\t\t\t],\\n\", \"\t\t\t\\\"Resource\\\": \\\"*\\\"\\n\", \"\t\t}\\n\", \"\t]\\n\", \"}\\n\")),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewUser(ctx, \"fooUser\", \u0026transfer.UserArgs{\n\t\t\tServerId: fooServer.ID(),\n\t\t\tUserName: pulumi.String(\"tftestuser\"),\n\t\t\tRole: fooRole.Arn,\n\t\t\tHomeDirectoryType: pulumi.String(\"LOGICAL\"),\n\t\t\tHomeDirectoryMappings: transfer.UserHomeDirectoryMappingArray{\n\t\t\t\t\u0026transfer.UserHomeDirectoryMappingArgs{\n\t\t\t\t\tEntry: pulumi.String(\"/test.pdf\"),\n\t\t\t\t\tTarget: pulumi.String(\"/bucket3/test-path/tftestuser.pdf\"),\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\n\n## Import\n\nTransfer Users can be imported using the `server_id` and `user_name` separated by `/`.\n\n```sh\n $ pulumi import aws:transfer/user:User bar s-12345678/test-username\n```\n\n ", "properties": { "arn": { "type": "string", @@ -237566,7 +238660,7 @@ "properties": { "cidrBlock": { "type": "string", - "description": "The CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.\n" + "description": "The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve.\n" }, "filters": { "type": "array", @@ -237585,7 +238679,7 @@ }, "peerCidrBlock": { "type": "string", - "description": "The CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve.\n" + "description": "The primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve.\n" }, "peerOwnerId": { "type": "string", @@ -237632,7 +238726,15 @@ "description": "A configuration block that describes [VPC Peering Connection]\n(https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC.\n" }, "cidrBlock": { - "type": "string" + "type": "string", + "description": "A CIDR block associated to the VPC of the specific VPC Peering Connection.\n" + }, + "cidrBlockSets": { + "type": "array", + "items": { + "$ref": "#/types/aws:ec2/getVpcPeeringConnectionCidrBlockSet:getVpcPeeringConnectionCidrBlockSet" + }, + "description": "List of objects with CIDR blocks of the requester VPC.\n" }, "filters": { "type": "array", @@ -237649,6 +238751,13 @@ "peerCidrBlock": { "type": "string" }, + "peerCidrBlockSets": { + "type": "array", + "items": { + "$ref": "#/types/aws:ec2/getVpcPeeringConnectionPeerCidrBlockSet:getVpcPeeringConnectionPeerCidrBlockSet" + }, + "description": "List of objects with CIDR blocks of the accepter VPC.\n" + }, "peerOwnerId": { "type": "string" }, @@ -237685,9 +238794,11 @@ "required": [ "accepter", "cidrBlock", + "cidrBlockSets", "id", "ownerId", "peerCidrBlock", + "peerCidrBlockSets", "peerOwnerId", "peerRegion", "peerVpcId", @@ -239558,7 +240669,7 @@ }, "authTokenEnabled": { "type": "boolean", - "description": "A flag that enables using an AuthToken (password) when issuing Redis commands.\n" + "description": "Specifies whether an AuthToken (password) is enabled.\n" }, "automaticFailoverEnabled": { "type": "boolean", @@ -239579,6 +240690,10 @@ }, "description": "The identifiers of all the nodes that are part of this replication group.\n" }, + "multiAzEnabled": { + "type": "boolean", + "description": "Specifies whether Multi-AZ Support is enabled for the replication group.\n" + }, "nodeType": { "type": "string", "description": "The cluster node type.\n" @@ -239622,6 +240737,7 @@ "automaticFailoverEnabled", "configurationEndpointAddress", "memberClusters", + "multiAzEnabled", "nodeType", "numberCacheClusters", "port", @@ -241521,6 +242637,120 @@ ] } }, + "aws:imagebuilder/getImage:getImage": { + "description": "Provides details about an Image Builder Image.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Latest\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = pulumi.output(aws.imagebuilder.getImage({\n arn: \"arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.get_image(arn=\"arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = Output.Create(Aws.ImageBuilder.GetImage.InvokeAsync(new Aws.ImageBuilder.GetImageArgs\n {\n Arn = \"arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imagebuilder.LookupImage(ctx, \u0026imagebuilder.LookupImageArgs{\n\t\t\tArn: \"arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getImage.\n", + "properties": { + "arn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the image. The suffix can either be specified with wildcards (`x.x.x`) to fetch the latest build version or a full build version (e.g. `2020.11.26/1`) to fetch an exact version.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the image.\n" + } + }, + "type": "object", + "required": [ + "arn" + ] + }, + "outputs": { + "description": "A collection of values returned by getImage.\n", + "properties": { + "arn": { + "type": "string" + }, + "buildVersionArn": { + "type": "string", + "description": "Build version Amazon Resource Name (ARN) of the image. This will always have the `#.#.#/#` suffix.\n" + }, + "dateCreated": { + "type": "string", + "description": "Date the image was created.\n" + }, + "distributionConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Distribution Configuration.\n" + }, + "enhancedImageMetadataEnabled": { + "type": "boolean", + "description": "Whether additional information about the image being created is collected.\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "imageRecipeArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe.\n" + }, + "imageTestsConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/getImageImageTestsConfiguration:getImageImageTestsConfiguration" + }, + "description": "List of an object with image tests configuration.\n" + }, + "infrastructureConfigurationArn": { + "type": "string", + "description": "Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration.\n" + }, + "name": { + "type": "string", + "description": "Name of the AMI.\n" + }, + "osVersion": { + "type": "string", + "description": "Operating System version of the image.\n" + }, + "outputResources": { + "type": "array", + "items": { + "$ref": "#/types/aws:imagebuilder/getImageOutputResource:getImageOutputResource" + }, + "description": "List of objects with resources created by the image.\n" + }, + "platform": { + "type": "string", + "description": "Platform of the image.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of resource tags for the image.\n" + }, + "version": { + "type": "string", + "description": "Version of the image.\n" + } + }, + "type": "object", + "required": [ + "arn", + "buildVersionArn", + "dateCreated", + "distributionConfigurationArn", + "enhancedImageMetadataEnabled", + "imageRecipeArn", + "imageTestsConfigurations", + "infrastructureConfigurationArn", + "name", + "osVersion", + "outputResources", + "platform", + "tags", + "version", + "id" + ] + } + }, "aws:imagebuilder/getImagePipeline:getImagePipeline": { "description": "Provides details about an Image Builder Image Pipeline.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = pulumi.output(aws.imagebuilder.getImagePipeline({\n arn: \"arn:aws:imagebuilder:us-west-2:aws:image-pipeline/example\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.get_image_pipeline(arn=\"arn:aws:imagebuilder:us-west-2:aws:image-pipeline/example\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = Output.Create(Aws.ImageBuilder.GetImagePipeline.InvokeAsync(new Aws.ImageBuilder.GetImagePipelineArgs\n {\n Arn = \"arn:aws:imagebuilder:us-west-2:aws:image-pipeline/example\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imagebuilder.LookupImagePipeline(ctx, \u0026imagebuilder.LookupImagePipelineArgs{\n\t\t\tArn: \"arn:aws:imagebuilder:us-west-2:aws:image-pipeline/example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -250185,6 +251415,7 @@ "acm": "Acm", "acmpca": "Acmpca", "alb": "Alb", + "amp": "Amp", "apigateway": "ApiGateway", "apigatewayv2": "ApiGatewayV2", "appautoscaling": "AppAutoScaling", diff --git a/provider/go.mod b/provider/go.mod index afb41eb2d9c..c89bf216904 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -3,7 +3,6 @@ module github.com/pulumi/pulumi-aws/provider/v3 go 1.15 require ( - github.com/blang/semver v3.5.1+incompatible github.com/hashicorp/aws-sdk-go-base v0.7.0 github.com/mitchellh/go-homedir v1.1.0 github.com/pulumi/pulumi-terraform-bridge/v2 v2.18.1 @@ -16,5 +15,5 @@ replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20210122131940-c9982cab7fa0 + github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20210129133828-6dc42ff8b9e4 ) diff --git a/provider/go.sum b/provider/go.sum index 9a042b1b322..3cb0c2644df 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -119,8 +119,8 @@ github.com/aws/aws-sdk-go v1.19.39/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= -github.com/aws/aws-sdk-go v1.36.28 h1:JVRN7BZgwQ31SQCBwG5QM445+ynJU0ruKu+miFIijYY= -github.com/aws/aws-sdk-go v1.36.28/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.37.0 h1:GzFnhOIsrGyQ69s7VgqtrG2BG8v7X7vwB3Xpbd/DBBk= +github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/beevik/etree v1.1.0 h1:T0xke/WvNtMoCqgzPhkX2r4rjY3GDZFi+FjpRZY2Jbs= github.com/beevik/etree v1.1.0/go.mod h1:r8Aw8JqVegEf0w2fDnATrX9VpkMcyFeM0FhwO62wh+A= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -560,8 +560,8 @@ github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Di github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e h1:jl43csgF3BSlNRmjo+TGgjW/uXk9h7+NoR3doKQ0BT4= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e/go.mod h1:JBItawj+j8Ssla5Ib6BC/W9VQkOucBfnX7VRtyx1vw8= -github.com/pulumi/terraform-provider-aws v1.38.1-0.20210122131940-c9982cab7fa0 h1:bu5hh5Yy85VF17s8KBAlrKrJ3nkat1l0IeUlIHXHYf8= -github.com/pulumi/terraform-provider-aws v1.38.1-0.20210122131940-c9982cab7fa0/go.mod h1:o+xrOD3SDEnsIz20+R87MMiwBL0eI5zvyzv0GxVaRk8= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20210129133828-6dc42ff8b9e4 h1:JPIFUU/+GkmeDYZ8yvuSWRCBK/3Gab49ZYj5/Bi65t0= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20210129133828-6dc42ff8b9e4/go.mod h1:2FJRHL/0yjp+iYXWoW2v4U80Zkz+mGHsHOB/Jdbw7AI= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= diff --git a/provider/resources.go b/provider/resources.go index 87862fc8667..d13e7db6a88 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -44,6 +44,7 @@ const ( acmMod = "Acm" // AWS Certificate Manager acmpcaMod = "Acmpca" // AWS Private Certificate Authority accessAnalyzerMod = "AccessAnalyzer" // Access Analyzer + ampMod = "Amp" // Amp appsyncMod = "AppSync" // AppSync appmeshMod = "AppMesh" // AppMesh apigatewayMod = "ApiGateway" // API Gateway @@ -1970,6 +1971,7 @@ func Provider() tfbridge.ProviderInfo { "aws_sagemaker_feature_group": {Tok: awsResource(sagemakerMod, "FeatureGroup")}, "aws_sagemaker_image_version": {Tok: awsResource(sagemakerMod, "ImageVersion")}, "aws_sagemaker_user_profile": {Tok: awsResource(sagemakerMod, "UserProfile")}, + "aws_sagemaker_app_image_config": {Tok: awsResource(sagemakerMod, "AppImageConfig")}, "aws_sagemaker_notebook_instance_lifecycle_configuration": { Tok: awsResource(sagemakerMod, "NotebookInstanceLifecycleConfiguration"), }, @@ -2369,6 +2371,7 @@ func Provider() tfbridge.ProviderInfo { }, // Imagebuilder + "aws_imagebuilder_image": {Tok: awsResource(imageBuilderMod, "Image")}, "aws_imagebuilder_component": {Tok: awsResource(imageBuilderMod, "Component")}, "aws_imagebuilder_image_pipeline": {Tok: awsResource(imageBuilderMod, "ImagePipeline")}, "aws_imagebuilder_image_recipe": {Tok: awsResource(imageBuilderMod, "ImageRecipe")}, @@ -2437,6 +2440,9 @@ func Provider() tfbridge.ProviderInfo { "aws_ssoadmin_permission_set": {Tok: awsResource(ssoAdminMod, "PermissionSet")}, "aws_ssoadmin_permission_set_inline_policy": {Tok: awsResource(ssoAdminMod, "PermissionSetInlinePolicy")}, "aws_ssoadmin_account_assignment": {Tok: awsResource(ssoAdminMod, "AccountAssignment")}, + + // AMP (Managed Prometheus) + "aws_prometheus_workspace": {Tok: awsResource(ampMod, "Workspace")}, }, ExtraTypes: map[string]schema.ComplexTypeSpec{ "aws:index/Region:Region": { @@ -3821,6 +3827,7 @@ func Provider() tfbridge.ProviderInfo { }, "aws_imagebuilder_image_pipeline": {Tok: awsDataSource(imageBuilderMod, "getImagePipeline")}, "aws_imagebuilder_image_recipe": {Tok: awsDataSource(imageBuilderMod, "getImageRecipe")}, + "aws_imagebuilder_image": {Tok: awsDataSource(imageBuilderMod, "getImage")}, //signer "aws_signer_signing_job": {Tok: awsDataSource(signerMod, "getSigningJob")}, "aws_signer_signing_profile": {Tok: awsDataSource(signerMod, "getSigningProfile")}, diff --git a/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardResult.cs b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardResult.cs new file mode 100644 index 00000000000..23589a42590 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardResult + { + public readonly ImmutableArray Stickinesses; + public readonly ImmutableArray TargetGroups; + + [OutputConstructor] + private GetListenerDefaultActionForwardResult( + ImmutableArray stickinesses, + + ImmutableArray targetGroups) + { + Stickinesses = stickinesses; + TargetGroups = targetGroups; + } + } +} diff --git a/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardStickinessResult.cs b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardStickinessResult.cs new file mode 100644 index 00000000000..55e8bd598a3 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardStickinessResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardStickinessResult + { + public readonly int Duration; + public readonly bool Enabled; + + [OutputConstructor] + private GetListenerDefaultActionForwardStickinessResult( + int duration, + + bool enabled) + { + Duration = duration; + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs new file mode 100644 index 00000000000..c000554c2a5 --- /dev/null +++ b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Alb.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardTargetGroupResult + { + /// + /// The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + /// + public readonly string Arn; + public readonly int Weight; + + [OutputConstructor] + private GetListenerDefaultActionForwardTargetGroupResult( + string arn, + + int weight) + { + Arn = arn; + Weight = weight; + } + } +} diff --git a/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionResult.cs b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionResult.cs index b497a0cd260..72b3696522a 100644 --- a/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionResult.cs +++ b/sdk/dotnet/Alb/Outputs/GetListenerDefaultActionResult.cs @@ -16,6 +16,7 @@ public sealed class GetListenerDefaultActionResult public readonly ImmutableArray AuthenticateCognitos; public readonly ImmutableArray AuthenticateOidcs; public readonly ImmutableArray FixedResponses; + public readonly ImmutableArray Forwards; public readonly int Order; public readonly ImmutableArray Redirects; public readonly string TargetGroupArn; @@ -29,6 +30,8 @@ private GetListenerDefaultActionResult( ImmutableArray fixedResponses, + ImmutableArray forwards, + int order, ImmutableArray redirects, @@ -40,6 +43,7 @@ private GetListenerDefaultActionResult( AuthenticateCognitos = authenticateCognitos; AuthenticateOidcs = authenticateOidcs; FixedResponses = fixedResponses; + Forwards = forwards; Order = order; Redirects = redirects; TargetGroupArn = targetGroupArn; diff --git a/sdk/dotnet/Amp/README.md b/sdk/dotnet/Amp/README.md new file mode 100644 index 00000000000..9d868f18f20 --- /dev/null +++ b/sdk/dotnet/Amp/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources. diff --git a/sdk/dotnet/Amp/Workspace.cs b/sdk/dotnet/Amp/Workspace.cs new file mode 100644 index 00000000000..c9330db8cb9 --- /dev/null +++ b/sdk/dotnet/Amp/Workspace.cs @@ -0,0 +1,123 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Amp +{ + /// + /// ## Import + /// + /// AMP Workspaces can be imported using the identifier, e.g. + /// + /// ```sh + /// $ pulumi import aws:amp/workspace:Workspace demo ws-C6DCB907-F2D7-4D96-957B-66691F865D8B + /// ``` + /// + [AwsResourceType("aws:amp/workspace:Workspace")] + public partial class Workspace : Pulumi.CustomResource + { + /// + /// The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + /// + [Output("alias")] + public Output Alias { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the workspace. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Prometheus endpoint available for this workspace. + /// + [Output("prometheusEndpoint")] + public Output PrometheusEndpoint { get; private set; } = null!; + + + /// + /// Create a Workspace resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Workspace(string name, WorkspaceArgs? args = null, CustomResourceOptions? options = null) + : base("aws:amp/workspace:Workspace", name, args ?? new WorkspaceArgs(), MakeResourceOptions(options, "")) + { + } + + private Workspace(string name, Input id, WorkspaceState? state = null, CustomResourceOptions? options = null) + : base("aws:amp/workspace:Workspace", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Workspace resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Workspace Get(string name, Input id, WorkspaceState? state = null, CustomResourceOptions? options = null) + { + return new Workspace(name, id, state, options); + } + } + + public sealed class WorkspaceArgs : Pulumi.ResourceArgs + { + /// + /// The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + /// + [Input("alias")] + public Input? Alias { get; set; } + + public WorkspaceArgs() + { + } + } + + public sealed class WorkspaceState : Pulumi.ResourceArgs + { + /// + /// The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + /// + [Input("alias")] + public Input? Alias { get; set; } + + /// + /// Amazon Resource Name (ARN) of the workspace. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Prometheus endpoint available for this workspace. + /// + [Input("prometheusEndpoint")] + public Input? PrometheusEndpoint { get; set; } + + public WorkspaceState() + { + } + } +} diff --git a/sdk/dotnet/ApiGatewayV2/Api.cs b/sdk/dotnet/ApiGatewayV2/Api.cs index d6366daaafb..f1c2cf6b0bd 100644 --- a/sdk/dotnet/ApiGatewayV2/Api.cs +++ b/sdk/dotnet/ApiGatewayV2/Api.cs @@ -65,7 +65,7 @@ namespace Pulumi.Aws.ApiGatewayV2 public partial class Api : Pulumi.CustomResource { /// - /// The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + /// The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. /// [Output("apiEndpoint")] public Output ApiEndpoint { get; private set; } = null!; @@ -314,7 +314,7 @@ public ApiArgs() public sealed class ApiState : Pulumi.ResourceArgs { /// - /// The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + /// The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. /// [Input("apiEndpoint")] public Input? ApiEndpoint { get; set; } diff --git a/sdk/dotnet/AppAutoScaling/Policy.cs b/sdk/dotnet/AppAutoScaling/Policy.cs index 6bb2f6b8ede..83096e40572 100644 --- a/sdk/dotnet/AppAutoScaling/Policy.cs +++ b/sdk/dotnet/AppAutoScaling/Policy.cs @@ -152,6 +152,43 @@ namespace Pulumi.Aws.AppAutoScaling /// /// } /// ``` + /// ### MSK / Kafka Autoscaling + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var mskTarget = new Aws.AppAutoScaling.Target("mskTarget", new Aws.AppAutoScaling.TargetArgs + /// { + /// ServiceNamespace = "kafka", + /// ScalableDimension = "kafka:broker-storage:VolumeSize", + /// ResourceId = aws_msk_cluster.Example.Arn, + /// MinCapacity = 1, + /// MaxCapacity = 8, + /// }); + /// var targets = new Aws.AppAutoScaling.Policy("targets", new Aws.AppAutoScaling.PolicyArgs + /// { + /// ServiceNamespace = mskTarget.ServiceNamespace, + /// ScalableDimension = mskTarget.ScalableDimension, + /// ResourceId = mskTarget.ResourceId, + /// PolicyType = "TargetTrackingScaling", + /// TargetTrackingScalingPolicyConfiguration = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationArgs + /// { + /// PredefinedMetricSpecification = new Aws.AppAutoScaling.Inputs.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs + /// { + /// PredefinedMetricType = "KafkaBrokerStorageUtilization", + /// }, + /// TargetValue = 55, + /// }, + /// }); + /// } + /// + /// } + /// ``` /// /// ## Import /// diff --git a/sdk/dotnet/AppAutoScaling/Target.cs b/sdk/dotnet/AppAutoScaling/Target.cs index 1ae266750fe..c1131d3aa9e 100644 --- a/sdk/dotnet/AppAutoScaling/Target.cs +++ b/sdk/dotnet/AppAutoScaling/Target.cs @@ -103,6 +103,28 @@ namespace Pulumi.Aws.AppAutoScaling /// /// } /// ``` + /// ### MSK / Kafka Autoscaling + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var mskTarget = new Aws.AppAutoScaling.Target("mskTarget", new Aws.AppAutoScaling.TargetArgs + /// { + /// MaxCapacity = 8, + /// MinCapacity = 1, + /// ResourceId = aws_msk_cluster.Example.Arn, + /// ScalableDimension = "kafka:broker-storage:VolumeSize", + /// ServiceNamespace = "kafka", + /// }); + /// } + /// + /// } + /// ``` /// /// ## Import /// diff --git a/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardResult.cs b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardResult.cs new file mode 100644 index 00000000000..ff42d61a51d --- /dev/null +++ b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ApplicationLoadBalancing.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardResult + { + public readonly ImmutableArray Stickinesses; + public readonly ImmutableArray TargetGroups; + + [OutputConstructor] + private GetListenerDefaultActionForwardResult( + ImmutableArray stickinesses, + + ImmutableArray targetGroups) + { + Stickinesses = stickinesses; + TargetGroups = targetGroups; + } + } +} diff --git a/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardStickinessResult.cs b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardStickinessResult.cs new file mode 100644 index 00000000000..3358d85804f --- /dev/null +++ b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardStickinessResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ApplicationLoadBalancing.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardStickinessResult + { + public readonly int Duration; + public readonly bool Enabled; + + [OutputConstructor] + private GetListenerDefaultActionForwardStickinessResult( + int duration, + + bool enabled) + { + Duration = duration; + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs new file mode 100644 index 00000000000..d4906b42b58 --- /dev/null +++ b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ApplicationLoadBalancing.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardTargetGroupResult + { + /// + /// The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + /// + public readonly string Arn; + public readonly int Weight; + + [OutputConstructor] + private GetListenerDefaultActionForwardTargetGroupResult( + string arn, + + int weight) + { + Arn = arn; + Weight = weight; + } + } +} diff --git a/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionResult.cs b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionResult.cs index 923669a8bb8..f2a3db8f599 100644 --- a/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionResult.cs +++ b/sdk/dotnet/ApplicationLoadBalancing/Outputs/GetListenerDefaultActionResult.cs @@ -16,6 +16,7 @@ public sealed class GetListenerDefaultActionResult public readonly ImmutableArray AuthenticateCognitos; public readonly ImmutableArray AuthenticateOidcs; public readonly ImmutableArray FixedResponses; + public readonly ImmutableArray Forwards; public readonly int Order; public readonly ImmutableArray Redirects; public readonly string TargetGroupArn; @@ -29,6 +30,8 @@ private GetListenerDefaultActionResult( ImmutableArray fixedResponses, + ImmutableArray forwards, + int order, ImmutableArray redirects, @@ -40,6 +43,7 @@ private GetListenerDefaultActionResult( AuthenticateCognitos = authenticateCognitos; AuthenticateOidcs = authenticateOidcs; FixedResponses = fixedResponses; + Forwards = forwards; Order = order; Redirects = redirects; TargetGroupArn = targetGroupArn; diff --git a/sdk/dotnet/CodeArtifact/Domain.cs b/sdk/dotnet/CodeArtifact/Domain.cs index fbc74979159..5b82c9bc5c9 100644 --- a/sdk/dotnet/CodeArtifact/Domain.cs +++ b/sdk/dotnet/CodeArtifact/Domain.cs @@ -22,14 +22,9 @@ namespace Pulumi.Aws.CodeArtifact /// { /// public MyStack() /// { - /// var exampleKey = new Aws.Kms.Key("exampleKey", new Aws.Kms.KeyArgs - /// { - /// Description = "domain key", - /// }); - /// var exampleDomain = new Aws.CodeArtifact.Domain("exampleDomain", new Aws.CodeArtifact.DomainArgs + /// var example = new Aws.CodeArtifact.Domain("example", new Aws.CodeArtifact.DomainArgs /// { /// Domain = "example", - /// EncryptionKey = exampleKey.Arn, /// }); /// } /// @@ -72,7 +67,7 @@ public partial class Domain : Pulumi.CustomResource public Output DomainName { get; private set; } = null!; /// - /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. /// [Output("encryptionKey")] public Output EncryptionKey { get; private set; } = null!; @@ -148,10 +143,10 @@ public sealed class DomainArgs : Pulumi.ResourceArgs public Input DomainName { get; set; } = null!; /// - /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. /// - [Input("encryptionKey", required: true)] - public Input EncryptionKey { get; set; } = null!; + [Input("encryptionKey")] + public Input? EncryptionKey { get; set; } [Input("tags")] private InputMap? _tags; @@ -197,7 +192,7 @@ public sealed class DomainState : Pulumi.ResourceArgs public Input? DomainName { get; set; } /// - /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + /// The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. /// [Input("encryptionKey")] public Input? EncryptionKey { get; set; } diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index d54d27bfcde..42e02e71aa2 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -167,6 +167,7 @@ public class Endpoints public string? Elastictranscoder { get; set; } = null!; public string? Elb { get; set; } = null!; public string? Emr { get; set; } = null!; + public string? Emrcontainers { get; set; } = null!; public string? Es { get; set; } = null!; public string? Firehose { get; set; } = null!; public string? Fms { get; set; } = null!; diff --git a/sdk/dotnet/Ebs/Volume.cs b/sdk/dotnet/Ebs/Volume.cs index 00679c85a96..63e3400bc07 100644 --- a/sdk/dotnet/Ebs/Volume.cs +++ b/sdk/dotnet/Ebs/Volume.cs @@ -36,7 +36,7 @@ namespace Pulumi.Aws.Ebs /// } /// ``` /// - /// > **NOTE**: One of `size` or `snapshot_id` is required when specifying an EBS volume + /// > **NOTE**: At least one of `size` or `snapshot_id` is required when specifying an EBS volume /// /// ## Import /// diff --git a/sdk/dotnet/Ec2/GetVpcPeeringConnection.cs b/sdk/dotnet/Ec2/GetVpcPeeringConnection.cs index bc5a6a9d9b0..fc10e0884bc 100644 --- a/sdk/dotnet/Ec2/GetVpcPeeringConnection.cs +++ b/sdk/dotnet/Ec2/GetVpcPeeringConnection.cs @@ -59,7 +59,7 @@ public static Task InvokeAsync(GetVpcPeeringConne public sealed class GetVpcPeeringConnectionArgs : Pulumi.InvokeArgs { /// - /// The CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + /// The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. /// [Input("cidrBlock")] public string? CidrBlock { get; set; } @@ -89,7 +89,7 @@ public List Filters public string? OwnerId { get; set; } /// - /// The CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. + /// The primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. /// [Input("peerCidrBlock")] public string? PeerCidrBlock { get; set; } @@ -157,11 +157,22 @@ public sealed class GetVpcPeeringConnectionResult /// (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC. /// public readonly ImmutableDictionary Accepter; + /// + /// A CIDR block associated to the VPC of the specific VPC Peering Connection. + /// public readonly string CidrBlock; + /// + /// List of objects with CIDR blocks of the requester VPC. + /// + public readonly ImmutableArray CidrBlockSets; public readonly ImmutableArray Filters; public readonly string Id; public readonly string OwnerId; public readonly string PeerCidrBlock; + /// + /// List of objects with CIDR blocks of the accepter VPC. + /// + public readonly ImmutableArray PeerCidrBlockSets; public readonly string PeerOwnerId; public readonly string PeerRegion; public readonly string PeerVpcId; @@ -181,6 +192,8 @@ private GetVpcPeeringConnectionResult( string cidrBlock, + ImmutableArray cidrBlockSets, + ImmutableArray filters, string id, @@ -189,6 +202,8 @@ private GetVpcPeeringConnectionResult( string peerCidrBlock, + ImmutableArray peerCidrBlockSets, + string peerOwnerId, string peerRegion, @@ -207,10 +222,12 @@ private GetVpcPeeringConnectionResult( { Accepter = accepter; CidrBlock = cidrBlock; + CidrBlockSets = cidrBlockSets; Filters = filters; Id = id; OwnerId = ownerId; PeerCidrBlock = peerCidrBlock; + PeerCidrBlockSets = peerCidrBlockSets; PeerOwnerId = peerOwnerId; PeerRegion = peerRegion; PeerVpcId = peerVpcId; diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsArgs.cs index 3102ed6277f..45d20b4b1cb 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsArgs.cs @@ -47,7 +47,7 @@ public sealed class LaunchTemplateBlockDeviceMappingEbsArgs : Pulumi.ResourceArg public Input? SnapshotId { get; set; } /// - /// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + /// The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. /// [Input("throughput")] public Input? Throughput { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsGetArgs.cs index df1aa016201..4a3d6ed96b9 100644 --- a/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/LaunchTemplateBlockDeviceMappingEbsGetArgs.cs @@ -47,7 +47,7 @@ public sealed class LaunchTemplateBlockDeviceMappingEbsGetArgs : Pulumi.Resource public Input? SnapshotId { get; set; } /// - /// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + /// The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. /// [Input("throughput")] public Input? Throughput { get; set; } diff --git a/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionCidrBlockSetResult.cs b/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionCidrBlockSetResult.cs new file mode 100644 index 00000000000..0eecd18fe82 --- /dev/null +++ b/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionCidrBlockSetResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ec2.Outputs +{ + + [OutputType] + public sealed class GetVpcPeeringConnectionCidrBlockSetResult + { + /// + /// The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + /// + public readonly string CidrBlock; + + [OutputConstructor] + private GetVpcPeeringConnectionCidrBlockSetResult(string cidrBlock) + { + CidrBlock = cidrBlock; + } + } +} diff --git a/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionPeerCidrBlockSetResult.cs b/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionPeerCidrBlockSetResult.cs new file mode 100644 index 00000000000..8849e65c711 --- /dev/null +++ b/sdk/dotnet/Ec2/Outputs/GetVpcPeeringConnectionPeerCidrBlockSetResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Ec2.Outputs +{ + + [OutputType] + public sealed class GetVpcPeeringConnectionPeerCidrBlockSetResult + { + /// + /// The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + /// + public readonly string CidrBlock; + + [OutputConstructor] + private GetVpcPeeringConnectionPeerCidrBlockSetResult(string cidrBlock) + { + CidrBlock = cidrBlock; + } + } +} diff --git a/sdk/dotnet/Ec2/Outputs/LaunchTemplateBlockDeviceMappingEbs.cs b/sdk/dotnet/Ec2/Outputs/LaunchTemplateBlockDeviceMappingEbs.cs index 1c8c0642394..1a40f41f433 100644 --- a/sdk/dotnet/Ec2/Outputs/LaunchTemplateBlockDeviceMappingEbs.cs +++ b/sdk/dotnet/Ec2/Outputs/LaunchTemplateBlockDeviceMappingEbs.cs @@ -38,7 +38,7 @@ public sealed class LaunchTemplateBlockDeviceMappingEbs /// public readonly string? SnapshotId; /// - /// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + /// The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. /// public readonly int? Throughput; /// diff --git a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs index 318b77dab69..3860817ba47 100644 --- a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs @@ -64,7 +64,7 @@ public sealed class GetReplicationGroupResult /// public readonly string Arn; /// - /// A flag that enables using an AuthToken (password) when issuing Redis commands. + /// Specifies whether an AuthToken (password) is enabled. /// public readonly bool AuthTokenEnabled; /// @@ -84,6 +84,10 @@ public sealed class GetReplicationGroupResult /// public readonly ImmutableArray MemberClusters; /// + /// Specifies whether Multi-AZ Support is enabled for the replication group. + /// + public readonly bool MultiAzEnabled; + /// /// The cluster node type. /// public readonly string NodeType; @@ -131,6 +135,8 @@ private GetReplicationGroupResult( ImmutableArray memberClusters, + bool multiAzEnabled, + string nodeType, int numberCacheClusters, @@ -155,6 +161,7 @@ private GetReplicationGroupResult( ConfigurationEndpointAddress = configurationEndpointAddress; Id = id; MemberClusters = memberClusters; + MultiAzEnabled = multiAzEnabled; NodeType = nodeType; NumberCacheClusters = numberCacheClusters; Port = port; diff --git a/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeArgs.cs b/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeArgs.cs index a86c4afc46a..d0901d945e6 100644 --- a/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeArgs.cs +++ b/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeArgs.cs @@ -19,7 +19,7 @@ public sealed class ReplicationGroupClusterModeArgs : Pulumi.ResourceArgs public Input NumNodeGroups { get; set; } = null!; /// - /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. /// [Input("replicasPerNodeGroup", required: true)] public Input ReplicasPerNodeGroup { get; set; } = null!; diff --git a/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeGetArgs.cs b/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeGetArgs.cs index 270faf09286..5ec3b12b4c1 100644 --- a/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeGetArgs.cs +++ b/sdk/dotnet/ElastiCache/Inputs/ReplicationGroupClusterModeGetArgs.cs @@ -19,7 +19,7 @@ public sealed class ReplicationGroupClusterModeGetArgs : Pulumi.ResourceArgs public Input NumNodeGroups { get; set; } = null!; /// - /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. /// [Input("replicasPerNodeGroup", required: true)] public Input ReplicasPerNodeGroup { get; set; } = null!; diff --git a/sdk/dotnet/ElastiCache/Outputs/ReplicationGroupClusterMode.cs b/sdk/dotnet/ElastiCache/Outputs/ReplicationGroupClusterMode.cs index 385b67fd1ae..0946d291362 100644 --- a/sdk/dotnet/ElastiCache/Outputs/ReplicationGroupClusterMode.cs +++ b/sdk/dotnet/ElastiCache/Outputs/ReplicationGroupClusterMode.cs @@ -18,7 +18,7 @@ public sealed class ReplicationGroupClusterMode /// public readonly int NumNodeGroups; /// - /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + /// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. /// public readonly int ReplicasPerNodeGroup; diff --git a/sdk/dotnet/ElastiCache/ReplicationGroup.cs b/sdk/dotnet/ElastiCache/ReplicationGroup.cs index a486fc9e656..1d2247f494c 100644 --- a/sdk/dotnet/ElastiCache/ReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/ReplicationGroup.cs @@ -212,7 +212,7 @@ public partial class ReplicationGroup : Pulumi.CustomResource public Output ConfigurationEndpointAddress { get; private set; } = null!; /// - /// The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + /// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. /// [Output("engine")] public Output Engine { get; private set; } = null!; @@ -249,6 +249,12 @@ public partial class ReplicationGroup : Pulumi.CustomResource [Output("memberClusters")] public Output> MemberClusters { get; private set; } = null!; + /// + /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// + [Output("multiAzEnabled")] + public Output MultiAzEnabled { get; private set; } = null!; + /// /// The compute and memory capacity of the nodes in the node group. /// @@ -460,7 +466,7 @@ public InputList AvailabilityZones public Input? ClusterMode { get; set; } /// - /// The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + /// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. /// [Input("engine")] public Input? Engine { get; set; } @@ -491,6 +497,12 @@ public InputList AvailabilityZones [Input("maintenanceWindow")] public Input? MaintenanceWindow { get; set; } + /// + /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// + [Input("multiAzEnabled")] + public Input? MultiAzEnabled { get; set; } + /// /// The compute and memory capacity of the nodes in the node group. /// @@ -693,7 +705,7 @@ public InputList AvailabilityZones public Input? ConfigurationEndpointAddress { get; set; } /// - /// The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + /// The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. /// [Input("engine")] public Input? Engine { get; set; } @@ -736,6 +748,12 @@ public InputList MemberClusters set => _memberClusters = value; } + /// + /// Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + /// + [Input("multiAzEnabled")] + public Input? MultiAzEnabled { get; set; } + /// /// The compute and memory capacity of the nodes in the node group. /// diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardResult.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardResult.cs new file mode 100644 index 00000000000..db35dccf99f --- /dev/null +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ElasticLoadBalancingV2.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardResult + { + public readonly ImmutableArray Stickinesses; + public readonly ImmutableArray TargetGroups; + + [OutputConstructor] + private GetListenerDefaultActionForwardResult( + ImmutableArray stickinesses, + + ImmutableArray targetGroups) + { + Stickinesses = stickinesses; + TargetGroups = targetGroups; + } + } +} diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardStickinessResult.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardStickinessResult.cs new file mode 100644 index 00000000000..f0631aa3064 --- /dev/null +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardStickinessResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ElasticLoadBalancingV2.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardStickinessResult + { + public readonly int Duration; + public readonly bool Enabled; + + [OutputConstructor] + private GetListenerDefaultActionForwardStickinessResult( + int duration, + + bool enabled) + { + Duration = duration; + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs new file mode 100644 index 00000000000..999868fb14c --- /dev/null +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ElasticLoadBalancingV2.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardTargetGroupResult + { + /// + /// The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + /// + public readonly string Arn; + public readonly int Weight; + + [OutputConstructor] + private GetListenerDefaultActionForwardTargetGroupResult( + string arn, + + int weight) + { + Arn = arn; + Weight = weight; + } + } +} diff --git a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionResult.cs b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionResult.cs index 5ce4bd81d01..48fdfb7039f 100644 --- a/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionResult.cs +++ b/sdk/dotnet/ElasticLoadBalancingV2/Outputs/GetListenerDefaultActionResult.cs @@ -16,6 +16,7 @@ public sealed class GetListenerDefaultActionResult public readonly ImmutableArray AuthenticateCognitos; public readonly ImmutableArray AuthenticateOidcs; public readonly ImmutableArray FixedResponses; + public readonly ImmutableArray Forwards; public readonly int Order; public readonly ImmutableArray Redirects; public readonly string TargetGroupArn; @@ -29,6 +30,8 @@ private GetListenerDefaultActionResult( ImmutableArray fixedResponses, + ImmutableArray forwards, + int order, ImmutableArray redirects, @@ -40,6 +43,7 @@ private GetListenerDefaultActionResult( AuthenticateCognitos = authenticateCognitos; AuthenticateOidcs = authenticateOidcs; FixedResponses = fixedResponses; + Forwards = forwards; Order = order; Redirects = redirects; TargetGroupArn = targetGroupArn; diff --git a/sdk/dotnet/ImageBuilder/GetImage.cs b/sdk/dotnet/ImageBuilder/GetImage.cs new file mode 100644 index 00000000000..5610031301b --- /dev/null +++ b/sdk/dotnet/ImageBuilder/GetImage.cs @@ -0,0 +1,182 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder +{ + public static class GetImage + { + /// + /// Provides details about an Image Builder Image. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// ### Latest + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = Output.Create(Aws.ImageBuilder.GetImage.InvokeAsync(new Aws.ImageBuilder.GetImageArgs + /// { + /// Arn = "arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x", + /// })); + /// } + /// + /// } + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetImageArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("aws:imagebuilder/getImage:getImage", args ?? new GetImageArgs(), options.WithVersion()); + } + + + public sealed class GetImageArgs : Pulumi.InvokeArgs + { + /// + /// Amazon Resource Name (ARN) of the image. The suffix can either be specified with wildcards (`x.x.x`) to fetch the latest build version or a full build version (e.g. `2020.11.26/1`) to fetch an exact version. + /// + [Input("arn", required: true)] + public string Arn { get; set; } = null!; + + [Input("tags")] + private Dictionary? _tags; + + /// + /// Key-value map of resource tags for the image. + /// + public Dictionary Tags + { + get => _tags ?? (_tags = new Dictionary()); + set => _tags = value; + } + + public GetImageArgs() + { + } + } + + + [OutputType] + public sealed class GetImageResult + { + public readonly string Arn; + /// + /// Build version Amazon Resource Name (ARN) of the image. This will always have the `#.#.#/#` suffix. + /// + public readonly string BuildVersionArn; + /// + /// Date the image was created. + /// + public readonly string DateCreated; + /// + /// Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + /// + public readonly string DistributionConfigurationArn; + /// + /// Whether additional information about the image being created is collected. + /// + public readonly bool EnhancedImageMetadataEnabled; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + /// + public readonly string ImageRecipeArn; + /// + /// List of an object with image tests configuration. + /// + public readonly ImmutableArray ImageTestsConfigurations; + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + /// + public readonly string InfrastructureConfigurationArn; + /// + /// Name of the AMI. + /// + public readonly string Name; + /// + /// Operating System version of the image. + /// + public readonly string OsVersion; + /// + /// List of objects with resources created by the image. + /// + public readonly ImmutableArray OutputResources; + /// + /// Platform of the image. + /// + public readonly string Platform; + /// + /// Key-value map of resource tags for the image. + /// + public readonly ImmutableDictionary Tags; + /// + /// Version of the image. + /// + public readonly string Version; + + [OutputConstructor] + private GetImageResult( + string arn, + + string buildVersionArn, + + string dateCreated, + + string distributionConfigurationArn, + + bool enhancedImageMetadataEnabled, + + string id, + + string imageRecipeArn, + + ImmutableArray imageTestsConfigurations, + + string infrastructureConfigurationArn, + + string name, + + string osVersion, + + ImmutableArray outputResources, + + string platform, + + ImmutableDictionary tags, + + string version) + { + Arn = arn; + BuildVersionArn = buildVersionArn; + DateCreated = dateCreated; + DistributionConfigurationArn = distributionConfigurationArn; + EnhancedImageMetadataEnabled = enhancedImageMetadataEnabled; + Id = id; + ImageRecipeArn = imageRecipeArn; + ImageTestsConfigurations = imageTestsConfigurations; + InfrastructureConfigurationArn = infrastructureConfigurationArn; + Name = name; + OsVersion = osVersion; + OutputResources = outputResources; + Platform = platform; + Tags = tags; + Version = version; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Image.cs b/sdk/dotnet/ImageBuilder/Image.cs new file mode 100644 index 00000000000..f5f4f39c226 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Image.cs @@ -0,0 +1,314 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder +{ + /// + /// Manages an Image Builder Image. + /// + /// ## Example Usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = new Aws.ImageBuilder.Image("example", new Aws.ImageBuilder.ImageArgs + /// { + /// DistributionConfigurationArn = aws_imagebuilder_distribution_configuration.Example.Arn, + /// ImageRecipeArn = aws_imagebuilder_image_recipe.Example.Arn, + /// InfrastructureConfigurationArn = aws_imagebuilder_infrastructure_configuration.Example.Arn, + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// `aws_imagebuilder_image` resources can be imported using the Amazon Resource Name (ARN), e.g. + /// + /// ```sh + /// $ pulumi import aws:imagebuilder/image:Image example arn:aws:imagebuilder:us-east-1:123456789012:image/example/1.0.0/1 + /// ``` + /// + [AwsResourceType("aws:imagebuilder/image:Image")] + public partial class Image : Pulumi.CustomResource + { + /// + /// Amazon Resource Name (ARN) of the image. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// Date the image was created. + /// + [Output("dateCreated")] + public Output DateCreated { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + /// + [Output("distributionConfigurationArn")] + public Output DistributionConfigurationArn { get; private set; } = null!; + + /// + /// Whether additional information about the image being created is collected. Defaults to `true`. + /// + [Output("enhancedImageMetadataEnabled")] + public Output EnhancedImageMetadataEnabled { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + /// + [Output("imageRecipeArn")] + public Output ImageRecipeArn { get; private set; } = null!; + + /// + /// Configuration block with image tests configuration. Detailed below. + /// + [Output("imageTestsConfiguration")] + public Output ImageTestsConfiguration { get; private set; } = null!; + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + /// + [Output("infrastructureConfigurationArn")] + public Output InfrastructureConfigurationArn { get; private set; } = null!; + + /// + /// Name of the AMI. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Operating System version of the image. + /// + [Output("osVersion")] + public Output OsVersion { get; private set; } = null!; + + /// + /// List of objects with resources created by the image. + /// + [Output("outputResources")] + public Output> OutputResources { get; private set; } = null!; + + /// + /// Platform of the image. + /// + [Output("platform")] + public Output Platform { get; private set; } = null!; + + /// + /// Key-value map of resource tags for the Image Builder Image. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// Version of the image. + /// + [Output("version")] + public Output Version { get; private set; } = null!; + + + /// + /// Create a Image resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public Image(string name, ImageArgs args, CustomResourceOptions? options = null) + : base("aws:imagebuilder/image:Image", name, args ?? new ImageArgs(), MakeResourceOptions(options, "")) + { + } + + private Image(string name, Input id, ImageState? state = null, CustomResourceOptions? options = null) + : base("aws:imagebuilder/image:Image", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing Image resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static Image Get(string name, Input id, ImageState? state = null, CustomResourceOptions? options = null) + { + return new Image(name, id, state, options); + } + } + + public sealed class ImageArgs : Pulumi.ResourceArgs + { + /// + /// Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + /// + [Input("distributionConfigurationArn")] + public Input? DistributionConfigurationArn { get; set; } + + /// + /// Whether additional information about the image being created is collected. Defaults to `true`. + /// + [Input("enhancedImageMetadataEnabled")] + public Input? EnhancedImageMetadataEnabled { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + /// + [Input("imageRecipeArn", required: true)] + public Input ImageRecipeArn { get; set; } = null!; + + /// + /// Configuration block with image tests configuration. Detailed below. + /// + [Input("imageTestsConfiguration")] + public Input? ImageTestsConfiguration { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + /// + [Input("infrastructureConfigurationArn", required: true)] + public Input InfrastructureConfigurationArn { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags for the Image Builder Image. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public ImageArgs() + { + } + } + + public sealed class ImageState : Pulumi.ResourceArgs + { + /// + /// Amazon Resource Name (ARN) of the image. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// Date the image was created. + /// + [Input("dateCreated")] + public Input? DateCreated { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + /// + [Input("distributionConfigurationArn")] + public Input? DistributionConfigurationArn { get; set; } + + /// + /// Whether additional information about the image being created is collected. Defaults to `true`. + /// + [Input("enhancedImageMetadataEnabled")] + public Input? EnhancedImageMetadataEnabled { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + /// + [Input("imageRecipeArn")] + public Input? ImageRecipeArn { get; set; } + + /// + /// Configuration block with image tests configuration. Detailed below. + /// + [Input("imageTestsConfiguration")] + public Input? ImageTestsConfiguration { get; set; } + + /// + /// Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + /// + [Input("infrastructureConfigurationArn")] + public Input? InfrastructureConfigurationArn { get; set; } + + /// + /// Name of the AMI. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Operating System version of the image. + /// + [Input("osVersion")] + public Input? OsVersion { get; set; } + + [Input("outputResources")] + private InputList? _outputResources; + + /// + /// List of objects with resources created by the image. + /// + public InputList OutputResources + { + get => _outputResources ?? (_outputResources = new InputList()); + set => _outputResources = value; + } + + /// + /// Platform of the image. + /// + [Input("platform")] + public Input? Platform { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// Key-value map of resource tags for the Image Builder Image. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// Version of the image. + /// + [Input("version")] + public Input? Version { get; set; } + + public ImageState() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationArgs.cs new file mode 100644 index 00000000000..371f4f185c2 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageImageTestsConfigurationArgs : Pulumi.ResourceArgs + { + /// + /// Whether image tests are enabled. Defaults to `true`. + /// + [Input("imageTestsEnabled")] + public Input? ImageTestsEnabled { get; set; } + + /// + /// Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + /// + [Input("timeoutMinutes")] + public Input? TimeoutMinutes { get; set; } + + public ImageImageTestsConfigurationArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationGetArgs.cs new file mode 100644 index 00000000000..85e7290bb72 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageImageTestsConfigurationGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageImageTestsConfigurationGetArgs : Pulumi.ResourceArgs + { + /// + /// Whether image tests are enabled. Defaults to `true`. + /// + [Input("imageTestsEnabled")] + public Input? ImageTestsEnabled { get; set; } + + /// + /// Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + /// + [Input("timeoutMinutes")] + public Input? TimeoutMinutes { get; set; } + + public ImageImageTestsConfigurationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiArgs.cs new file mode 100644 index 00000000000..fb4bbce9df2 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageOutputResourceAmiArgs : Pulumi.ResourceArgs + { + /// + /// Account identifier of the AMI. + /// + [Input("accountId")] + public Input? AccountId { get; set; } + + /// + /// Description of the AMI. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of the AMI. + /// + [Input("image")] + public Input? Image { get; set; } + + /// + /// Name of the AMI. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Region of the AMI. + /// + [Input("region")] + public Input? Region { get; set; } + + public ImageOutputResourceAmiArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiGetArgs.cs new file mode 100644 index 00000000000..73fbac31345 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceAmiGetArgs.cs @@ -0,0 +1,49 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageOutputResourceAmiGetArgs : Pulumi.ResourceArgs + { + /// + /// Account identifier of the AMI. + /// + [Input("accountId")] + public Input? AccountId { get; set; } + + /// + /// Description of the AMI. + /// + [Input("description")] + public Input? Description { get; set; } + + /// + /// Identifier of the AMI. + /// + [Input("image")] + public Input? Image { get; set; } + + /// + /// Name of the AMI. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Region of the AMI. + /// + [Input("region")] + public Input? Region { get; set; } + + public ImageOutputResourceAmiGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceArgs.cs new file mode 100644 index 00000000000..8543e14f841 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageOutputResourceArgs : Pulumi.ResourceArgs + { + [Input("amis")] + private InputList? _amis; + + /// + /// Set of objects with each Amazon Machine Image (AMI) created. + /// + public InputList Amis + { + get => _amis ?? (_amis = new InputList()); + set => _amis = value; + } + + public ImageOutputResourceArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceGetArgs.cs b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceGetArgs.cs new file mode 100644 index 00000000000..701f8641156 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Inputs/ImageOutputResourceGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Inputs +{ + + public sealed class ImageOutputResourceGetArgs : Pulumi.ResourceArgs + { + [Input("amis")] + private InputList? _amis; + + /// + /// Set of objects with each Amazon Machine Image (AMI) created. + /// + public InputList Amis + { + get => _amis ?? (_amis = new InputList()); + set => _amis = value; + } + + public ImageOutputResourceGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/GetImageImageTestsConfigurationResult.cs b/sdk/dotnet/ImageBuilder/Outputs/GetImageImageTestsConfigurationResult.cs new file mode 100644 index 00000000000..aa5c04aa17d --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/GetImageImageTestsConfigurationResult.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class GetImageImageTestsConfigurationResult + { + /// + /// Whether image tests are enabled. + /// + public readonly bool ImageTestsEnabled; + /// + /// Number of minutes before image tests time out. + /// + public readonly int TimeoutMinutes; + + [OutputConstructor] + private GetImageImageTestsConfigurationResult( + bool imageTestsEnabled, + + int timeoutMinutes) + { + ImageTestsEnabled = imageTestsEnabled; + TimeoutMinutes = timeoutMinutes; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceAmiResult.cs b/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceAmiResult.cs new file mode 100644 index 00000000000..c4281257099 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceAmiResult.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class GetImageOutputResourceAmiResult + { + /// + /// Account identifier of the AMI. + /// + public readonly string AccountId; + /// + /// Description of the AMI. + /// + public readonly string Description; + /// + /// Identifier of the AMI. + /// + public readonly string Image; + /// + /// Name of the AMI. + /// + public readonly string Name; + /// + /// Region of the AMI. + /// + public readonly string Region; + + [OutputConstructor] + private GetImageOutputResourceAmiResult( + string accountId, + + string description, + + string image, + + string name, + + string region) + { + AccountId = accountId; + Description = description; + Image = image; + Name = name; + Region = region; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceResult.cs b/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceResult.cs new file mode 100644 index 00000000000..05aa8967345 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/GetImageOutputResourceResult.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class GetImageOutputResourceResult + { + /// + /// Set of objects with each Amazon Machine Image (AMI) created. + /// + public readonly ImmutableArray Amis; + + [OutputConstructor] + private GetImageOutputResourceResult(ImmutableArray amis) + { + Amis = amis; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/ImageImageTestsConfiguration.cs b/sdk/dotnet/ImageBuilder/Outputs/ImageImageTestsConfiguration.cs new file mode 100644 index 00000000000..8ad4b24252e --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/ImageImageTestsConfiguration.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class ImageImageTestsConfiguration + { + /// + /// Whether image tests are enabled. Defaults to `true`. + /// + public readonly bool? ImageTestsEnabled; + /// + /// Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + /// + public readonly int? TimeoutMinutes; + + [OutputConstructor] + private ImageImageTestsConfiguration( + bool? imageTestsEnabled, + + int? timeoutMinutes) + { + ImageTestsEnabled = imageTestsEnabled; + TimeoutMinutes = timeoutMinutes; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResource.cs b/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResource.cs new file mode 100644 index 00000000000..4d774c3d197 --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResource.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class ImageOutputResource + { + /// + /// Set of objects with each Amazon Machine Image (AMI) created. + /// + public readonly ImmutableArray Amis; + + [OutputConstructor] + private ImageOutputResource(ImmutableArray amis) + { + Amis = amis; + } + } +} diff --git a/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResourceAmi.cs b/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResourceAmi.cs new file mode 100644 index 00000000000..ffef249b50c --- /dev/null +++ b/sdk/dotnet/ImageBuilder/Outputs/ImageOutputResourceAmi.cs @@ -0,0 +1,56 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.ImageBuilder.Outputs +{ + + [OutputType] + public sealed class ImageOutputResourceAmi + { + /// + /// Account identifier of the AMI. + /// + public readonly string? AccountId; + /// + /// Description of the AMI. + /// + public readonly string? Description; + /// + /// Identifier of the AMI. + /// + public readonly string? Image; + /// + /// Name of the AMI. + /// + public readonly string? Name; + /// + /// Region of the AMI. + /// + public readonly string? Region; + + [OutputConstructor] + private ImageOutputResourceAmi( + string? accountId, + + string? description, + + string? image, + + string? name, + + string? region) + { + AccountId = accountId; + Description = description; + Image = image; + Name = name; + Region = region; + } + } +} diff --git a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs index 6fd7de8af58..bc0d3195873 100644 --- a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs +++ b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs @@ -186,6 +186,9 @@ public sealed class ProviderEndpointArgs : Pulumi.ResourceArgs [Input("emr")] public Input? Emr { get; set; } + [Input("emrcontainers")] + public Input? Emrcontainers { get; set; } + [Input("es")] public Input? Es { get; set; } diff --git a/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardResult.cs b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardResult.cs new file mode 100644 index 00000000000..436617565cc --- /dev/null +++ b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardResult + { + public readonly ImmutableArray Stickinesses; + public readonly ImmutableArray TargetGroups; + + [OutputConstructor] + private GetListenerDefaultActionForwardResult( + ImmutableArray stickinesses, + + ImmutableArray targetGroups) + { + Stickinesses = stickinesses; + TargetGroups = targetGroups; + } + } +} diff --git a/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardStickinessResult.cs b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardStickinessResult.cs new file mode 100644 index 00000000000..097c3dfdb09 --- /dev/null +++ b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardStickinessResult.cs @@ -0,0 +1,29 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardStickinessResult + { + public readonly int Duration; + public readonly bool Enabled; + + [OutputConstructor] + private GetListenerDefaultActionForwardStickinessResult( + int duration, + + bool enabled) + { + Duration = duration; + Enabled = enabled; + } + } +} diff --git a/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs new file mode 100644 index 00000000000..2ead89348c7 --- /dev/null +++ b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionForwardTargetGroupResult.cs @@ -0,0 +1,32 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.LB.Outputs +{ + + [OutputType] + public sealed class GetListenerDefaultActionForwardTargetGroupResult + { + /// + /// The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + /// + public readonly string Arn; + public readonly int Weight; + + [OutputConstructor] + private GetListenerDefaultActionForwardTargetGroupResult( + string arn, + + int weight) + { + Arn = arn; + Weight = weight; + } + } +} diff --git a/sdk/dotnet/LB/Outputs/GetListenerDefaultActionResult.cs b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionResult.cs index c6e0c76a40e..79896b6f36c 100644 --- a/sdk/dotnet/LB/Outputs/GetListenerDefaultActionResult.cs +++ b/sdk/dotnet/LB/Outputs/GetListenerDefaultActionResult.cs @@ -16,6 +16,7 @@ public sealed class GetListenerDefaultActionResult public readonly ImmutableArray AuthenticateCognitos; public readonly ImmutableArray AuthenticateOidcs; public readonly ImmutableArray FixedResponses; + public readonly ImmutableArray Forwards; public readonly int Order; public readonly ImmutableArray Redirects; public readonly string TargetGroupArn; @@ -29,6 +30,8 @@ private GetListenerDefaultActionResult( ImmutableArray fixedResponses, + ImmutableArray forwards, + int order, ImmutableArray redirects, @@ -40,6 +43,7 @@ private GetListenerDefaultActionResult( AuthenticateCognitos = authenticateCognitos; AuthenticateOidcs = authenticateOidcs; FixedResponses = fixedResponses; + Forwards = forwards; Order = order; Redirects = redirects; TargetGroupArn = targetGroupArn; diff --git a/sdk/dotnet/NetworkFirewall/RuleGroup.cs b/sdk/dotnet/NetworkFirewall/RuleGroup.cs index 3b48d832f36..e11ee3efb28 100644 --- a/sdk/dotnet/NetworkFirewall/RuleGroup.cs +++ b/sdk/dotnet/NetworkFirewall/RuleGroup.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.NetworkFirewall /// Provides an AWS Network Firewall Rule Group Resource /// /// ## Example Usage - /// ### Stateful Inspection + /// ### Stateful Inspection for denying access to a domain /// /// ```csharp /// using Pulumi; @@ -55,7 +55,75 @@ namespace Pulumi.Aws.NetworkFirewall /// /// } /// ``` - /// ### Stateful Inspection compatible with intrusion detection systems like Snort or Suricata + /// ### Stateful Inspection for permitting packets from a source IP address + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var ips = + /// { + /// "1.1.1.1/32", + /// "1.0.0.1/32", + /// }; + /// var example = new Aws.NetworkFirewall.RuleGroup("example", new Aws.NetworkFirewall.RuleGroupArgs + /// { + /// Capacity = 50, + /// Description = "Permits http traffic from source", + /// Type = "STATEFUL", + /// RuleGroup = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupArgs + /// { + /// RulesSource = new Aws.NetworkFirewall.Inputs.RuleGroupRuleGroupRulesSourceArgs + /// { + /// Dynamic = + /// { + /// + /// { + /// { "forEach", ips }, + /// { "content", + /// { + /// + /// { + /// { "action", "PASS" }, + /// { "header", + /// { + /// + /// { + /// { "destination", "ANY" }, + /// { "destinationPort", "ANY" }, + /// { "protocol", "HTTP" }, + /// { "direction", "ANY" }, + /// { "sourcePort", "ANY" }, + /// { "source", stateful_rule.Value }, + /// }, + /// } }, + /// { "ruleOption", + /// { + /// + /// { + /// { "keyword", "sid:1" }, + /// }, + /// } }, + /// }, + /// } }, + /// }, + /// }, + /// }, + /// }, + /// Tags = + /// { + /// { "Name", "permit HTTP from source" }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// ### Stateful Inspection for blocking packets from going to an intended destination /// /// ```csharp /// using Pulumi; diff --git a/sdk/dotnet/Outputs/ProviderEndpoint.cs b/sdk/dotnet/Outputs/ProviderEndpoint.cs index 06e30c0bfb9..7fd084c9ea7 100644 --- a/sdk/dotnet/Outputs/ProviderEndpoint.cs +++ b/sdk/dotnet/Outputs/ProviderEndpoint.cs @@ -71,6 +71,7 @@ public sealed class ProviderEndpoint public readonly string? Elastictranscoder; public readonly string? Elb; public readonly string? Emr; + public readonly string? Emrcontainers; public readonly string? Es; public readonly string? Firehose; public readonly string? Fms; @@ -282,6 +283,8 @@ private ProviderEndpoint( string? emr, + string? emrcontainers, + string? es, string? firehose, @@ -524,6 +527,7 @@ private ProviderEndpoint( Elastictranscoder = elastictranscoder; Elb = elb; Emr = emr; + Emrcontainers = emrcontainers; Es = es; Firehose = firehose; Fms = fms; diff --git a/sdk/dotnet/Sagemaker/AppImageConfig.cs b/sdk/dotnet/Sagemaker/AppImageConfig.cs new file mode 100644 index 00000000000..e9fd21447e3 --- /dev/null +++ b/sdk/dotnet/Sagemaker/AppImageConfig.cs @@ -0,0 +1,184 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker +{ + /// + /// Provides a Sagemaker App Image Config resource. + /// + /// ## Example Usage + /// ### Basic usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var test = new Aws.Sagemaker.AppImageConfig("test", new Aws.Sagemaker.AppImageConfigArgs + /// { + /// AppImageConfigName = "example", + /// KernelGatewayImageConfig = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigArgs + /// { + /// KernelSpec = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigKernelSpecArgs + /// { + /// Name = "example", + /// }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// ### Default File System Config + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var test = new Aws.Sagemaker.AppImageConfig("test", new Aws.Sagemaker.AppImageConfigArgs + /// { + /// AppImageConfigName = "example", + /// KernelGatewayImageConfig = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigArgs + /// { + /// FileSystemConfig = , + /// KernelSpec = new Aws.Sagemaker.Inputs.AppImageConfigKernelGatewayImageConfigKernelSpecArgs + /// { + /// Name = "example", + /// }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// Sagemaker App Image Configs can be imported using the `name`, e.g. + /// + /// ```sh + /// $ pulumi import aws:sagemaker/appImageConfig:AppImageConfig example example + /// ``` + /// + [AwsResourceType("aws:sagemaker/appImageConfig:AppImageConfig")] + public partial class AppImageConfig : Pulumi.CustomResource + { + /// + /// The name of the App Image Config. + /// + [Output("appImageConfigName")] + public Output AppImageConfigName { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + /// + [Output("kernelGatewayImageConfig")] + public Output KernelGatewayImageConfig { get; private set; } = null!; + + + /// + /// Create a AppImageConfig resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public AppImageConfig(string name, AppImageConfigArgs args, CustomResourceOptions? options = null) + : base("aws:sagemaker/appImageConfig:AppImageConfig", name, args ?? new AppImageConfigArgs(), MakeResourceOptions(options, "")) + { + } + + private AppImageConfig(string name, Input id, AppImageConfigState? state = null, CustomResourceOptions? options = null) + : base("aws:sagemaker/appImageConfig:AppImageConfig", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing AppImageConfig resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static AppImageConfig Get(string name, Input id, AppImageConfigState? state = null, CustomResourceOptions? options = null) + { + return new AppImageConfig(name, id, state, options); + } + } + + public sealed class AppImageConfigArgs : Pulumi.ResourceArgs + { + /// + /// The name of the App Image Config. + /// + [Input("appImageConfigName", required: true)] + public Input AppImageConfigName { get; set; } = null!; + + /// + /// The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + /// + [Input("kernelGatewayImageConfig")] + public Input? KernelGatewayImageConfig { get; set; } + + public AppImageConfigArgs() + { + } + } + + public sealed class AppImageConfigState : Pulumi.ResourceArgs + { + /// + /// The name of the App Image Config. + /// + [Input("appImageConfigName")] + public Input? AppImageConfigName { get; set; } + + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + /// + [Input("kernelGatewayImageConfig")] + public Input? KernelGatewayImageConfig { get; set; } + + public AppImageConfigState() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/CodeRepository.cs b/sdk/dotnet/Sagemaker/CodeRepository.cs index ab8b0c87518..56f1372402f 100644 --- a/sdk/dotnet/Sagemaker/CodeRepository.cs +++ b/sdk/dotnet/Sagemaker/CodeRepository.cs @@ -9,15 +9,102 @@ namespace Pulumi.Aws.Sagemaker { + /// + /// Provides a Sagemaker Code Repository resource. + /// + /// ## Example Usage + /// ### Basic usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = new Aws.Sagemaker.CodeRepository("example", new Aws.Sagemaker.CodeRepositoryArgs + /// { + /// CodeRepositoryName = "example", + /// GitConfig = new Aws.Sagemaker.Inputs.CodeRepositoryGitConfigArgs + /// { + /// RepositoryUrl = "https://github.com/hashicorp/terraform-provider-aws.git", + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// ### Example with Secret + /// + /// ```csharp + /// using System.Collections.Generic; + /// using System.Text.Json; + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var exampleSecret = new Aws.SecretsManager.Secret("exampleSecret", new Aws.SecretsManager.SecretArgs + /// { + /// }); + /// var exampleSecretVersion = new Aws.SecretsManager.SecretVersion("exampleSecretVersion", new Aws.SecretsManager.SecretVersionArgs + /// { + /// SecretId = exampleSecret.Id, + /// SecretString = JsonSerializer.Serialize(new Dictionary<string, object?> + /// { + /// { "username", "example" }, + /// { "password", "example" }, + /// }), + /// }); + /// var exampleCodeRepository = new Aws.Sagemaker.CodeRepository("exampleCodeRepository", new Aws.Sagemaker.CodeRepositoryArgs + /// { + /// CodeRepositoryName = "example", + /// GitConfig = new Aws.Sagemaker.Inputs.CodeRepositoryGitConfigArgs + /// { + /// RepositoryUrl = "https://github.com/hashicorp/terraform-provider-aws.git", + /// SecretArn = exampleSecret.Arn, + /// }, + /// }, new CustomResourceOptions + /// { + /// DependsOn = + /// { + /// exampleSecretVersion, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// Sagemaker Code Repositories can be imported using the `name`, e.g. + /// + /// ```sh + /// $ pulumi import aws:sagemaker/codeRepository:CodeRepository test_code_repository my-code-repo + /// ``` + /// [AwsResourceType("aws:sagemaker/codeRepository:CodeRepository")] public partial class CodeRepository : Pulumi.CustomResource { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + /// [Output("arn")] public Output Arn { get; private set; } = null!; + /// + /// The name of the Code Repository (must be unique). + /// [Output("codeRepositoryName")] public Output CodeRepositoryName { get; private set; } = null!; + /// + /// Specifies details about the repository. see Git Config details below. + /// [Output("gitConfig")] public Output GitConfig { get; private set; } = null!; @@ -67,9 +154,15 @@ public static CodeRepository Get(string name, Input id, CodeRepositorySt public sealed class CodeRepositoryArgs : Pulumi.ResourceArgs { + /// + /// The name of the Code Repository (must be unique). + /// [Input("codeRepositoryName", required: true)] public Input CodeRepositoryName { get; set; } = null!; + /// + /// Specifies details about the repository. see Git Config details below. + /// [Input("gitConfig", required: true)] public Input GitConfig { get; set; } = null!; @@ -80,12 +173,21 @@ public CodeRepositoryArgs() public sealed class CodeRepositoryState : Pulumi.ResourceArgs { + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + /// [Input("arn")] public Input? Arn { get; set; } + /// + /// The name of the Code Repository (must be unique). + /// [Input("codeRepositoryName")] public Input? CodeRepositoryName { get; set; } + /// + /// Specifies details about the repository. see Git Config details below. + /// [Input("gitConfig")] public Input? GitConfig { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigArgs.cs new file mode 100644 index 00000000000..829d78feef3 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigArgs : Pulumi.ResourceArgs + { + /// + /// The URL where the Git repository is located. See File System Config details below. + /// + [Input("fileSystemConfig")] + public Input? FileSystemConfig { get; set; } + + /// + /// The default branch for the Git repository. See Kernel Spec details below. + /// + [Input("kernelSpec", required: true)] + public Input KernelSpec { get; set; } = null!; + + public AppImageConfigKernelGatewayImageConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs.cs new file mode 100644 index 00000000000..c48c99e44b7 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs : Pulumi.ResourceArgs + { + /// + /// The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + /// + [Input("defaultGid")] + public Input? DefaultGid { get; set; } + + /// + /// The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + /// + [Input("defaultUid")] + public Input? DefaultUid { get; set; } + + /// + /// The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + /// + [Input("mountPath")] + public Input? MountPath { get; set; } + + public AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs.cs new file mode 100644 index 00000000000..f834ccc0324 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + /// + [Input("defaultGid")] + public Input? DefaultGid { get; set; } + + /// + /// The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + /// + [Input("defaultUid")] + public Input? DefaultUid { get; set; } + + /// + /// The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + /// + [Input("mountPath")] + public Input? MountPath { get; set; } + + public AppImageConfigKernelGatewayImageConfigFileSystemConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigGetArgs.cs new file mode 100644 index 00000000000..7bf93f559c6 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// The URL where the Git repository is located. See File System Config details below. + /// + [Input("fileSystemConfig")] + public Input? FileSystemConfig { get; set; } + + /// + /// The default branch for the Git repository. See Kernel Spec details below. + /// + [Input("kernelSpec", required: true)] + public Input KernelSpec { get; set; } = null!; + + public AppImageConfigKernelGatewayImageConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecArgs.cs new file mode 100644 index 00000000000..96651520ebb --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigKernelSpecArgs : Pulumi.ResourceArgs + { + /// + /// The display name of the kernel. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// The name of the kernel. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public AppImageConfigKernelGatewayImageConfigKernelSpecArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs.cs new file mode 100644 index 00000000000..1ef3233572b --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The display name of the kernel. + /// + [Input("displayName")] + public Input? DisplayName { get; set; } + + /// + /// The name of the kernel. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + public AppImageConfigKernelGatewayImageConfigKernelSpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigArgs.cs b/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigArgs.cs index 05623df225e..1efeb6acc2f 100644 --- a/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class CodeRepositoryGitConfigArgs : Pulumi.ResourceArgs { + /// + /// The default branch for the Git repository. + /// [Input("branch")] public Input? Branch { get; set; } + /// + /// The URL where the Git repository is located. + /// [Input("repositoryUrl", required: true)] public Input RepositoryUrl { get; set; } = null!; + /// + /// The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + /// [Input("secretArn")] public Input? SecretArn { get; set; } diff --git a/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigGetArgs.cs index dac66b163ce..b1062b011cc 100644 --- a/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigGetArgs.cs +++ b/sdk/dotnet/Sagemaker/Inputs/CodeRepositoryGitConfigGetArgs.cs @@ -12,12 +12,21 @@ namespace Pulumi.Aws.Sagemaker.Inputs public sealed class CodeRepositoryGitConfigGetArgs : Pulumi.ResourceArgs { + /// + /// The default branch for the Git repository. + /// [Input("branch")] public Input? Branch { get; set; } + /// + /// The URL where the Git repository is located. + /// [Input("repositoryUrl", required: true)] public Input RepositoryUrl { get; set; } = null!; + /// + /// The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + /// [Input("secretArn")] public Input? SecretArn { get; set; } diff --git a/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfig.cs b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfig.cs new file mode 100644 index 00000000000..cee5c210831 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfig.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class AppImageConfigKernelGatewayImageConfig + { + /// + /// The URL where the Git repository is located. See File System Config details below. + /// + public readonly Outputs.AppImageConfigKernelGatewayImageConfigFileSystemConfig? FileSystemConfig; + /// + /// The default branch for the Git repository. See Kernel Spec details below. + /// + public readonly Outputs.AppImageConfigKernelGatewayImageConfigKernelSpec KernelSpec; + + [OutputConstructor] + private AppImageConfigKernelGatewayImageConfig( + Outputs.AppImageConfigKernelGatewayImageConfigFileSystemConfig? fileSystemConfig, + + Outputs.AppImageConfigKernelGatewayImageConfigKernelSpec kernelSpec) + { + FileSystemConfig = fileSystemConfig; + KernelSpec = kernelSpec; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigFileSystemConfig.cs b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigFileSystemConfig.cs new file mode 100644 index 00000000000..704f106c76c --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigFileSystemConfig.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class AppImageConfigKernelGatewayImageConfigFileSystemConfig + { + /// + /// The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + /// + public readonly int? DefaultGid; + /// + /// The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + /// + public readonly int? DefaultUid; + /// + /// The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + /// + public readonly string? MountPath; + + [OutputConstructor] + private AppImageConfigKernelGatewayImageConfigFileSystemConfig( + int? defaultGid, + + int? defaultUid, + + string? mountPath) + { + DefaultGid = defaultGid; + DefaultUid = defaultUid; + MountPath = mountPath; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigKernelSpec.cs b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigKernelSpec.cs new file mode 100644 index 00000000000..3e07c098209 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/AppImageConfigKernelGatewayImageConfigKernelSpec.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class AppImageConfigKernelGatewayImageConfigKernelSpec + { + /// + /// The display name of the kernel. + /// + public readonly string? DisplayName; + /// + /// The name of the kernel. + /// + public readonly string Name; + + [OutputConstructor] + private AppImageConfigKernelGatewayImageConfigKernelSpec( + string? displayName, + + string name) + { + DisplayName = displayName; + Name = name; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/CodeRepositoryGitConfig.cs b/sdk/dotnet/Sagemaker/Outputs/CodeRepositoryGitConfig.cs index dcca9431203..d0dffce4940 100644 --- a/sdk/dotnet/Sagemaker/Outputs/CodeRepositoryGitConfig.cs +++ b/sdk/dotnet/Sagemaker/Outputs/CodeRepositoryGitConfig.cs @@ -13,8 +13,17 @@ namespace Pulumi.Aws.Sagemaker.Outputs [OutputType] public sealed class CodeRepositoryGitConfig { + /// + /// The default branch for the Git repository. + /// public readonly string? Branch; + /// + /// The URL where the Git repository is located. + /// public readonly string RepositoryUrl; + /// + /// The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + /// public readonly string? SecretArn; [OutputConstructor] diff --git a/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationArgs.cs b/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationArgs.cs index 45159072ea7..6f5ee9b8384 100644 --- a/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationArgs.cs +++ b/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationArgs.cs @@ -25,7 +25,7 @@ public sealed class EventDestinationCloudwatchDestinationArgs : Pulumi.ResourceA public Input DimensionName { get; set; } = null!; /// - /// The source for the value. It can be either `"messageTag"` or `"emailHeader"` + /// The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. /// [Input("valueSource", required: true)] public Input ValueSource { get; set; } = null!; diff --git a/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationGetArgs.cs b/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationGetArgs.cs index 224f60fdfb6..c53336cef75 100644 --- a/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationGetArgs.cs +++ b/sdk/dotnet/Ses/Inputs/EventDestinationCloudwatchDestinationGetArgs.cs @@ -25,7 +25,7 @@ public sealed class EventDestinationCloudwatchDestinationGetArgs : Pulumi.Resour public Input DimensionName { get; set; } = null!; /// - /// The source for the value. It can be either `"messageTag"` or `"emailHeader"` + /// The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. /// [Input("valueSource", required: true)] public Input ValueSource { get; set; } = null!; diff --git a/sdk/dotnet/Ses/Outputs/EventDestinationCloudwatchDestination.cs b/sdk/dotnet/Ses/Outputs/EventDestinationCloudwatchDestination.cs index 7736de9727f..46ab84ac70b 100644 --- a/sdk/dotnet/Ses/Outputs/EventDestinationCloudwatchDestination.cs +++ b/sdk/dotnet/Ses/Outputs/EventDestinationCloudwatchDestination.cs @@ -22,7 +22,7 @@ public sealed class EventDestinationCloudwatchDestination /// public readonly string DimensionName; /// - /// The source for the value. It can be either `"messageTag"` or `"emailHeader"` + /// The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. /// public readonly string ValueSource; diff --git a/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleArgs.cs b/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleArgs.cs index 2c10bc84552..438d0f0b924 100644 --- a/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleArgs.cs +++ b/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleArgs.cs @@ -34,7 +34,7 @@ public sealed class PatchBaselineApprovalRuleArgs : Pulumi.ResourceArgs private InputList? _patchFilters; /// - /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. /// public InputList PatchFilters { diff --git a/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleGetArgs.cs b/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleGetArgs.cs index 416343bbe52..8675bbe6883 100644 --- a/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleGetArgs.cs +++ b/sdk/dotnet/Ssm/Inputs/PatchBaselineApprovalRuleGetArgs.cs @@ -34,7 +34,7 @@ public sealed class PatchBaselineApprovalRuleGetArgs : Pulumi.ResourceArgs private InputList? _patchFilters; /// - /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. /// public InputList PatchFilters { diff --git a/sdk/dotnet/Ssm/Outputs/PatchBaselineApprovalRule.cs b/sdk/dotnet/Ssm/Outputs/PatchBaselineApprovalRule.cs index e467ae4dcb4..7f4269b1f76 100644 --- a/sdk/dotnet/Ssm/Outputs/PatchBaselineApprovalRule.cs +++ b/sdk/dotnet/Ssm/Outputs/PatchBaselineApprovalRule.cs @@ -26,7 +26,7 @@ public sealed class PatchBaselineApprovalRule /// public readonly bool? EnableNonSecurity; /// - /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + /// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. /// public readonly ImmutableArray PatchFilters; diff --git a/sdk/dotnet/Transfer/User.cs b/sdk/dotnet/Transfer/User.cs index aeae7905b63..e62b73e1c43 100644 --- a/sdk/dotnet/Transfer/User.cs +++ b/sdk/dotnet/Transfer/User.cs @@ -67,6 +67,15 @@ namespace Pulumi.Aws.Transfer /// ServerId = fooServer.Id, /// UserName = "tftestuser", /// Role = fooRole.Arn, + /// HomeDirectoryType = "LOGICAL", + /// HomeDirectoryMappings = + /// { + /// new Aws.Transfer.Inputs.UserHomeDirectoryMappingArgs + /// { + /// Entry = "/test.pdf", + /// Target = "/bucket3/test-path/tftestuser.pdf", + /// }, + /// }, /// }); /// } /// diff --git a/sdk/go/aws/alb/pulumiTypes.go b/sdk/go/aws/alb/pulumiTypes.go index d12f5ea3dc1..ba596a6da42 100644 --- a/sdk/go/aws/alb/pulumiTypes.go +++ b/sdk/go/aws/alb/pulumiTypes.go @@ -4766,6 +4766,7 @@ type GetListenerDefaultAction struct { AuthenticateCognitos []GetListenerDefaultActionAuthenticateCognito `pulumi:"authenticateCognitos"` AuthenticateOidcs []GetListenerDefaultActionAuthenticateOidc `pulumi:"authenticateOidcs"` FixedResponses []GetListenerDefaultActionFixedResponse `pulumi:"fixedResponses"` + Forwards []GetListenerDefaultActionForward `pulumi:"forwards"` Order int `pulumi:"order"` Redirects []GetListenerDefaultActionRedirect `pulumi:"redirects"` TargetGroupArn string `pulumi:"targetGroupArn"` @@ -4787,6 +4788,7 @@ type GetListenerDefaultActionArgs struct { AuthenticateCognitos GetListenerDefaultActionAuthenticateCognitoArrayInput `pulumi:"authenticateCognitos"` AuthenticateOidcs GetListenerDefaultActionAuthenticateOidcArrayInput `pulumi:"authenticateOidcs"` FixedResponses GetListenerDefaultActionFixedResponseArrayInput `pulumi:"fixedResponses"` + Forwards GetListenerDefaultActionForwardArrayInput `pulumi:"forwards"` Order pulumi.IntInput `pulumi:"order"` Redirects GetListenerDefaultActionRedirectArrayInput `pulumi:"redirects"` TargetGroupArn pulumi.StringInput `pulumi:"targetGroupArn"` @@ -4860,6 +4862,10 @@ func (o GetListenerDefaultActionOutput) FixedResponses() GetListenerDefaultActio return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionFixedResponse { return v.FixedResponses }).(GetListenerDefaultActionFixedResponseArrayOutput) } +func (o GetListenerDefaultActionOutput) Forwards() GetListenerDefaultActionForwardArrayOutput { + return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionForward { return v.Forwards }).(GetListenerDefaultActionForwardArrayOutput) +} + func (o GetListenerDefaultActionOutput) Order() pulumi.IntOutput { return o.ApplyT(func(v GetListenerDefaultAction) int { return v.Order }).(pulumi.IntOutput) } @@ -5296,6 +5302,313 @@ func (o GetListenerDefaultActionFixedResponseArrayOutput) Index(i pulumi.IntInpu }).(GetListenerDefaultActionFixedResponseOutput) } +type GetListenerDefaultActionForward struct { + Stickinesses []GetListenerDefaultActionForwardStickiness `pulumi:"stickinesses"` + TargetGroups []GetListenerDefaultActionForwardTargetGroup `pulumi:"targetGroups"` +} + +// GetListenerDefaultActionForwardInput is an input type that accepts GetListenerDefaultActionForwardArgs and GetListenerDefaultActionForwardOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardInput` via: +// +// GetListenerDefaultActionForwardArgs{...} +type GetListenerDefaultActionForwardInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput + ToGetListenerDefaultActionForwardOutputWithContext(context.Context) GetListenerDefaultActionForwardOutput +} + +type GetListenerDefaultActionForwardArgs struct { + Stickinesses GetListenerDefaultActionForwardStickinessArrayInput `pulumi:"stickinesses"` + TargetGroups GetListenerDefaultActionForwardTargetGroupArrayInput `pulumi:"targetGroups"` +} + +func (GetListenerDefaultActionForwardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return i.ToGetListenerDefaultActionForwardOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardOutput) +} + +// GetListenerDefaultActionForwardArrayInput is an input type that accepts GetListenerDefaultActionForwardArray and GetListenerDefaultActionForwardArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardArrayInput` via: +// +// GetListenerDefaultActionForwardArray{ GetListenerDefaultActionForwardArgs{...} } +type GetListenerDefaultActionForwardArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput + ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardArrayOutput +} + +type GetListenerDefaultActionForwardArray []GetListenerDefaultActionForwardInput + +func (GetListenerDefaultActionForwardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return i.ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardArrayOutput) +} + +type GetListenerDefaultActionForwardOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) Stickinesses() GetListenerDefaultActionForwardStickinessArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardStickiness { + return v.Stickinesses + }).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +func (o GetListenerDefaultActionForwardOutput) TargetGroups() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardTargetGroup { + return v.TargetGroups + }).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForward { + return vs[0].([]GetListenerDefaultActionForward)[vs[1].(int)] + }).(GetListenerDefaultActionForwardOutput) +} + +type GetListenerDefaultActionForwardStickiness struct { + Duration int `pulumi:"duration"` + Enabled bool `pulumi:"enabled"` +} + +// GetListenerDefaultActionForwardStickinessInput is an input type that accepts GetListenerDefaultActionForwardStickinessArgs and GetListenerDefaultActionForwardStickinessOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessInput` via: +// +// GetListenerDefaultActionForwardStickinessArgs{...} +type GetListenerDefaultActionForwardStickinessInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput + ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessOutput +} + +type GetListenerDefaultActionForwardStickinessArgs struct { + Duration pulumi.IntInput `pulumi:"duration"` + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetListenerDefaultActionForwardStickinessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return i.ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessOutput) +} + +// GetListenerDefaultActionForwardStickinessArrayInput is an input type that accepts GetListenerDefaultActionForwardStickinessArray and GetListenerDefaultActionForwardStickinessArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessArrayInput` via: +// +// GetListenerDefaultActionForwardStickinessArray{ GetListenerDefaultActionForwardStickinessArgs{...} } +type GetListenerDefaultActionForwardStickinessArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput + ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessArrayOutput +} + +type GetListenerDefaultActionForwardStickinessArray []GetListenerDefaultActionForwardStickinessInput + +func (GetListenerDefaultActionForwardStickinessArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return i.ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +type GetListenerDefaultActionForwardStickinessOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Duration() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) int { return v.Duration }).(pulumi.IntOutput) +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetListenerDefaultActionForwardStickinessArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardStickiness { + return vs[0].([]GetListenerDefaultActionForwardStickiness)[vs[1].(int)] + }).(GetListenerDefaultActionForwardStickinessOutput) +} + +type GetListenerDefaultActionForwardTargetGroup struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn string `pulumi:"arn"` + Weight int `pulumi:"weight"` +} + +// GetListenerDefaultActionForwardTargetGroupInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArgs and GetListenerDefaultActionForwardTargetGroupOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArgs{...} +type GetListenerDefaultActionForwardTargetGroupInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput + ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupOutput +} + +type GetListenerDefaultActionForwardTargetGroupArgs struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn pulumi.StringInput `pulumi:"arn"` + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (GetListenerDefaultActionForwardTargetGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupOutput) +} + +// GetListenerDefaultActionForwardTargetGroupArrayInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArray and GetListenerDefaultActionForwardTargetGroupArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupArrayInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArray{ GetListenerDefaultActionForwardTargetGroupArgs{...} } +type GetListenerDefaultActionForwardTargetGroupArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput + ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput +} + +type GetListenerDefaultActionForwardTargetGroupArray []GetListenerDefaultActionForwardTargetGroupInput + +func (GetListenerDefaultActionForwardTargetGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardTargetGroupOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +// The arn of the listener. Required if `loadBalancerArn` and `port` is not set. +func (o GetListenerDefaultActionForwardTargetGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) int { return v.Weight }).(pulumi.IntOutput) +} + +type GetListenerDefaultActionForwardTargetGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardTargetGroup { + return vs[0].([]GetListenerDefaultActionForwardTargetGroup)[vs[1].(int)] + }).(GetListenerDefaultActionForwardTargetGroupOutput) +} + type GetListenerDefaultActionRedirect struct { Host string `pulumi:"host"` Path string `pulumi:"path"` @@ -5817,6 +6130,12 @@ func init() { pulumi.RegisterOutputType(GetListenerDefaultActionAuthenticateOidcArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectArrayOutput{}) pulumi.RegisterOutputType(GetLoadBalancerAccessLogsOutput{}) diff --git a/sdk/go/aws/amp/init.go b/sdk/go/aws/amp/init.go new file mode 100644 index 00000000000..790ad41958b --- /dev/null +++ b/sdk/go/aws/amp/init.go @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package amp + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-aws/sdk/v3/go/aws" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "aws:amp/workspace:Workspace": + r, err = NewWorkspace(ctx, name, nil, pulumi.URN_(urn)) + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + return +} + +func init() { + version, err := aws.PkgVersion() + if err != nil { + fmt.Println("failed to determine package version. defaulting to v1: %v", err) + } + pulumi.RegisterResourceModule( + "aws", + "amp/workspace", + &module{version}, + ) +} diff --git a/sdk/go/aws/amp/workspace.go b/sdk/go/aws/amp/workspace.go new file mode 100644 index 00000000000..d9c259680ec --- /dev/null +++ b/sdk/go/aws/amp/workspace.go @@ -0,0 +1,281 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package amp + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// ## Import +// +// AMP Workspaces can be imported using the identifier, e.g. +// +// ```sh +// $ pulumi import aws:amp/workspace:Workspace demo ws-C6DCB907-F2D7-4D96-957B-66691F865D8B +// ``` +type Workspace struct { + pulumi.CustomResourceState + + // The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + Alias pulumi.StringPtrOutput `pulumi:"alias"` + // Amazon Resource Name (ARN) of the workspace. + Arn pulumi.StringOutput `pulumi:"arn"` + // Prometheus endpoint available for this workspace. + PrometheusEndpoint pulumi.StringOutput `pulumi:"prometheusEndpoint"` +} + +// NewWorkspace registers a new resource with the given unique name, arguments, and options. +func NewWorkspace(ctx *pulumi.Context, + name string, args *WorkspaceArgs, opts ...pulumi.ResourceOption) (*Workspace, error) { + if args == nil { + args = &WorkspaceArgs{} + } + + var resource Workspace + err := ctx.RegisterResource("aws:amp/workspace:Workspace", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetWorkspace gets an existing Workspace resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetWorkspace(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *WorkspaceState, opts ...pulumi.ResourceOption) (*Workspace, error) { + var resource Workspace + err := ctx.ReadResource("aws:amp/workspace:Workspace", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Workspace resources. +type workspaceState struct { + // The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + Alias *string `pulumi:"alias"` + // Amazon Resource Name (ARN) of the workspace. + Arn *string `pulumi:"arn"` + // Prometheus endpoint available for this workspace. + PrometheusEndpoint *string `pulumi:"prometheusEndpoint"` +} + +type WorkspaceState struct { + // The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + Alias pulumi.StringPtrInput + // Amazon Resource Name (ARN) of the workspace. + Arn pulumi.StringPtrInput + // Prometheus endpoint available for this workspace. + PrometheusEndpoint pulumi.StringPtrInput +} + +func (WorkspaceState) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceState)(nil)).Elem() +} + +type workspaceArgs struct { + // The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + Alias *string `pulumi:"alias"` +} + +// The set of arguments for constructing a Workspace resource. +type WorkspaceArgs struct { + // The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + Alias pulumi.StringPtrInput +} + +func (WorkspaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*workspaceArgs)(nil)).Elem() +} + +type WorkspaceInput interface { + pulumi.Input + + ToWorkspaceOutput() WorkspaceOutput + ToWorkspaceOutputWithContext(ctx context.Context) WorkspaceOutput +} + +func (*Workspace) ElementType() reflect.Type { + return reflect.TypeOf((*Workspace)(nil)) +} + +func (i *Workspace) ToWorkspaceOutput() WorkspaceOutput { + return i.ToWorkspaceOutputWithContext(context.Background()) +} + +func (i *Workspace) ToWorkspaceOutputWithContext(ctx context.Context) WorkspaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceOutput) +} + +func (i *Workspace) ToWorkspacePtrOutput() WorkspacePtrOutput { + return i.ToWorkspacePtrOutputWithContext(context.Background()) +} + +func (i *Workspace) ToWorkspacePtrOutputWithContext(ctx context.Context) WorkspacePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspacePtrOutput) +} + +type WorkspacePtrInput interface { + pulumi.Input + + ToWorkspacePtrOutput() WorkspacePtrOutput + ToWorkspacePtrOutputWithContext(ctx context.Context) WorkspacePtrOutput +} + +type workspacePtrType WorkspaceArgs + +func (*workspacePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Workspace)(nil)) +} + +func (i *workspacePtrType) ToWorkspacePtrOutput() WorkspacePtrOutput { + return i.ToWorkspacePtrOutputWithContext(context.Background()) +} + +func (i *workspacePtrType) ToWorkspacePtrOutputWithContext(ctx context.Context) WorkspacePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspacePtrOutput) +} + +// WorkspaceArrayInput is an input type that accepts WorkspaceArray and WorkspaceArrayOutput values. +// You can construct a concrete instance of `WorkspaceArrayInput` via: +// +// WorkspaceArray{ WorkspaceArgs{...} } +type WorkspaceArrayInput interface { + pulumi.Input + + ToWorkspaceArrayOutput() WorkspaceArrayOutput + ToWorkspaceArrayOutputWithContext(context.Context) WorkspaceArrayOutput +} + +type WorkspaceArray []WorkspaceInput + +func (WorkspaceArray) ElementType() reflect.Type { + return reflect.TypeOf(([]*Workspace)(nil)) +} + +func (i WorkspaceArray) ToWorkspaceArrayOutput() WorkspaceArrayOutput { + return i.ToWorkspaceArrayOutputWithContext(context.Background()) +} + +func (i WorkspaceArray) ToWorkspaceArrayOutputWithContext(ctx context.Context) WorkspaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceArrayOutput) +} + +// WorkspaceMapInput is an input type that accepts WorkspaceMap and WorkspaceMapOutput values. +// You can construct a concrete instance of `WorkspaceMapInput` via: +// +// WorkspaceMap{ "key": WorkspaceArgs{...} } +type WorkspaceMapInput interface { + pulumi.Input + + ToWorkspaceMapOutput() WorkspaceMapOutput + ToWorkspaceMapOutputWithContext(context.Context) WorkspaceMapOutput +} + +type WorkspaceMap map[string]WorkspaceInput + +func (WorkspaceMap) ElementType() reflect.Type { + return reflect.TypeOf((map[string]*Workspace)(nil)) +} + +func (i WorkspaceMap) ToWorkspaceMapOutput() WorkspaceMapOutput { + return i.ToWorkspaceMapOutputWithContext(context.Background()) +} + +func (i WorkspaceMap) ToWorkspaceMapOutputWithContext(ctx context.Context) WorkspaceMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkspaceMapOutput) +} + +type WorkspaceOutput struct { + *pulumi.OutputState +} + +func (WorkspaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Workspace)(nil)) +} + +func (o WorkspaceOutput) ToWorkspaceOutput() WorkspaceOutput { + return o +} + +func (o WorkspaceOutput) ToWorkspaceOutputWithContext(ctx context.Context) WorkspaceOutput { + return o +} + +func (o WorkspaceOutput) ToWorkspacePtrOutput() WorkspacePtrOutput { + return o.ToWorkspacePtrOutputWithContext(context.Background()) +} + +func (o WorkspaceOutput) ToWorkspacePtrOutputWithContext(ctx context.Context) WorkspacePtrOutput { + return o.ApplyT(func(v Workspace) *Workspace { + return &v + }).(WorkspacePtrOutput) +} + +type WorkspacePtrOutput struct { + *pulumi.OutputState +} + +func (WorkspacePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Workspace)(nil)) +} + +func (o WorkspacePtrOutput) ToWorkspacePtrOutput() WorkspacePtrOutput { + return o +} + +func (o WorkspacePtrOutput) ToWorkspacePtrOutputWithContext(ctx context.Context) WorkspacePtrOutput { + return o +} + +type WorkspaceArrayOutput struct{ *pulumi.OutputState } + +func (WorkspaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Workspace)(nil)) +} + +func (o WorkspaceArrayOutput) ToWorkspaceArrayOutput() WorkspaceArrayOutput { + return o +} + +func (o WorkspaceArrayOutput) ToWorkspaceArrayOutputWithContext(ctx context.Context) WorkspaceArrayOutput { + return o +} + +func (o WorkspaceArrayOutput) Index(i pulumi.IntInput) WorkspaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Workspace { + return vs[0].([]Workspace)[vs[1].(int)] + }).(WorkspaceOutput) +} + +type WorkspaceMapOutput struct{ *pulumi.OutputState } + +func (WorkspaceMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]Workspace)(nil)) +} + +func (o WorkspaceMapOutput) ToWorkspaceMapOutput() WorkspaceMapOutput { + return o +} + +func (o WorkspaceMapOutput) ToWorkspaceMapOutputWithContext(ctx context.Context) WorkspaceMapOutput { + return o +} + +func (o WorkspaceMapOutput) MapIndex(k pulumi.StringInput) WorkspaceOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) Workspace { + return vs[0].(map[string]Workspace)[vs[1].(string)] + }).(WorkspaceOutput) +} + +func init() { + pulumi.RegisterOutputType(WorkspaceOutput{}) + pulumi.RegisterOutputType(WorkspacePtrOutput{}) + pulumi.RegisterOutputType(WorkspaceArrayOutput{}) + pulumi.RegisterOutputType(WorkspaceMapOutput{}) +} diff --git a/sdk/go/aws/apigatewayv2/api.go b/sdk/go/aws/apigatewayv2/api.go index 1fe7ccfffac..3acab2f1e50 100644 --- a/sdk/go/aws/apigatewayv2/api.go +++ b/sdk/go/aws/apigatewayv2/api.go @@ -74,7 +74,7 @@ import ( type Api struct { pulumi.CustomResourceState - // The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + // The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. ApiEndpoint pulumi.StringOutput `pulumi:"apiEndpoint"` // An [API key selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). // Valid values: `$context.authorizer.usageIdentifierKey`, `$request.header.x-api-key`. Defaults to `$request.header.x-api-key`. @@ -149,7 +149,7 @@ func GetApi(ctx *pulumi.Context, // Input properties used for looking up and filtering Api resources. type apiState struct { - // The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + // The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. ApiEndpoint *string `pulumi:"apiEndpoint"` // An [API key selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). // Valid values: `$context.authorizer.usageIdentifierKey`, `$request.header.x-api-key`. Defaults to `$request.header.x-api-key`. @@ -193,7 +193,7 @@ type apiState struct { } type ApiState struct { - // The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + // The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. ApiEndpoint pulumi.StringPtrInput // An [API key selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). // Valid values: `$context.authorizer.usageIdentifierKey`, `$request.header.x-api-key`. Defaults to `$request.header.x-api-key`. diff --git a/sdk/go/aws/appautoscaling/policy.go b/sdk/go/aws/appautoscaling/policy.go index a85841a1214..f654ec0719d 100644 --- a/sdk/go/aws/appautoscaling/policy.go +++ b/sdk/go/aws/appautoscaling/policy.go @@ -170,6 +170,47 @@ import ( // }) // } // ``` +// ### MSK / Kafka Autoscaling +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// mskTarget, err := appautoscaling.NewTarget(ctx, "mskTarget", &appautoscaling.TargetArgs{ +// ServiceNamespace: pulumi.String("kafka"), +// ScalableDimension: pulumi.String("kafka:broker-storage:VolumeSize"), +// ResourceId: pulumi.Any(aws_msk_cluster.Example.Arn), +// MinCapacity: pulumi.Int(1), +// MaxCapacity: pulumi.Int(8), +// }) +// if err != nil { +// return err +// } +// _, err = appautoscaling.NewPolicy(ctx, "targets", &appautoscaling.PolicyArgs{ +// ServiceNamespace: mskTarget.ServiceNamespace, +// ScalableDimension: mskTarget.ScalableDimension, +// ResourceId: mskTarget.ResourceId, +// PolicyType: pulumi.String("TargetTrackingScaling"), +// TargetTrackingScalingPolicyConfiguration: &appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs{ +// PredefinedMetricSpecification: &appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs{ +// PredefinedMetricType: pulumi.String("KafkaBrokerStorageUtilization"), +// }, +// TargetValue: pulumi.Float64(55), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` // // ## Import // diff --git a/sdk/go/aws/appautoscaling/target.go b/sdk/go/aws/appautoscaling/target.go index 04df4f244ca..a6369b59962 100644 --- a/sdk/go/aws/appautoscaling/target.go +++ b/sdk/go/aws/appautoscaling/target.go @@ -128,6 +128,32 @@ import ( // }) // } // ``` +// ### MSK / Kafka Autoscaling +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appautoscaling" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := appautoscaling.NewTarget(ctx, "mskTarget", &appautoscaling.TargetArgs{ +// MaxCapacity: pulumi.Int(8), +// MinCapacity: pulumi.Int(1), +// ResourceId: pulumi.Any(aws_msk_cluster.Example.Arn), +// ScalableDimension: pulumi.String("kafka:broker-storage:VolumeSize"), +// ServiceNamespace: pulumi.String("kafka"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` // // ## Import // diff --git a/sdk/go/aws/applicationloadbalancing/pulumiTypes.go b/sdk/go/aws/applicationloadbalancing/pulumiTypes.go index 22ee12eac99..c0a81010216 100644 --- a/sdk/go/aws/applicationloadbalancing/pulumiTypes.go +++ b/sdk/go/aws/applicationloadbalancing/pulumiTypes.go @@ -4766,6 +4766,7 @@ type GetListenerDefaultAction struct { AuthenticateCognitos []GetListenerDefaultActionAuthenticateCognito `pulumi:"authenticateCognitos"` AuthenticateOidcs []GetListenerDefaultActionAuthenticateOidc `pulumi:"authenticateOidcs"` FixedResponses []GetListenerDefaultActionFixedResponse `pulumi:"fixedResponses"` + Forwards []GetListenerDefaultActionForward `pulumi:"forwards"` Order int `pulumi:"order"` Redirects []GetListenerDefaultActionRedirect `pulumi:"redirects"` TargetGroupArn string `pulumi:"targetGroupArn"` @@ -4787,6 +4788,7 @@ type GetListenerDefaultActionArgs struct { AuthenticateCognitos GetListenerDefaultActionAuthenticateCognitoArrayInput `pulumi:"authenticateCognitos"` AuthenticateOidcs GetListenerDefaultActionAuthenticateOidcArrayInput `pulumi:"authenticateOidcs"` FixedResponses GetListenerDefaultActionFixedResponseArrayInput `pulumi:"fixedResponses"` + Forwards GetListenerDefaultActionForwardArrayInput `pulumi:"forwards"` Order pulumi.IntInput `pulumi:"order"` Redirects GetListenerDefaultActionRedirectArrayInput `pulumi:"redirects"` TargetGroupArn pulumi.StringInput `pulumi:"targetGroupArn"` @@ -4860,6 +4862,10 @@ func (o GetListenerDefaultActionOutput) FixedResponses() GetListenerDefaultActio return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionFixedResponse { return v.FixedResponses }).(GetListenerDefaultActionFixedResponseArrayOutput) } +func (o GetListenerDefaultActionOutput) Forwards() GetListenerDefaultActionForwardArrayOutput { + return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionForward { return v.Forwards }).(GetListenerDefaultActionForwardArrayOutput) +} + func (o GetListenerDefaultActionOutput) Order() pulumi.IntOutput { return o.ApplyT(func(v GetListenerDefaultAction) int { return v.Order }).(pulumi.IntOutput) } @@ -5296,6 +5302,313 @@ func (o GetListenerDefaultActionFixedResponseArrayOutput) Index(i pulumi.IntInpu }).(GetListenerDefaultActionFixedResponseOutput) } +type GetListenerDefaultActionForward struct { + Stickinesses []GetListenerDefaultActionForwardStickiness `pulumi:"stickinesses"` + TargetGroups []GetListenerDefaultActionForwardTargetGroup `pulumi:"targetGroups"` +} + +// GetListenerDefaultActionForwardInput is an input type that accepts GetListenerDefaultActionForwardArgs and GetListenerDefaultActionForwardOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardInput` via: +// +// GetListenerDefaultActionForwardArgs{...} +type GetListenerDefaultActionForwardInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput + ToGetListenerDefaultActionForwardOutputWithContext(context.Context) GetListenerDefaultActionForwardOutput +} + +type GetListenerDefaultActionForwardArgs struct { + Stickinesses GetListenerDefaultActionForwardStickinessArrayInput `pulumi:"stickinesses"` + TargetGroups GetListenerDefaultActionForwardTargetGroupArrayInput `pulumi:"targetGroups"` +} + +func (GetListenerDefaultActionForwardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return i.ToGetListenerDefaultActionForwardOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardOutput) +} + +// GetListenerDefaultActionForwardArrayInput is an input type that accepts GetListenerDefaultActionForwardArray and GetListenerDefaultActionForwardArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardArrayInput` via: +// +// GetListenerDefaultActionForwardArray{ GetListenerDefaultActionForwardArgs{...} } +type GetListenerDefaultActionForwardArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput + ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardArrayOutput +} + +type GetListenerDefaultActionForwardArray []GetListenerDefaultActionForwardInput + +func (GetListenerDefaultActionForwardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return i.ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardArrayOutput) +} + +type GetListenerDefaultActionForwardOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) Stickinesses() GetListenerDefaultActionForwardStickinessArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardStickiness { + return v.Stickinesses + }).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +func (o GetListenerDefaultActionForwardOutput) TargetGroups() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardTargetGroup { + return v.TargetGroups + }).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForward { + return vs[0].([]GetListenerDefaultActionForward)[vs[1].(int)] + }).(GetListenerDefaultActionForwardOutput) +} + +type GetListenerDefaultActionForwardStickiness struct { + Duration int `pulumi:"duration"` + Enabled bool `pulumi:"enabled"` +} + +// GetListenerDefaultActionForwardStickinessInput is an input type that accepts GetListenerDefaultActionForwardStickinessArgs and GetListenerDefaultActionForwardStickinessOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessInput` via: +// +// GetListenerDefaultActionForwardStickinessArgs{...} +type GetListenerDefaultActionForwardStickinessInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput + ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessOutput +} + +type GetListenerDefaultActionForwardStickinessArgs struct { + Duration pulumi.IntInput `pulumi:"duration"` + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetListenerDefaultActionForwardStickinessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return i.ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessOutput) +} + +// GetListenerDefaultActionForwardStickinessArrayInput is an input type that accepts GetListenerDefaultActionForwardStickinessArray and GetListenerDefaultActionForwardStickinessArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessArrayInput` via: +// +// GetListenerDefaultActionForwardStickinessArray{ GetListenerDefaultActionForwardStickinessArgs{...} } +type GetListenerDefaultActionForwardStickinessArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput + ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessArrayOutput +} + +type GetListenerDefaultActionForwardStickinessArray []GetListenerDefaultActionForwardStickinessInput + +func (GetListenerDefaultActionForwardStickinessArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return i.ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +type GetListenerDefaultActionForwardStickinessOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Duration() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) int { return v.Duration }).(pulumi.IntOutput) +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetListenerDefaultActionForwardStickinessArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardStickiness { + return vs[0].([]GetListenerDefaultActionForwardStickiness)[vs[1].(int)] + }).(GetListenerDefaultActionForwardStickinessOutput) +} + +type GetListenerDefaultActionForwardTargetGroup struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn string `pulumi:"arn"` + Weight int `pulumi:"weight"` +} + +// GetListenerDefaultActionForwardTargetGroupInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArgs and GetListenerDefaultActionForwardTargetGroupOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArgs{...} +type GetListenerDefaultActionForwardTargetGroupInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput + ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupOutput +} + +type GetListenerDefaultActionForwardTargetGroupArgs struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn pulumi.StringInput `pulumi:"arn"` + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (GetListenerDefaultActionForwardTargetGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupOutput) +} + +// GetListenerDefaultActionForwardTargetGroupArrayInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArray and GetListenerDefaultActionForwardTargetGroupArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupArrayInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArray{ GetListenerDefaultActionForwardTargetGroupArgs{...} } +type GetListenerDefaultActionForwardTargetGroupArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput + ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput +} + +type GetListenerDefaultActionForwardTargetGroupArray []GetListenerDefaultActionForwardTargetGroupInput + +func (GetListenerDefaultActionForwardTargetGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardTargetGroupOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +// The arn of the listener. Required if `loadBalancerArn` and `port` is not set. +func (o GetListenerDefaultActionForwardTargetGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) int { return v.Weight }).(pulumi.IntOutput) +} + +type GetListenerDefaultActionForwardTargetGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardTargetGroup { + return vs[0].([]GetListenerDefaultActionForwardTargetGroup)[vs[1].(int)] + }).(GetListenerDefaultActionForwardTargetGroupOutput) +} + type GetListenerDefaultActionRedirect struct { Host string `pulumi:"host"` Path string `pulumi:"path"` @@ -5817,6 +6130,12 @@ func init() { pulumi.RegisterOutputType(GetListenerDefaultActionAuthenticateOidcArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectArrayOutput{}) pulumi.RegisterOutputType(GetLoadBalancerAccessLogsOutput{}) diff --git a/sdk/go/aws/codeartifact/domain.go b/sdk/go/aws/codeartifact/domain.go index aaa819c7298..2c2d41d8d91 100644 --- a/sdk/go/aws/codeartifact/domain.go +++ b/sdk/go/aws/codeartifact/domain.go @@ -20,21 +20,13 @@ import ( // // import ( // "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codeartifact" -// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/kms" // "github.com/pulumi/pulumi/sdk/v2/go/pulumi" // ) // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// exampleKey, err := kms.NewKey(ctx, "exampleKey", &kms.KeyArgs{ -// Description: pulumi.String("domain key"), -// }) -// if err != nil { -// return err -// } -// _, err = codeartifact.NewDomain(ctx, "exampleDomain", &codeartifact.DomainArgs{ -// Domain: pulumi.String("example"), -// EncryptionKey: exampleKey.Arn, +// _, err := codeartifact.NewDomain(ctx, "example", &codeartifact.DomainArgs{ +// Domain: pulumi.String("example"), // }) // if err != nil { // return err @@ -62,7 +54,7 @@ type Domain struct { CreatedTime pulumi.StringOutput `pulumi:"createdTime"` // The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. Domain pulumi.StringOutput `pulumi:"domain"` - // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. EncryptionKey pulumi.StringOutput `pulumi:"encryptionKey"` // The AWS account ID that owns the domain. Owner pulumi.StringOutput `pulumi:"owner"` @@ -82,9 +74,6 @@ func NewDomain(ctx *pulumi.Context, if args.Domain == nil { return nil, errors.New("invalid value for required argument 'Domain'") } - if args.EncryptionKey == nil { - return nil, errors.New("invalid value for required argument 'EncryptionKey'") - } var resource Domain err := ctx.RegisterResource("aws:codeartifact/domain:Domain", name, args, &resource, opts...) if err != nil { @@ -115,7 +104,7 @@ type domainState struct { CreatedTime *string `pulumi:"createdTime"` // The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. Domain *string `pulumi:"domain"` - // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. EncryptionKey *string `pulumi:"encryptionKey"` // The AWS account ID that owns the domain. Owner *string `pulumi:"owner"` @@ -134,7 +123,7 @@ type DomainState struct { CreatedTime pulumi.StringPtrInput // The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. Domain pulumi.StringPtrInput - // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. EncryptionKey pulumi.StringPtrInput // The AWS account ID that owns the domain. Owner pulumi.StringPtrInput @@ -151,8 +140,8 @@ func (DomainState) ElementType() reflect.Type { type domainArgs struct { // The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. Domain string `pulumi:"domain"` - // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). - EncryptionKey string `pulumi:"encryptionKey"` + // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. + EncryptionKey *string `pulumi:"encryptionKey"` // Key-value map of resource tags. Tags map[string]string `pulumi:"tags"` } @@ -161,8 +150,8 @@ type domainArgs struct { type DomainArgs struct { // The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. Domain pulumi.StringInput - // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). - EncryptionKey pulumi.StringInput + // The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. + EncryptionKey pulumi.StringPtrInput // Key-value map of resource tags. Tags pulumi.StringMapInput } diff --git a/sdk/go/aws/config/pulumiTypes.go b/sdk/go/aws/config/pulumiTypes.go index a0173f2ffc6..016b7ff1acf 100644 --- a/sdk/go/aws/config/pulumiTypes.go +++ b/sdk/go/aws/config/pulumiTypes.go @@ -160,6 +160,7 @@ type Endpoints struct { Elastictranscoder *string `pulumi:"elastictranscoder"` Elb *string `pulumi:"elb"` Emr *string `pulumi:"emr"` + Emrcontainers *string `pulumi:"emrcontainers"` Es *string `pulumi:"es"` Firehose *string `pulumi:"firehose"` Fms *string `pulumi:"fms"` @@ -324,6 +325,7 @@ type EndpointsArgs struct { Elastictranscoder pulumi.StringPtrInput `pulumi:"elastictranscoder"` Elb pulumi.StringPtrInput `pulumi:"elb"` Emr pulumi.StringPtrInput `pulumi:"emr"` + Emrcontainers pulumi.StringPtrInput `pulumi:"emrcontainers"` Es pulumi.StringPtrInput `pulumi:"es"` Firehose pulumi.StringPtrInput `pulumi:"firehose"` Fms pulumi.StringPtrInput `pulumi:"fms"` @@ -701,6 +703,10 @@ func (o EndpointsOutput) Emr() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Emr }).(pulumi.StringPtrOutput) } +func (o EndpointsOutput) Emrcontainers() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.Emrcontainers }).(pulumi.StringPtrOutput) +} + func (o EndpointsOutput) Es() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Es }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/ebs/volume.go b/sdk/go/aws/ebs/volume.go index 9876a6cc875..399a46ff6c9 100644 --- a/sdk/go/aws/ebs/volume.go +++ b/sdk/go/aws/ebs/volume.go @@ -40,7 +40,7 @@ import ( // } // ``` // -// > **NOTE**: One of `size` or `snapshotId` is required when specifying an EBS volume +// > **NOTE**: At least one of `size` or `snapshotId` is required when specifying an EBS volume // // ## Import // diff --git a/sdk/go/aws/ec2/getVpcPeeringConnection.go b/sdk/go/aws/ec2/getVpcPeeringConnection.go index b68faf7466f..cdb5816da18 100644 --- a/sdk/go/aws/ec2/getVpcPeeringConnection.go +++ b/sdk/go/aws/ec2/getVpcPeeringConnection.go @@ -60,7 +60,7 @@ func LookupVpcPeeringConnection(ctx *pulumi.Context, args *LookupVpcPeeringConne // A collection of arguments for invoking getVpcPeeringConnection. type LookupVpcPeeringConnectionArgs struct { - // The CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + // The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. CidrBlock *string `pulumi:"cidrBlock"` // Custom filter block as described below. Filters []GetVpcPeeringConnectionFilter `pulumi:"filters"` @@ -68,7 +68,7 @@ type LookupVpcPeeringConnectionArgs struct { Id *string `pulumi:"id"` // The AWS account ID of the owner of the requester VPC of the specific VPC Peering Connection to retrieve. OwnerId *string `pulumi:"ownerId"` - // The CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. + // The primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. PeerCidrBlock *string `pulumi:"peerCidrBlock"` // The AWS account ID of the owner of the accepter VPC of the specific VPC Peering Connection to retrieve. PeerOwnerId *string `pulumi:"peerOwnerId"` @@ -91,16 +91,21 @@ type LookupVpcPeeringConnectionArgs struct { type LookupVpcPeeringConnectionResult struct { // A configuration block that describes [VPC Peering Connection] // (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC. - Accepter map[string]bool `pulumi:"accepter"` - CidrBlock string `pulumi:"cidrBlock"` - Filters []GetVpcPeeringConnectionFilter `pulumi:"filters"` - Id string `pulumi:"id"` - OwnerId string `pulumi:"ownerId"` - PeerCidrBlock string `pulumi:"peerCidrBlock"` - PeerOwnerId string `pulumi:"peerOwnerId"` - PeerRegion string `pulumi:"peerRegion"` - PeerVpcId string `pulumi:"peerVpcId"` - Region string `pulumi:"region"` + Accepter map[string]bool `pulumi:"accepter"` + // A CIDR block associated to the VPC of the specific VPC Peering Connection. + CidrBlock string `pulumi:"cidrBlock"` + // List of objects with CIDR blocks of the requester VPC. + CidrBlockSets []GetVpcPeeringConnectionCidrBlockSet `pulumi:"cidrBlockSets"` + Filters []GetVpcPeeringConnectionFilter `pulumi:"filters"` + Id string `pulumi:"id"` + OwnerId string `pulumi:"ownerId"` + PeerCidrBlock string `pulumi:"peerCidrBlock"` + // List of objects with CIDR blocks of the accepter VPC. + PeerCidrBlockSets []GetVpcPeeringConnectionPeerCidrBlockSet `pulumi:"peerCidrBlockSets"` + PeerOwnerId string `pulumi:"peerOwnerId"` + PeerRegion string `pulumi:"peerRegion"` + PeerVpcId string `pulumi:"peerVpcId"` + Region string `pulumi:"region"` // A configuration block that describes [VPC Peering Connection] // (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the requester VPC. Requester map[string]bool `pulumi:"requester"` diff --git a/sdk/go/aws/ec2/pulumiTypes.go b/sdk/go/aws/ec2/pulumiTypes.go index 4e379414311..646bf0a23f7 100644 --- a/sdk/go/aws/ec2/pulumiTypes.go +++ b/sdk/go/aws/ec2/pulumiTypes.go @@ -4861,7 +4861,7 @@ type LaunchTemplateBlockDeviceMappingEbs struct { KmsKeyId *string `pulumi:"kmsKeyId"` // The Snapshot ID to mount. SnapshotId *string `pulumi:"snapshotId"` - // The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + // The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. Throughput *int `pulumi:"throughput"` // The size of the volume in gigabytes. VolumeSize *int `pulumi:"volumeSize"` @@ -4895,7 +4895,7 @@ type LaunchTemplateBlockDeviceMappingEbsArgs struct { KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` // The Snapshot ID to mount. SnapshotId pulumi.StringPtrInput `pulumi:"snapshotId"` - // The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + // The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. Throughput pulumi.IntPtrInput `pulumi:"throughput"` // The size of the volume in gigabytes. VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` @@ -5009,7 +5009,7 @@ func (o LaunchTemplateBlockDeviceMappingEbsOutput) SnapshotId() pulumi.StringPtr return o.ApplyT(func(v LaunchTemplateBlockDeviceMappingEbs) *string { return v.SnapshotId }).(pulumi.StringPtrOutput) } -// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. +// The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. func (o LaunchTemplateBlockDeviceMappingEbsOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateBlockDeviceMappingEbs) *int { return v.Throughput }).(pulumi.IntPtrOutput) } @@ -5096,7 +5096,7 @@ func (o LaunchTemplateBlockDeviceMappingEbsPtrOutput) SnapshotId() pulumi.String }).(pulumi.StringPtrOutput) } -// The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. +// The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. func (o LaunchTemplateBlockDeviceMappingEbsPtrOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v *LaunchTemplateBlockDeviceMappingEbs) *int { if v == nil { @@ -20765,6 +20765,103 @@ func (o GetVpcFilterArrayOutput) Index(i pulumi.IntInput) GetVpcFilterOutput { }).(GetVpcFilterOutput) } +type GetVpcPeeringConnectionCidrBlockSet struct { + // The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + CidrBlock string `pulumi:"cidrBlock"` +} + +// GetVpcPeeringConnectionCidrBlockSetInput is an input type that accepts GetVpcPeeringConnectionCidrBlockSetArgs and GetVpcPeeringConnectionCidrBlockSetOutput values. +// You can construct a concrete instance of `GetVpcPeeringConnectionCidrBlockSetInput` via: +// +// GetVpcPeeringConnectionCidrBlockSetArgs{...} +type GetVpcPeeringConnectionCidrBlockSetInput interface { + pulumi.Input + + ToGetVpcPeeringConnectionCidrBlockSetOutput() GetVpcPeeringConnectionCidrBlockSetOutput + ToGetVpcPeeringConnectionCidrBlockSetOutputWithContext(context.Context) GetVpcPeeringConnectionCidrBlockSetOutput +} + +type GetVpcPeeringConnectionCidrBlockSetArgs struct { + // The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + CidrBlock pulumi.StringInput `pulumi:"cidrBlock"` +} + +func (GetVpcPeeringConnectionCidrBlockSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcPeeringConnectionCidrBlockSet)(nil)).Elem() +} + +func (i GetVpcPeeringConnectionCidrBlockSetArgs) ToGetVpcPeeringConnectionCidrBlockSetOutput() GetVpcPeeringConnectionCidrBlockSetOutput { + return i.ToGetVpcPeeringConnectionCidrBlockSetOutputWithContext(context.Background()) +} + +func (i GetVpcPeeringConnectionCidrBlockSetArgs) ToGetVpcPeeringConnectionCidrBlockSetOutputWithContext(ctx context.Context) GetVpcPeeringConnectionCidrBlockSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcPeeringConnectionCidrBlockSetOutput) +} + +// GetVpcPeeringConnectionCidrBlockSetArrayInput is an input type that accepts GetVpcPeeringConnectionCidrBlockSetArray and GetVpcPeeringConnectionCidrBlockSetArrayOutput values. +// You can construct a concrete instance of `GetVpcPeeringConnectionCidrBlockSetArrayInput` via: +// +// GetVpcPeeringConnectionCidrBlockSetArray{ GetVpcPeeringConnectionCidrBlockSetArgs{...} } +type GetVpcPeeringConnectionCidrBlockSetArrayInput interface { + pulumi.Input + + ToGetVpcPeeringConnectionCidrBlockSetArrayOutput() GetVpcPeeringConnectionCidrBlockSetArrayOutput + ToGetVpcPeeringConnectionCidrBlockSetArrayOutputWithContext(context.Context) GetVpcPeeringConnectionCidrBlockSetArrayOutput +} + +type GetVpcPeeringConnectionCidrBlockSetArray []GetVpcPeeringConnectionCidrBlockSetInput + +func (GetVpcPeeringConnectionCidrBlockSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcPeeringConnectionCidrBlockSet)(nil)).Elem() +} + +func (i GetVpcPeeringConnectionCidrBlockSetArray) ToGetVpcPeeringConnectionCidrBlockSetArrayOutput() GetVpcPeeringConnectionCidrBlockSetArrayOutput { + return i.ToGetVpcPeeringConnectionCidrBlockSetArrayOutputWithContext(context.Background()) +} + +func (i GetVpcPeeringConnectionCidrBlockSetArray) ToGetVpcPeeringConnectionCidrBlockSetArrayOutputWithContext(ctx context.Context) GetVpcPeeringConnectionCidrBlockSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcPeeringConnectionCidrBlockSetArrayOutput) +} + +type GetVpcPeeringConnectionCidrBlockSetOutput struct{ *pulumi.OutputState } + +func (GetVpcPeeringConnectionCidrBlockSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcPeeringConnectionCidrBlockSet)(nil)).Elem() +} + +func (o GetVpcPeeringConnectionCidrBlockSetOutput) ToGetVpcPeeringConnectionCidrBlockSetOutput() GetVpcPeeringConnectionCidrBlockSetOutput { + return o +} + +func (o GetVpcPeeringConnectionCidrBlockSetOutput) ToGetVpcPeeringConnectionCidrBlockSetOutputWithContext(ctx context.Context) GetVpcPeeringConnectionCidrBlockSetOutput { + return o +} + +// The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. +func (o GetVpcPeeringConnectionCidrBlockSetOutput) CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcPeeringConnectionCidrBlockSet) string { return v.CidrBlock }).(pulumi.StringOutput) +} + +type GetVpcPeeringConnectionCidrBlockSetArrayOutput struct{ *pulumi.OutputState } + +func (GetVpcPeeringConnectionCidrBlockSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcPeeringConnectionCidrBlockSet)(nil)).Elem() +} + +func (o GetVpcPeeringConnectionCidrBlockSetArrayOutput) ToGetVpcPeeringConnectionCidrBlockSetArrayOutput() GetVpcPeeringConnectionCidrBlockSetArrayOutput { + return o +} + +func (o GetVpcPeeringConnectionCidrBlockSetArrayOutput) ToGetVpcPeeringConnectionCidrBlockSetArrayOutputWithContext(ctx context.Context) GetVpcPeeringConnectionCidrBlockSetArrayOutput { + return o +} + +func (o GetVpcPeeringConnectionCidrBlockSetArrayOutput) Index(i pulumi.IntInput) GetVpcPeeringConnectionCidrBlockSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetVpcPeeringConnectionCidrBlockSet { + return vs[0].([]GetVpcPeeringConnectionCidrBlockSet)[vs[1].(int)] + }).(GetVpcPeeringConnectionCidrBlockSetOutput) +} + type GetVpcPeeringConnectionFilter struct { // The name of the field to filter by, as defined by // [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcPeeringConnections.html). @@ -20877,6 +20974,103 @@ func (o GetVpcPeeringConnectionFilterArrayOutput) Index(i pulumi.IntInput) GetVp }).(GetVpcPeeringConnectionFilterOutput) } +type GetVpcPeeringConnectionPeerCidrBlockSet struct { + // The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + CidrBlock string `pulumi:"cidrBlock"` +} + +// GetVpcPeeringConnectionPeerCidrBlockSetInput is an input type that accepts GetVpcPeeringConnectionPeerCidrBlockSetArgs and GetVpcPeeringConnectionPeerCidrBlockSetOutput values. +// You can construct a concrete instance of `GetVpcPeeringConnectionPeerCidrBlockSetInput` via: +// +// GetVpcPeeringConnectionPeerCidrBlockSetArgs{...} +type GetVpcPeeringConnectionPeerCidrBlockSetInput interface { + pulumi.Input + + ToGetVpcPeeringConnectionPeerCidrBlockSetOutput() GetVpcPeeringConnectionPeerCidrBlockSetOutput + ToGetVpcPeeringConnectionPeerCidrBlockSetOutputWithContext(context.Context) GetVpcPeeringConnectionPeerCidrBlockSetOutput +} + +type GetVpcPeeringConnectionPeerCidrBlockSetArgs struct { + // The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + CidrBlock pulumi.StringInput `pulumi:"cidrBlock"` +} + +func (GetVpcPeeringConnectionPeerCidrBlockSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcPeeringConnectionPeerCidrBlockSet)(nil)).Elem() +} + +func (i GetVpcPeeringConnectionPeerCidrBlockSetArgs) ToGetVpcPeeringConnectionPeerCidrBlockSetOutput() GetVpcPeeringConnectionPeerCidrBlockSetOutput { + return i.ToGetVpcPeeringConnectionPeerCidrBlockSetOutputWithContext(context.Background()) +} + +func (i GetVpcPeeringConnectionPeerCidrBlockSetArgs) ToGetVpcPeeringConnectionPeerCidrBlockSetOutputWithContext(ctx context.Context) GetVpcPeeringConnectionPeerCidrBlockSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcPeeringConnectionPeerCidrBlockSetOutput) +} + +// GetVpcPeeringConnectionPeerCidrBlockSetArrayInput is an input type that accepts GetVpcPeeringConnectionPeerCidrBlockSetArray and GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput values. +// You can construct a concrete instance of `GetVpcPeeringConnectionPeerCidrBlockSetArrayInput` via: +// +// GetVpcPeeringConnectionPeerCidrBlockSetArray{ GetVpcPeeringConnectionPeerCidrBlockSetArgs{...} } +type GetVpcPeeringConnectionPeerCidrBlockSetArrayInput interface { + pulumi.Input + + ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutput() GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput + ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutputWithContext(context.Context) GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput +} + +type GetVpcPeeringConnectionPeerCidrBlockSetArray []GetVpcPeeringConnectionPeerCidrBlockSetInput + +func (GetVpcPeeringConnectionPeerCidrBlockSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcPeeringConnectionPeerCidrBlockSet)(nil)).Elem() +} + +func (i GetVpcPeeringConnectionPeerCidrBlockSetArray) ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutput() GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput { + return i.ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutputWithContext(context.Background()) +} + +func (i GetVpcPeeringConnectionPeerCidrBlockSetArray) ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutputWithContext(ctx context.Context) GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput) +} + +type GetVpcPeeringConnectionPeerCidrBlockSetOutput struct{ *pulumi.OutputState } + +func (GetVpcPeeringConnectionPeerCidrBlockSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetVpcPeeringConnectionPeerCidrBlockSet)(nil)).Elem() +} + +func (o GetVpcPeeringConnectionPeerCidrBlockSetOutput) ToGetVpcPeeringConnectionPeerCidrBlockSetOutput() GetVpcPeeringConnectionPeerCidrBlockSetOutput { + return o +} + +func (o GetVpcPeeringConnectionPeerCidrBlockSetOutput) ToGetVpcPeeringConnectionPeerCidrBlockSetOutputWithContext(ctx context.Context) GetVpcPeeringConnectionPeerCidrBlockSetOutput { + return o +} + +// The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. +func (o GetVpcPeeringConnectionPeerCidrBlockSetOutput) CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v GetVpcPeeringConnectionPeerCidrBlockSet) string { return v.CidrBlock }).(pulumi.StringOutput) +} + +type GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput struct{ *pulumi.OutputState } + +func (GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetVpcPeeringConnectionPeerCidrBlockSet)(nil)).Elem() +} + +func (o GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput) ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutput() GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput { + return o +} + +func (o GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput) ToGetVpcPeeringConnectionPeerCidrBlockSetArrayOutputWithContext(ctx context.Context) GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput { + return o +} + +func (o GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput) Index(i pulumi.IntInput) GetVpcPeeringConnectionPeerCidrBlockSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetVpcPeeringConnectionPeerCidrBlockSet { + return vs[0].([]GetVpcPeeringConnectionPeerCidrBlockSet)[vs[1].(int)] + }).(GetVpcPeeringConnectionPeerCidrBlockSetOutput) +} + type GetVpcPeeringConnectionsFilter struct { // The name of the field to filter by, as defined by // [the underlying AWS API](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcPeeringConnections.html). @@ -21517,8 +21711,12 @@ func init() { pulumi.RegisterOutputType(GetVpcEndpointServiceFilterArrayOutput{}) pulumi.RegisterOutputType(GetVpcFilterOutput{}) pulumi.RegisterOutputType(GetVpcFilterArrayOutput{}) + pulumi.RegisterOutputType(GetVpcPeeringConnectionCidrBlockSetOutput{}) + pulumi.RegisterOutputType(GetVpcPeeringConnectionCidrBlockSetArrayOutput{}) pulumi.RegisterOutputType(GetVpcPeeringConnectionFilterOutput{}) pulumi.RegisterOutputType(GetVpcPeeringConnectionFilterArrayOutput{}) + pulumi.RegisterOutputType(GetVpcPeeringConnectionPeerCidrBlockSetOutput{}) + pulumi.RegisterOutputType(GetVpcPeeringConnectionPeerCidrBlockSetArrayOutput{}) pulumi.RegisterOutputType(GetVpcPeeringConnectionsFilterOutput{}) pulumi.RegisterOutputType(GetVpcPeeringConnectionsFilterArrayOutput{}) pulumi.RegisterOutputType(GetVpcsFilterOutput{}) diff --git a/sdk/go/aws/elasticache/getReplicationGroup.go b/sdk/go/aws/elasticache/getReplicationGroup.go index bf1be149252..b9e417cbb9a 100644 --- a/sdk/go/aws/elasticache/getReplicationGroup.go +++ b/sdk/go/aws/elasticache/getReplicationGroup.go @@ -50,7 +50,7 @@ type LookupReplicationGroupArgs struct { type LookupReplicationGroupResult struct { // The Amazon Resource Name (ARN) of the created ElastiCache Replication Group. Arn string `pulumi:"arn"` - // A flag that enables using an AuthToken (password) when issuing Redis commands. + // Specifies whether an AuthToken (password) is enabled. AuthTokenEnabled bool `pulumi:"authTokenEnabled"` // A flag whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. AutomaticFailoverEnabled bool `pulumi:"automaticFailoverEnabled"` @@ -60,6 +60,8 @@ type LookupReplicationGroupResult struct { Id string `pulumi:"id"` // The identifiers of all the nodes that are part of this replication group. MemberClusters []string `pulumi:"memberClusters"` + // Specifies whether Multi-AZ Support is enabled for the replication group. + MultiAzEnabled bool `pulumi:"multiAzEnabled"` // The cluster node type. NodeType string `pulumi:"nodeType"` // The number of cache clusters that the replication group has. diff --git a/sdk/go/aws/elasticache/pulumiTypes.go b/sdk/go/aws/elasticache/pulumiTypes.go index 2e703a92599..6d59f1e3109 100644 --- a/sdk/go/aws/elasticache/pulumiTypes.go +++ b/sdk/go/aws/elasticache/pulumiTypes.go @@ -237,7 +237,7 @@ func (o ParameterGroupParameterArrayOutput) Index(i pulumi.IntInput) ParameterGr type ReplicationGroupClusterMode struct { // Specify the number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. NumNodeGroups int `pulumi:"numNodeGroups"` - // Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + // Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. ReplicasPerNodeGroup int `pulumi:"replicasPerNodeGroup"` } @@ -255,7 +255,7 @@ type ReplicationGroupClusterModeInput interface { type ReplicationGroupClusterModeArgs struct { // Specify the number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. NumNodeGroups pulumi.IntInput `pulumi:"numNodeGroups"` - // Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + // Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. ReplicasPerNodeGroup pulumi.IntInput `pulumi:"replicasPerNodeGroup"` } @@ -341,7 +341,7 @@ func (o ReplicationGroupClusterModeOutput) NumNodeGroups() pulumi.IntOutput { return o.ApplyT(func(v ReplicationGroupClusterMode) int { return v.NumNodeGroups }).(pulumi.IntOutput) } -// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. +// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. func (o ReplicationGroupClusterModeOutput) ReplicasPerNodeGroup() pulumi.IntOutput { return o.ApplyT(func(v ReplicationGroupClusterMode) int { return v.ReplicasPerNodeGroup }).(pulumi.IntOutput) } @@ -374,7 +374,7 @@ func (o ReplicationGroupClusterModePtrOutput) NumNodeGroups() pulumi.IntPtrOutpu }).(pulumi.IntPtrOutput) } -// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. +// Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. func (o ReplicationGroupClusterModePtrOutput) ReplicasPerNodeGroup() pulumi.IntPtrOutput { return o.ApplyT(func(v *ReplicationGroupClusterMode) *int { if v == nil { diff --git a/sdk/go/aws/elasticache/replicationGroup.go b/sdk/go/aws/elasticache/replicationGroup.go index 19355e76a9b..f56425e23f3 100644 --- a/sdk/go/aws/elasticache/replicationGroup.go +++ b/sdk/go/aws/elasticache/replicationGroup.go @@ -180,7 +180,7 @@ type ReplicationGroup struct { ClusterMode ReplicationGroupClusterModeOutput `pulumi:"clusterMode"` // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringOutput `pulumi:"configurationEndpointAddress"` - // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + // The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine pulumi.StringPtrOutput `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` @@ -194,6 +194,8 @@ type ReplicationGroup struct { MaintenanceWindow pulumi.StringOutput `pulumi:"maintenanceWindow"` // The identifiers of all the nodes that are part of this replication group. MemberClusters pulumi.StringArrayOutput `pulumi:"memberClusters"` + // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + MultiAzEnabled pulumi.BoolPtrOutput `pulumi:"multiAzEnabled"` // The compute and memory capacity of the nodes in the node group. NodeType pulumi.StringOutput `pulumi:"nodeType"` // An Amazon Resource Name (ARN) of an @@ -292,7 +294,7 @@ type replicationGroupState struct { ClusterMode *ReplicationGroupClusterMode `pulumi:"clusterMode"` // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress *string `pulumi:"configurationEndpointAddress"` - // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + // The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine *string `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion *string `pulumi:"engineVersion"` @@ -306,6 +308,8 @@ type replicationGroupState struct { MaintenanceWindow *string `pulumi:"maintenanceWindow"` // The identifiers of all the nodes that are part of this replication group. MemberClusters []string `pulumi:"memberClusters"` + // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + MultiAzEnabled *bool `pulumi:"multiAzEnabled"` // The compute and memory capacity of the nodes in the node group. NodeType *string `pulumi:"nodeType"` // An Amazon Resource Name (ARN) of an @@ -373,7 +377,7 @@ type ReplicationGroupState struct { ClusterMode ReplicationGroupClusterModePtrInput // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringPtrInput - // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + // The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine pulumi.StringPtrInput // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringPtrInput @@ -387,6 +391,8 @@ type ReplicationGroupState struct { MaintenanceWindow pulumi.StringPtrInput // The identifiers of all the nodes that are part of this replication group. MemberClusters pulumi.StringArrayInput + // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + MultiAzEnabled pulumi.BoolPtrInput // The compute and memory capacity of the nodes in the node group. NodeType pulumi.StringPtrInput // An Amazon Resource Name (ARN) of an @@ -452,7 +458,7 @@ type replicationGroupArgs struct { AvailabilityZones []string `pulumi:"availabilityZones"` // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode *ReplicationGroupClusterMode `pulumi:"clusterMode"` - // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + // The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine *string `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion *string `pulumi:"engineVersion"` @@ -464,6 +470,8 @@ type replicationGroupArgs struct { // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow *string `pulumi:"maintenanceWindow"` + // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + MultiAzEnabled *bool `pulumi:"multiAzEnabled"` // The compute and memory capacity of the nodes in the node group. NodeType *string `pulumi:"nodeType"` // An Amazon Resource Name (ARN) of an @@ -522,7 +530,7 @@ type ReplicationGroupArgs struct { AvailabilityZones pulumi.StringArrayInput // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode ReplicationGroupClusterModePtrInput - // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + // The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. Engine pulumi.StringPtrInput // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringPtrInput @@ -534,6 +542,8 @@ type ReplicationGroupArgs struct { // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` MaintenanceWindow pulumi.StringPtrInput + // Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + MultiAzEnabled pulumi.BoolPtrInput // The compute and memory capacity of the nodes in the node group. NodeType pulumi.StringPtrInput // An Amazon Resource Name (ARN) of an diff --git a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go index 591caae7583..6164d1669a6 100644 --- a/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go +++ b/sdk/go/aws/elasticloadbalancingv2/pulumiTypes.go @@ -4766,6 +4766,7 @@ type GetListenerDefaultAction struct { AuthenticateCognitos []GetListenerDefaultActionAuthenticateCognito `pulumi:"authenticateCognitos"` AuthenticateOidcs []GetListenerDefaultActionAuthenticateOidc `pulumi:"authenticateOidcs"` FixedResponses []GetListenerDefaultActionFixedResponse `pulumi:"fixedResponses"` + Forwards []GetListenerDefaultActionForward `pulumi:"forwards"` Order int `pulumi:"order"` Redirects []GetListenerDefaultActionRedirect `pulumi:"redirects"` TargetGroupArn string `pulumi:"targetGroupArn"` @@ -4787,6 +4788,7 @@ type GetListenerDefaultActionArgs struct { AuthenticateCognitos GetListenerDefaultActionAuthenticateCognitoArrayInput `pulumi:"authenticateCognitos"` AuthenticateOidcs GetListenerDefaultActionAuthenticateOidcArrayInput `pulumi:"authenticateOidcs"` FixedResponses GetListenerDefaultActionFixedResponseArrayInput `pulumi:"fixedResponses"` + Forwards GetListenerDefaultActionForwardArrayInput `pulumi:"forwards"` Order pulumi.IntInput `pulumi:"order"` Redirects GetListenerDefaultActionRedirectArrayInput `pulumi:"redirects"` TargetGroupArn pulumi.StringInput `pulumi:"targetGroupArn"` @@ -4860,6 +4862,10 @@ func (o GetListenerDefaultActionOutput) FixedResponses() GetListenerDefaultActio return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionFixedResponse { return v.FixedResponses }).(GetListenerDefaultActionFixedResponseArrayOutput) } +func (o GetListenerDefaultActionOutput) Forwards() GetListenerDefaultActionForwardArrayOutput { + return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionForward { return v.Forwards }).(GetListenerDefaultActionForwardArrayOutput) +} + func (o GetListenerDefaultActionOutput) Order() pulumi.IntOutput { return o.ApplyT(func(v GetListenerDefaultAction) int { return v.Order }).(pulumi.IntOutput) } @@ -5296,6 +5302,313 @@ func (o GetListenerDefaultActionFixedResponseArrayOutput) Index(i pulumi.IntInpu }).(GetListenerDefaultActionFixedResponseOutput) } +type GetListenerDefaultActionForward struct { + Stickinesses []GetListenerDefaultActionForwardStickiness `pulumi:"stickinesses"` + TargetGroups []GetListenerDefaultActionForwardTargetGroup `pulumi:"targetGroups"` +} + +// GetListenerDefaultActionForwardInput is an input type that accepts GetListenerDefaultActionForwardArgs and GetListenerDefaultActionForwardOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardInput` via: +// +// GetListenerDefaultActionForwardArgs{...} +type GetListenerDefaultActionForwardInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput + ToGetListenerDefaultActionForwardOutputWithContext(context.Context) GetListenerDefaultActionForwardOutput +} + +type GetListenerDefaultActionForwardArgs struct { + Stickinesses GetListenerDefaultActionForwardStickinessArrayInput `pulumi:"stickinesses"` + TargetGroups GetListenerDefaultActionForwardTargetGroupArrayInput `pulumi:"targetGroups"` +} + +func (GetListenerDefaultActionForwardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return i.ToGetListenerDefaultActionForwardOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardOutput) +} + +// GetListenerDefaultActionForwardArrayInput is an input type that accepts GetListenerDefaultActionForwardArray and GetListenerDefaultActionForwardArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardArrayInput` via: +// +// GetListenerDefaultActionForwardArray{ GetListenerDefaultActionForwardArgs{...} } +type GetListenerDefaultActionForwardArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput + ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardArrayOutput +} + +type GetListenerDefaultActionForwardArray []GetListenerDefaultActionForwardInput + +func (GetListenerDefaultActionForwardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return i.ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardArrayOutput) +} + +type GetListenerDefaultActionForwardOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) Stickinesses() GetListenerDefaultActionForwardStickinessArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardStickiness { + return v.Stickinesses + }).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +func (o GetListenerDefaultActionForwardOutput) TargetGroups() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardTargetGroup { + return v.TargetGroups + }).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForward { + return vs[0].([]GetListenerDefaultActionForward)[vs[1].(int)] + }).(GetListenerDefaultActionForwardOutput) +} + +type GetListenerDefaultActionForwardStickiness struct { + Duration int `pulumi:"duration"` + Enabled bool `pulumi:"enabled"` +} + +// GetListenerDefaultActionForwardStickinessInput is an input type that accepts GetListenerDefaultActionForwardStickinessArgs and GetListenerDefaultActionForwardStickinessOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessInput` via: +// +// GetListenerDefaultActionForwardStickinessArgs{...} +type GetListenerDefaultActionForwardStickinessInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput + ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessOutput +} + +type GetListenerDefaultActionForwardStickinessArgs struct { + Duration pulumi.IntInput `pulumi:"duration"` + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetListenerDefaultActionForwardStickinessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return i.ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessOutput) +} + +// GetListenerDefaultActionForwardStickinessArrayInput is an input type that accepts GetListenerDefaultActionForwardStickinessArray and GetListenerDefaultActionForwardStickinessArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessArrayInput` via: +// +// GetListenerDefaultActionForwardStickinessArray{ GetListenerDefaultActionForwardStickinessArgs{...} } +type GetListenerDefaultActionForwardStickinessArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput + ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessArrayOutput +} + +type GetListenerDefaultActionForwardStickinessArray []GetListenerDefaultActionForwardStickinessInput + +func (GetListenerDefaultActionForwardStickinessArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return i.ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +type GetListenerDefaultActionForwardStickinessOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Duration() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) int { return v.Duration }).(pulumi.IntOutput) +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetListenerDefaultActionForwardStickinessArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardStickiness { + return vs[0].([]GetListenerDefaultActionForwardStickiness)[vs[1].(int)] + }).(GetListenerDefaultActionForwardStickinessOutput) +} + +type GetListenerDefaultActionForwardTargetGroup struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn string `pulumi:"arn"` + Weight int `pulumi:"weight"` +} + +// GetListenerDefaultActionForwardTargetGroupInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArgs and GetListenerDefaultActionForwardTargetGroupOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArgs{...} +type GetListenerDefaultActionForwardTargetGroupInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput + ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupOutput +} + +type GetListenerDefaultActionForwardTargetGroupArgs struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn pulumi.StringInput `pulumi:"arn"` + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (GetListenerDefaultActionForwardTargetGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupOutput) +} + +// GetListenerDefaultActionForwardTargetGroupArrayInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArray and GetListenerDefaultActionForwardTargetGroupArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupArrayInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArray{ GetListenerDefaultActionForwardTargetGroupArgs{...} } +type GetListenerDefaultActionForwardTargetGroupArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput + ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput +} + +type GetListenerDefaultActionForwardTargetGroupArray []GetListenerDefaultActionForwardTargetGroupInput + +func (GetListenerDefaultActionForwardTargetGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardTargetGroupOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +// The arn of the listener. Required if `loadBalancerArn` and `port` is not set. +func (o GetListenerDefaultActionForwardTargetGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) int { return v.Weight }).(pulumi.IntOutput) +} + +type GetListenerDefaultActionForwardTargetGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardTargetGroup { + return vs[0].([]GetListenerDefaultActionForwardTargetGroup)[vs[1].(int)] + }).(GetListenerDefaultActionForwardTargetGroupOutput) +} + type GetListenerDefaultActionRedirect struct { Host string `pulumi:"host"` Path string `pulumi:"path"` @@ -5817,6 +6130,12 @@ func init() { pulumi.RegisterOutputType(GetListenerDefaultActionAuthenticateOidcArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectArrayOutput{}) pulumi.RegisterOutputType(GetLoadBalancerAccessLogsOutput{}) diff --git a/sdk/go/aws/imagebuilder/getImage.go b/sdk/go/aws/imagebuilder/getImage.go new file mode 100644 index 00000000000..33ba092e2a8 --- /dev/null +++ b/sdk/go/aws/imagebuilder/getImage.go @@ -0,0 +1,83 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package imagebuilder + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides details about an Image Builder Image. +// +// ## Example Usage +// ### Latest +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := imagebuilder.LookupImage(ctx, &imagebuilder.LookupImageArgs{ +// Arn: "arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +func LookupImage(ctx *pulumi.Context, args *LookupImageArgs, opts ...pulumi.InvokeOption) (*LookupImageResult, error) { + var rv LookupImageResult + err := ctx.Invoke("aws:imagebuilder/getImage:getImage", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getImage. +type LookupImageArgs struct { + // Amazon Resource Name (ARN) of the image. The suffix can either be specified with wildcards (`x.x.x`) to fetch the latest build version or a full build version (e.g. `2020.11.26/1`) to fetch an exact version. + Arn string `pulumi:"arn"` + // Key-value map of resource tags for the image. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getImage. +type LookupImageResult struct { + Arn string `pulumi:"arn"` + // Build version Amazon Resource Name (ARN) of the image. This will always have the `#.#.#/#` suffix. + BuildVersionArn string `pulumi:"buildVersionArn"` + // Date the image was created. + DateCreated string `pulumi:"dateCreated"` + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn string `pulumi:"distributionConfigurationArn"` + // Whether additional information about the image being created is collected. + EnhancedImageMetadataEnabled bool `pulumi:"enhancedImageMetadataEnabled"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn string `pulumi:"imageRecipeArn"` + // List of an object with image tests configuration. + ImageTestsConfigurations []GetImageImageTestsConfiguration `pulumi:"imageTestsConfigurations"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn string `pulumi:"infrastructureConfigurationArn"` + // Name of the AMI. + Name string `pulumi:"name"` + // Operating System version of the image. + OsVersion string `pulumi:"osVersion"` + // List of objects with resources created by the image. + OutputResources []GetImageOutputResource `pulumi:"outputResources"` + // Platform of the image. + Platform string `pulumi:"platform"` + // Key-value map of resource tags for the image. + Tags map[string]string `pulumi:"tags"` + // Version of the image. + Version string `pulumi:"version"` +} diff --git a/sdk/go/aws/imagebuilder/image.go b/sdk/go/aws/imagebuilder/image.go new file mode 100644 index 00000000000..a343df2824a --- /dev/null +++ b/sdk/go/aws/imagebuilder/image.go @@ -0,0 +1,395 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package imagebuilder + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Manages an Image Builder Image. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := imagebuilder.NewImage(ctx, "example", &imagebuilder.ImageArgs{ +// DistributionConfigurationArn: pulumi.Any(aws_imagebuilder_distribution_configuration.Example.Arn), +// ImageRecipeArn: pulumi.Any(aws_imagebuilder_image_recipe.Example.Arn), +// InfrastructureConfigurationArn: pulumi.Any(aws_imagebuilder_infrastructure_configuration.Example.Arn), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// `aws_imagebuilder_image` resources can be imported using the Amazon Resource Name (ARN), e.g. +// +// ```sh +// $ pulumi import aws:imagebuilder/image:Image example arn:aws:imagebuilder:us-east-1:123456789012:image/example/1.0.0/1 +// ``` +type Image struct { + pulumi.CustomResourceState + + // Amazon Resource Name (ARN) of the image. + Arn pulumi.StringOutput `pulumi:"arn"` + // Date the image was created. + DateCreated pulumi.StringOutput `pulumi:"dateCreated"` + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn pulumi.StringPtrOutput `pulumi:"distributionConfigurationArn"` + // Whether additional information about the image being created is collected. Defaults to `true`. + EnhancedImageMetadataEnabled pulumi.BoolPtrOutput `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn pulumi.StringOutput `pulumi:"imageRecipeArn"` + // Configuration block with image tests configuration. Detailed below. + ImageTestsConfiguration ImageImageTestsConfigurationOutput `pulumi:"imageTestsConfiguration"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn pulumi.StringOutput `pulumi:"infrastructureConfigurationArn"` + // Name of the AMI. + Name pulumi.StringOutput `pulumi:"name"` + // Operating System version of the image. + OsVersion pulumi.StringOutput `pulumi:"osVersion"` + // List of objects with resources created by the image. + OutputResources ImageOutputResourceArrayOutput `pulumi:"outputResources"` + // Platform of the image. + Platform pulumi.StringOutput `pulumi:"platform"` + // Key-value map of resource tags for the Image Builder Image. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // Version of the image. + Version pulumi.StringOutput `pulumi:"version"` +} + +// NewImage registers a new resource with the given unique name, arguments, and options. +func NewImage(ctx *pulumi.Context, + name string, args *ImageArgs, opts ...pulumi.ResourceOption) (*Image, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ImageRecipeArn == nil { + return nil, errors.New("invalid value for required argument 'ImageRecipeArn'") + } + if args.InfrastructureConfigurationArn == nil { + return nil, errors.New("invalid value for required argument 'InfrastructureConfigurationArn'") + } + var resource Image + err := ctx.RegisterResource("aws:imagebuilder/image:Image", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetImage gets an existing Image resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetImage(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ImageState, opts ...pulumi.ResourceOption) (*Image, error) { + var resource Image + err := ctx.ReadResource("aws:imagebuilder/image:Image", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Image resources. +type imageState struct { + // Amazon Resource Name (ARN) of the image. + Arn *string `pulumi:"arn"` + // Date the image was created. + DateCreated *string `pulumi:"dateCreated"` + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn *string `pulumi:"distributionConfigurationArn"` + // Whether additional information about the image being created is collected. Defaults to `true`. + EnhancedImageMetadataEnabled *bool `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn *string `pulumi:"imageRecipeArn"` + // Configuration block with image tests configuration. Detailed below. + ImageTestsConfiguration *ImageImageTestsConfiguration `pulumi:"imageTestsConfiguration"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn *string `pulumi:"infrastructureConfigurationArn"` + // Name of the AMI. + Name *string `pulumi:"name"` + // Operating System version of the image. + OsVersion *string `pulumi:"osVersion"` + // List of objects with resources created by the image. + OutputResources []ImageOutputResource `pulumi:"outputResources"` + // Platform of the image. + Platform *string `pulumi:"platform"` + // Key-value map of resource tags for the Image Builder Image. + Tags map[string]string `pulumi:"tags"` + // Version of the image. + Version *string `pulumi:"version"` +} + +type ImageState struct { + // Amazon Resource Name (ARN) of the image. + Arn pulumi.StringPtrInput + // Date the image was created. + DateCreated pulumi.StringPtrInput + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn pulumi.StringPtrInput + // Whether additional information about the image being created is collected. Defaults to `true`. + EnhancedImageMetadataEnabled pulumi.BoolPtrInput + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn pulumi.StringPtrInput + // Configuration block with image tests configuration. Detailed below. + ImageTestsConfiguration ImageImageTestsConfigurationPtrInput + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn pulumi.StringPtrInput + // Name of the AMI. + Name pulumi.StringPtrInput + // Operating System version of the image. + OsVersion pulumi.StringPtrInput + // List of objects with resources created by the image. + OutputResources ImageOutputResourceArrayInput + // Platform of the image. + Platform pulumi.StringPtrInput + // Key-value map of resource tags for the Image Builder Image. + Tags pulumi.StringMapInput + // Version of the image. + Version pulumi.StringPtrInput +} + +func (ImageState) ElementType() reflect.Type { + return reflect.TypeOf((*imageState)(nil)).Elem() +} + +type imageArgs struct { + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn *string `pulumi:"distributionConfigurationArn"` + // Whether additional information about the image being created is collected. Defaults to `true`. + EnhancedImageMetadataEnabled *bool `pulumi:"enhancedImageMetadataEnabled"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn string `pulumi:"imageRecipeArn"` + // Configuration block with image tests configuration. Detailed below. + ImageTestsConfiguration *ImageImageTestsConfiguration `pulumi:"imageTestsConfiguration"` + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn string `pulumi:"infrastructureConfigurationArn"` + // Key-value map of resource tags for the Image Builder Image. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a Image resource. +type ImageArgs struct { + // Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + DistributionConfigurationArn pulumi.StringPtrInput + // Whether additional information about the image being created is collected. Defaults to `true`. + EnhancedImageMetadataEnabled pulumi.BoolPtrInput + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + ImageRecipeArn pulumi.StringInput + // Configuration block with image tests configuration. Detailed below. + ImageTestsConfiguration ImageImageTestsConfigurationPtrInput + // Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + InfrastructureConfigurationArn pulumi.StringInput + // Key-value map of resource tags for the Image Builder Image. + Tags pulumi.StringMapInput +} + +func (ImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*imageArgs)(nil)).Elem() +} + +type ImageInput interface { + pulumi.Input + + ToImageOutput() ImageOutput + ToImageOutputWithContext(ctx context.Context) ImageOutput +} + +func (*Image) ElementType() reflect.Type { + return reflect.TypeOf((*Image)(nil)) +} + +func (i *Image) ToImageOutput() ImageOutput { + return i.ToImageOutputWithContext(context.Background()) +} + +func (i *Image) ToImageOutputWithContext(ctx context.Context) ImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutput) +} + +func (i *Image) ToImagePtrOutput() ImagePtrOutput { + return i.ToImagePtrOutputWithContext(context.Background()) +} + +func (i *Image) ToImagePtrOutputWithContext(ctx context.Context) ImagePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePtrOutput) +} + +type ImagePtrInput interface { + pulumi.Input + + ToImagePtrOutput() ImagePtrOutput + ToImagePtrOutputWithContext(ctx context.Context) ImagePtrOutput +} + +type imagePtrType ImageArgs + +func (*imagePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**Image)(nil)) +} + +func (i *imagePtrType) ToImagePtrOutput() ImagePtrOutput { + return i.ToImagePtrOutputWithContext(context.Background()) +} + +func (i *imagePtrType) ToImagePtrOutputWithContext(ctx context.Context) ImagePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImagePtrOutput) +} + +// ImageArrayInput is an input type that accepts ImageArray and ImageArrayOutput values. +// You can construct a concrete instance of `ImageArrayInput` via: +// +// ImageArray{ ImageArgs{...} } +type ImageArrayInput interface { + pulumi.Input + + ToImageArrayOutput() ImageArrayOutput + ToImageArrayOutputWithContext(context.Context) ImageArrayOutput +} + +type ImageArray []ImageInput + +func (ImageArray) ElementType() reflect.Type { + return reflect.TypeOf(([]*Image)(nil)) +} + +func (i ImageArray) ToImageArrayOutput() ImageArrayOutput { + return i.ToImageArrayOutputWithContext(context.Background()) +} + +func (i ImageArray) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageArrayOutput) +} + +// ImageMapInput is an input type that accepts ImageMap and ImageMapOutput values. +// You can construct a concrete instance of `ImageMapInput` via: +// +// ImageMap{ "key": ImageArgs{...} } +type ImageMapInput interface { + pulumi.Input + + ToImageMapOutput() ImageMapOutput + ToImageMapOutputWithContext(context.Context) ImageMapOutput +} + +type ImageMap map[string]ImageInput + +func (ImageMap) ElementType() reflect.Type { + return reflect.TypeOf((map[string]*Image)(nil)) +} + +func (i ImageMap) ToImageMapOutput() ImageMapOutput { + return i.ToImageMapOutputWithContext(context.Background()) +} + +func (i ImageMap) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageMapOutput) +} + +type ImageOutput struct { + *pulumi.OutputState +} + +func (ImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Image)(nil)) +} + +func (o ImageOutput) ToImageOutput() ImageOutput { + return o +} + +func (o ImageOutput) ToImageOutputWithContext(ctx context.Context) ImageOutput { + return o +} + +func (o ImageOutput) ToImagePtrOutput() ImagePtrOutput { + return o.ToImagePtrOutputWithContext(context.Background()) +} + +func (o ImageOutput) ToImagePtrOutputWithContext(ctx context.Context) ImagePtrOutput { + return o.ApplyT(func(v Image) *Image { + return &v + }).(ImagePtrOutput) +} + +type ImagePtrOutput struct { + *pulumi.OutputState +} + +func (ImagePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**Image)(nil)) +} + +func (o ImagePtrOutput) ToImagePtrOutput() ImagePtrOutput { + return o +} + +func (o ImagePtrOutput) ToImagePtrOutputWithContext(ctx context.Context) ImagePtrOutput { + return o +} + +type ImageArrayOutput struct{ *pulumi.OutputState } + +func (ImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Image)(nil)) +} + +func (o ImageArrayOutput) ToImageArrayOutput() ImageArrayOutput { + return o +} + +func (o ImageArrayOutput) ToImageArrayOutputWithContext(ctx context.Context) ImageArrayOutput { + return o +} + +func (o ImageArrayOutput) Index(i pulumi.IntInput) ImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Image { + return vs[0].([]Image)[vs[1].(int)] + }).(ImageOutput) +} + +type ImageMapOutput struct{ *pulumi.OutputState } + +func (ImageMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]Image)(nil)) +} + +func (o ImageMapOutput) ToImageMapOutput() ImageMapOutput { + return o +} + +func (o ImageMapOutput) ToImageMapOutputWithContext(ctx context.Context) ImageMapOutput { + return o +} + +func (o ImageMapOutput) MapIndex(k pulumi.StringInput) ImageOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) Image { + return vs[0].(map[string]Image)[vs[1].(string)] + }).(ImageOutput) +} + +func init() { + pulumi.RegisterOutputType(ImageOutput{}) + pulumi.RegisterOutputType(ImagePtrOutput{}) + pulumi.RegisterOutputType(ImageArrayOutput{}) + pulumi.RegisterOutputType(ImageMapOutput{}) +} diff --git a/sdk/go/aws/imagebuilder/init.go b/sdk/go/aws/imagebuilder/init.go index beba4fbd155..d52b15c6952 100644 --- a/sdk/go/aws/imagebuilder/init.go +++ b/sdk/go/aws/imagebuilder/init.go @@ -25,6 +25,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r, err = NewComponent(ctx, name, nil, pulumi.URN_(urn)) case "aws:imagebuilder/distributionConfiguration:DistributionConfiguration": r, err = NewDistributionConfiguration(ctx, name, nil, pulumi.URN_(urn)) + case "aws:imagebuilder/image:Image": + r, err = NewImage(ctx, name, nil, pulumi.URN_(urn)) case "aws:imagebuilder/imagePipeline:ImagePipeline": r, err = NewImagePipeline(ctx, name, nil, pulumi.URN_(urn)) case "aws:imagebuilder/imageRecipe:ImageRecipe": @@ -53,6 +55,11 @@ func init() { "imagebuilder/distributionConfiguration", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "imagebuilder/image", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "imagebuilder/imagePipeline", diff --git a/sdk/go/aws/imagebuilder/pulumiTypes.go b/sdk/go/aws/imagebuilder/pulumiTypes.go index 765b9c9e827..c985d98e713 100644 --- a/sdk/go/aws/imagebuilder/pulumiTypes.go +++ b/sdk/go/aws/imagebuilder/pulumiTypes.go @@ -519,6 +519,386 @@ func (o DistributionConfigurationDistributionAmiDistributionConfigurationLaunchP }).(pulumi.StringArrayOutput) } +type ImageImageTestsConfiguration struct { + // Whether image tests are enabled. Defaults to `true`. + ImageTestsEnabled *bool `pulumi:"imageTestsEnabled"` + // Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + TimeoutMinutes *int `pulumi:"timeoutMinutes"` +} + +// ImageImageTestsConfigurationInput is an input type that accepts ImageImageTestsConfigurationArgs and ImageImageTestsConfigurationOutput values. +// You can construct a concrete instance of `ImageImageTestsConfigurationInput` via: +// +// ImageImageTestsConfigurationArgs{...} +type ImageImageTestsConfigurationInput interface { + pulumi.Input + + ToImageImageTestsConfigurationOutput() ImageImageTestsConfigurationOutput + ToImageImageTestsConfigurationOutputWithContext(context.Context) ImageImageTestsConfigurationOutput +} + +type ImageImageTestsConfigurationArgs struct { + // Whether image tests are enabled. Defaults to `true`. + ImageTestsEnabled pulumi.BoolPtrInput `pulumi:"imageTestsEnabled"` + // Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + TimeoutMinutes pulumi.IntPtrInput `pulumi:"timeoutMinutes"` +} + +func (ImageImageTestsConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImageImageTestsConfiguration)(nil)).Elem() +} + +func (i ImageImageTestsConfigurationArgs) ToImageImageTestsConfigurationOutput() ImageImageTestsConfigurationOutput { + return i.ToImageImageTestsConfigurationOutputWithContext(context.Background()) +} + +func (i ImageImageTestsConfigurationArgs) ToImageImageTestsConfigurationOutputWithContext(ctx context.Context) ImageImageTestsConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageImageTestsConfigurationOutput) +} + +func (i ImageImageTestsConfigurationArgs) ToImageImageTestsConfigurationPtrOutput() ImageImageTestsConfigurationPtrOutput { + return i.ToImageImageTestsConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ImageImageTestsConfigurationArgs) ToImageImageTestsConfigurationPtrOutputWithContext(ctx context.Context) ImageImageTestsConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageImageTestsConfigurationOutput).ToImageImageTestsConfigurationPtrOutputWithContext(ctx) +} + +// ImageImageTestsConfigurationPtrInput is an input type that accepts ImageImageTestsConfigurationArgs, ImageImageTestsConfigurationPtr and ImageImageTestsConfigurationPtrOutput values. +// You can construct a concrete instance of `ImageImageTestsConfigurationPtrInput` via: +// +// ImageImageTestsConfigurationArgs{...} +// +// or: +// +// nil +type ImageImageTestsConfigurationPtrInput interface { + pulumi.Input + + ToImageImageTestsConfigurationPtrOutput() ImageImageTestsConfigurationPtrOutput + ToImageImageTestsConfigurationPtrOutputWithContext(context.Context) ImageImageTestsConfigurationPtrOutput +} + +type imageImageTestsConfigurationPtrType ImageImageTestsConfigurationArgs + +func ImageImageTestsConfigurationPtr(v *ImageImageTestsConfigurationArgs) ImageImageTestsConfigurationPtrInput { + return (*imageImageTestsConfigurationPtrType)(v) +} + +func (*imageImageTestsConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ImageImageTestsConfiguration)(nil)).Elem() +} + +func (i *imageImageTestsConfigurationPtrType) ToImageImageTestsConfigurationPtrOutput() ImageImageTestsConfigurationPtrOutput { + return i.ToImageImageTestsConfigurationPtrOutputWithContext(context.Background()) +} + +func (i *imageImageTestsConfigurationPtrType) ToImageImageTestsConfigurationPtrOutputWithContext(ctx context.Context) ImageImageTestsConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageImageTestsConfigurationPtrOutput) +} + +type ImageImageTestsConfigurationOutput struct{ *pulumi.OutputState } + +func (ImageImageTestsConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImageImageTestsConfiguration)(nil)).Elem() +} + +func (o ImageImageTestsConfigurationOutput) ToImageImageTestsConfigurationOutput() ImageImageTestsConfigurationOutput { + return o +} + +func (o ImageImageTestsConfigurationOutput) ToImageImageTestsConfigurationOutputWithContext(ctx context.Context) ImageImageTestsConfigurationOutput { + return o +} + +func (o ImageImageTestsConfigurationOutput) ToImageImageTestsConfigurationPtrOutput() ImageImageTestsConfigurationPtrOutput { + return o.ToImageImageTestsConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ImageImageTestsConfigurationOutput) ToImageImageTestsConfigurationPtrOutputWithContext(ctx context.Context) ImageImageTestsConfigurationPtrOutput { + return o.ApplyT(func(v ImageImageTestsConfiguration) *ImageImageTestsConfiguration { + return &v + }).(ImageImageTestsConfigurationPtrOutput) +} + +// Whether image tests are enabled. Defaults to `true`. +func (o ImageImageTestsConfigurationOutput) ImageTestsEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ImageImageTestsConfiguration) *bool { return v.ImageTestsEnabled }).(pulumi.BoolPtrOutput) +} + +// Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. +func (o ImageImageTestsConfigurationOutput) TimeoutMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v ImageImageTestsConfiguration) *int { return v.TimeoutMinutes }).(pulumi.IntPtrOutput) +} + +type ImageImageTestsConfigurationPtrOutput struct{ *pulumi.OutputState } + +func (ImageImageTestsConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ImageImageTestsConfiguration)(nil)).Elem() +} + +func (o ImageImageTestsConfigurationPtrOutput) ToImageImageTestsConfigurationPtrOutput() ImageImageTestsConfigurationPtrOutput { + return o +} + +func (o ImageImageTestsConfigurationPtrOutput) ToImageImageTestsConfigurationPtrOutputWithContext(ctx context.Context) ImageImageTestsConfigurationPtrOutput { + return o +} + +func (o ImageImageTestsConfigurationPtrOutput) Elem() ImageImageTestsConfigurationOutput { + return o.ApplyT(func(v *ImageImageTestsConfiguration) ImageImageTestsConfiguration { return *v }).(ImageImageTestsConfigurationOutput) +} + +// Whether image tests are enabled. Defaults to `true`. +func (o ImageImageTestsConfigurationPtrOutput) ImageTestsEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ImageImageTestsConfiguration) *bool { + if v == nil { + return nil + } + return v.ImageTestsEnabled + }).(pulumi.BoolPtrOutput) +} + +// Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. +func (o ImageImageTestsConfigurationPtrOutput) TimeoutMinutes() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ImageImageTestsConfiguration) *int { + if v == nil { + return nil + } + return v.TimeoutMinutes + }).(pulumi.IntPtrOutput) +} + +type ImageOutputResource struct { + // Set of objects with each Amazon Machine Image (AMI) created. + Amis []ImageOutputResourceAmi `pulumi:"amis"` +} + +// ImageOutputResourceInput is an input type that accepts ImageOutputResourceArgs and ImageOutputResourceOutput values. +// You can construct a concrete instance of `ImageOutputResourceInput` via: +// +// ImageOutputResourceArgs{...} +type ImageOutputResourceInput interface { + pulumi.Input + + ToImageOutputResourceOutput() ImageOutputResourceOutput + ToImageOutputResourceOutputWithContext(context.Context) ImageOutputResourceOutput +} + +type ImageOutputResourceArgs struct { + // Set of objects with each Amazon Machine Image (AMI) created. + Amis ImageOutputResourceAmiArrayInput `pulumi:"amis"` +} + +func (ImageOutputResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImageOutputResource)(nil)).Elem() +} + +func (i ImageOutputResourceArgs) ToImageOutputResourceOutput() ImageOutputResourceOutput { + return i.ToImageOutputResourceOutputWithContext(context.Background()) +} + +func (i ImageOutputResourceArgs) ToImageOutputResourceOutputWithContext(ctx context.Context) ImageOutputResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutputResourceOutput) +} + +// ImageOutputResourceArrayInput is an input type that accepts ImageOutputResourceArray and ImageOutputResourceArrayOutput values. +// You can construct a concrete instance of `ImageOutputResourceArrayInput` via: +// +// ImageOutputResourceArray{ ImageOutputResourceArgs{...} } +type ImageOutputResourceArrayInput interface { + pulumi.Input + + ToImageOutputResourceArrayOutput() ImageOutputResourceArrayOutput + ToImageOutputResourceArrayOutputWithContext(context.Context) ImageOutputResourceArrayOutput +} + +type ImageOutputResourceArray []ImageOutputResourceInput + +func (ImageOutputResourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImageOutputResource)(nil)).Elem() +} + +func (i ImageOutputResourceArray) ToImageOutputResourceArrayOutput() ImageOutputResourceArrayOutput { + return i.ToImageOutputResourceArrayOutputWithContext(context.Background()) +} + +func (i ImageOutputResourceArray) ToImageOutputResourceArrayOutputWithContext(ctx context.Context) ImageOutputResourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutputResourceArrayOutput) +} + +type ImageOutputResourceOutput struct{ *pulumi.OutputState } + +func (ImageOutputResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImageOutputResource)(nil)).Elem() +} + +func (o ImageOutputResourceOutput) ToImageOutputResourceOutput() ImageOutputResourceOutput { + return o +} + +func (o ImageOutputResourceOutput) ToImageOutputResourceOutputWithContext(ctx context.Context) ImageOutputResourceOutput { + return o +} + +// Set of objects with each Amazon Machine Image (AMI) created. +func (o ImageOutputResourceOutput) Amis() ImageOutputResourceAmiArrayOutput { + return o.ApplyT(func(v ImageOutputResource) []ImageOutputResourceAmi { return v.Amis }).(ImageOutputResourceAmiArrayOutput) +} + +type ImageOutputResourceArrayOutput struct{ *pulumi.OutputState } + +func (ImageOutputResourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImageOutputResource)(nil)).Elem() +} + +func (o ImageOutputResourceArrayOutput) ToImageOutputResourceArrayOutput() ImageOutputResourceArrayOutput { + return o +} + +func (o ImageOutputResourceArrayOutput) ToImageOutputResourceArrayOutputWithContext(ctx context.Context) ImageOutputResourceArrayOutput { + return o +} + +func (o ImageOutputResourceArrayOutput) Index(i pulumi.IntInput) ImageOutputResourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ImageOutputResource { + return vs[0].([]ImageOutputResource)[vs[1].(int)] + }).(ImageOutputResourceOutput) +} + +type ImageOutputResourceAmi struct { + // Account identifier of the AMI. + AccountId *string `pulumi:"accountId"` + // Description of the AMI. + Description *string `pulumi:"description"` + // Identifier of the AMI. + Image *string `pulumi:"image"` + // Name of the AMI. + Name *string `pulumi:"name"` + // Region of the AMI. + Region *string `pulumi:"region"` +} + +// ImageOutputResourceAmiInput is an input type that accepts ImageOutputResourceAmiArgs and ImageOutputResourceAmiOutput values. +// You can construct a concrete instance of `ImageOutputResourceAmiInput` via: +// +// ImageOutputResourceAmiArgs{...} +type ImageOutputResourceAmiInput interface { + pulumi.Input + + ToImageOutputResourceAmiOutput() ImageOutputResourceAmiOutput + ToImageOutputResourceAmiOutputWithContext(context.Context) ImageOutputResourceAmiOutput +} + +type ImageOutputResourceAmiArgs struct { + // Account identifier of the AMI. + AccountId pulumi.StringPtrInput `pulumi:"accountId"` + // Description of the AMI. + Description pulumi.StringPtrInput `pulumi:"description"` + // Identifier of the AMI. + Image pulumi.StringPtrInput `pulumi:"image"` + // Name of the AMI. + Name pulumi.StringPtrInput `pulumi:"name"` + // Region of the AMI. + Region pulumi.StringPtrInput `pulumi:"region"` +} + +func (ImageOutputResourceAmiArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ImageOutputResourceAmi)(nil)).Elem() +} + +func (i ImageOutputResourceAmiArgs) ToImageOutputResourceAmiOutput() ImageOutputResourceAmiOutput { + return i.ToImageOutputResourceAmiOutputWithContext(context.Background()) +} + +func (i ImageOutputResourceAmiArgs) ToImageOutputResourceAmiOutputWithContext(ctx context.Context) ImageOutputResourceAmiOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutputResourceAmiOutput) +} + +// ImageOutputResourceAmiArrayInput is an input type that accepts ImageOutputResourceAmiArray and ImageOutputResourceAmiArrayOutput values. +// You can construct a concrete instance of `ImageOutputResourceAmiArrayInput` via: +// +// ImageOutputResourceAmiArray{ ImageOutputResourceAmiArgs{...} } +type ImageOutputResourceAmiArrayInput interface { + pulumi.Input + + ToImageOutputResourceAmiArrayOutput() ImageOutputResourceAmiArrayOutput + ToImageOutputResourceAmiArrayOutputWithContext(context.Context) ImageOutputResourceAmiArrayOutput +} + +type ImageOutputResourceAmiArray []ImageOutputResourceAmiInput + +func (ImageOutputResourceAmiArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImageOutputResourceAmi)(nil)).Elem() +} + +func (i ImageOutputResourceAmiArray) ToImageOutputResourceAmiArrayOutput() ImageOutputResourceAmiArrayOutput { + return i.ToImageOutputResourceAmiArrayOutputWithContext(context.Background()) +} + +func (i ImageOutputResourceAmiArray) ToImageOutputResourceAmiArrayOutputWithContext(ctx context.Context) ImageOutputResourceAmiArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ImageOutputResourceAmiArrayOutput) +} + +type ImageOutputResourceAmiOutput struct{ *pulumi.OutputState } + +func (ImageOutputResourceAmiOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ImageOutputResourceAmi)(nil)).Elem() +} + +func (o ImageOutputResourceAmiOutput) ToImageOutputResourceAmiOutput() ImageOutputResourceAmiOutput { + return o +} + +func (o ImageOutputResourceAmiOutput) ToImageOutputResourceAmiOutputWithContext(ctx context.Context) ImageOutputResourceAmiOutput { + return o +} + +// Account identifier of the AMI. +func (o ImageOutputResourceAmiOutput) AccountId() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageOutputResourceAmi) *string { return v.AccountId }).(pulumi.StringPtrOutput) +} + +// Description of the AMI. +func (o ImageOutputResourceAmiOutput) Description() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageOutputResourceAmi) *string { return v.Description }).(pulumi.StringPtrOutput) +} + +// Identifier of the AMI. +func (o ImageOutputResourceAmiOutput) Image() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageOutputResourceAmi) *string { return v.Image }).(pulumi.StringPtrOutput) +} + +// Name of the AMI. +func (o ImageOutputResourceAmiOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageOutputResourceAmi) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Region of the AMI. +func (o ImageOutputResourceAmiOutput) Region() pulumi.StringPtrOutput { + return o.ApplyT(func(v ImageOutputResourceAmi) *string { return v.Region }).(pulumi.StringPtrOutput) +} + +type ImageOutputResourceAmiArrayOutput struct{ *pulumi.OutputState } + +func (ImageOutputResourceAmiArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ImageOutputResourceAmi)(nil)).Elem() +} + +func (o ImageOutputResourceAmiArrayOutput) ToImageOutputResourceAmiArrayOutput() ImageOutputResourceAmiArrayOutput { + return o +} + +func (o ImageOutputResourceAmiArrayOutput) ToImageOutputResourceAmiArrayOutputWithContext(ctx context.Context) ImageOutputResourceAmiArrayOutput { + return o +} + +func (o ImageOutputResourceAmiArrayOutput) Index(i pulumi.IntInput) ImageOutputResourceAmiOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ImageOutputResourceAmi { + return vs[0].([]ImageOutputResourceAmi)[vs[1].(int)] + }).(ImageOutputResourceAmiOutput) +} + type ImagePipelineImageTestsConfiguration struct { // Whether image tests are enabled. Defaults to `true`. ImageTestsEnabled *bool `pulumi:"imageTestsEnabled"` @@ -1943,6 +2323,342 @@ func (o GetDistributionConfigurationDistributionAmiDistributionConfigurationLaun }).(GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionOutput) } +type GetImageImageTestsConfiguration struct { + // Whether image tests are enabled. + ImageTestsEnabled bool `pulumi:"imageTestsEnabled"` + // Number of minutes before image tests time out. + TimeoutMinutes int `pulumi:"timeoutMinutes"` +} + +// GetImageImageTestsConfigurationInput is an input type that accepts GetImageImageTestsConfigurationArgs and GetImageImageTestsConfigurationOutput values. +// You can construct a concrete instance of `GetImageImageTestsConfigurationInput` via: +// +// GetImageImageTestsConfigurationArgs{...} +type GetImageImageTestsConfigurationInput interface { + pulumi.Input + + ToGetImageImageTestsConfigurationOutput() GetImageImageTestsConfigurationOutput + ToGetImageImageTestsConfigurationOutputWithContext(context.Context) GetImageImageTestsConfigurationOutput +} + +type GetImageImageTestsConfigurationArgs struct { + // Whether image tests are enabled. + ImageTestsEnabled pulumi.BoolInput `pulumi:"imageTestsEnabled"` + // Number of minutes before image tests time out. + TimeoutMinutes pulumi.IntInput `pulumi:"timeoutMinutes"` +} + +func (GetImageImageTestsConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageImageTestsConfiguration)(nil)).Elem() +} + +func (i GetImageImageTestsConfigurationArgs) ToGetImageImageTestsConfigurationOutput() GetImageImageTestsConfigurationOutput { + return i.ToGetImageImageTestsConfigurationOutputWithContext(context.Background()) +} + +func (i GetImageImageTestsConfigurationArgs) ToGetImageImageTestsConfigurationOutputWithContext(ctx context.Context) GetImageImageTestsConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageImageTestsConfigurationOutput) +} + +// GetImageImageTestsConfigurationArrayInput is an input type that accepts GetImageImageTestsConfigurationArray and GetImageImageTestsConfigurationArrayOutput values. +// You can construct a concrete instance of `GetImageImageTestsConfigurationArrayInput` via: +// +// GetImageImageTestsConfigurationArray{ GetImageImageTestsConfigurationArgs{...} } +type GetImageImageTestsConfigurationArrayInput interface { + pulumi.Input + + ToGetImageImageTestsConfigurationArrayOutput() GetImageImageTestsConfigurationArrayOutput + ToGetImageImageTestsConfigurationArrayOutputWithContext(context.Context) GetImageImageTestsConfigurationArrayOutput +} + +type GetImageImageTestsConfigurationArray []GetImageImageTestsConfigurationInput + +func (GetImageImageTestsConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageImageTestsConfiguration)(nil)).Elem() +} + +func (i GetImageImageTestsConfigurationArray) ToGetImageImageTestsConfigurationArrayOutput() GetImageImageTestsConfigurationArrayOutput { + return i.ToGetImageImageTestsConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetImageImageTestsConfigurationArray) ToGetImageImageTestsConfigurationArrayOutputWithContext(ctx context.Context) GetImageImageTestsConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageImageTestsConfigurationArrayOutput) +} + +type GetImageImageTestsConfigurationOutput struct{ *pulumi.OutputState } + +func (GetImageImageTestsConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageImageTestsConfiguration)(nil)).Elem() +} + +func (o GetImageImageTestsConfigurationOutput) ToGetImageImageTestsConfigurationOutput() GetImageImageTestsConfigurationOutput { + return o +} + +func (o GetImageImageTestsConfigurationOutput) ToGetImageImageTestsConfigurationOutputWithContext(ctx context.Context) GetImageImageTestsConfigurationOutput { + return o +} + +// Whether image tests are enabled. +func (o GetImageImageTestsConfigurationOutput) ImageTestsEnabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetImageImageTestsConfiguration) bool { return v.ImageTestsEnabled }).(pulumi.BoolOutput) +} + +// Number of minutes before image tests time out. +func (o GetImageImageTestsConfigurationOutput) TimeoutMinutes() pulumi.IntOutput { + return o.ApplyT(func(v GetImageImageTestsConfiguration) int { return v.TimeoutMinutes }).(pulumi.IntOutput) +} + +type GetImageImageTestsConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetImageImageTestsConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageImageTestsConfiguration)(nil)).Elem() +} + +func (o GetImageImageTestsConfigurationArrayOutput) ToGetImageImageTestsConfigurationArrayOutput() GetImageImageTestsConfigurationArrayOutput { + return o +} + +func (o GetImageImageTestsConfigurationArrayOutput) ToGetImageImageTestsConfigurationArrayOutputWithContext(ctx context.Context) GetImageImageTestsConfigurationArrayOutput { + return o +} + +func (o GetImageImageTestsConfigurationArrayOutput) Index(i pulumi.IntInput) GetImageImageTestsConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetImageImageTestsConfiguration { + return vs[0].([]GetImageImageTestsConfiguration)[vs[1].(int)] + }).(GetImageImageTestsConfigurationOutput) +} + +type GetImageOutputResource struct { + // Set of objects with each Amazon Machine Image (AMI) created. + Amis []GetImageOutputResourceAmi `pulumi:"amis"` +} + +// GetImageOutputResourceInput is an input type that accepts GetImageOutputResourceArgs and GetImageOutputResourceOutput values. +// You can construct a concrete instance of `GetImageOutputResourceInput` via: +// +// GetImageOutputResourceArgs{...} +type GetImageOutputResourceInput interface { + pulumi.Input + + ToGetImageOutputResourceOutput() GetImageOutputResourceOutput + ToGetImageOutputResourceOutputWithContext(context.Context) GetImageOutputResourceOutput +} + +type GetImageOutputResourceArgs struct { + // Set of objects with each Amazon Machine Image (AMI) created. + Amis GetImageOutputResourceAmiArrayInput `pulumi:"amis"` +} + +func (GetImageOutputResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageOutputResource)(nil)).Elem() +} + +func (i GetImageOutputResourceArgs) ToGetImageOutputResourceOutput() GetImageOutputResourceOutput { + return i.ToGetImageOutputResourceOutputWithContext(context.Background()) +} + +func (i GetImageOutputResourceArgs) ToGetImageOutputResourceOutputWithContext(ctx context.Context) GetImageOutputResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageOutputResourceOutput) +} + +// GetImageOutputResourceArrayInput is an input type that accepts GetImageOutputResourceArray and GetImageOutputResourceArrayOutput values. +// You can construct a concrete instance of `GetImageOutputResourceArrayInput` via: +// +// GetImageOutputResourceArray{ GetImageOutputResourceArgs{...} } +type GetImageOutputResourceArrayInput interface { + pulumi.Input + + ToGetImageOutputResourceArrayOutput() GetImageOutputResourceArrayOutput + ToGetImageOutputResourceArrayOutputWithContext(context.Context) GetImageOutputResourceArrayOutput +} + +type GetImageOutputResourceArray []GetImageOutputResourceInput + +func (GetImageOutputResourceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageOutputResource)(nil)).Elem() +} + +func (i GetImageOutputResourceArray) ToGetImageOutputResourceArrayOutput() GetImageOutputResourceArrayOutput { + return i.ToGetImageOutputResourceArrayOutputWithContext(context.Background()) +} + +func (i GetImageOutputResourceArray) ToGetImageOutputResourceArrayOutputWithContext(ctx context.Context) GetImageOutputResourceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageOutputResourceArrayOutput) +} + +type GetImageOutputResourceOutput struct{ *pulumi.OutputState } + +func (GetImageOutputResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageOutputResource)(nil)).Elem() +} + +func (o GetImageOutputResourceOutput) ToGetImageOutputResourceOutput() GetImageOutputResourceOutput { + return o +} + +func (o GetImageOutputResourceOutput) ToGetImageOutputResourceOutputWithContext(ctx context.Context) GetImageOutputResourceOutput { + return o +} + +// Set of objects with each Amazon Machine Image (AMI) created. +func (o GetImageOutputResourceOutput) Amis() GetImageOutputResourceAmiArrayOutput { + return o.ApplyT(func(v GetImageOutputResource) []GetImageOutputResourceAmi { return v.Amis }).(GetImageOutputResourceAmiArrayOutput) +} + +type GetImageOutputResourceArrayOutput struct{ *pulumi.OutputState } + +func (GetImageOutputResourceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageOutputResource)(nil)).Elem() +} + +func (o GetImageOutputResourceArrayOutput) ToGetImageOutputResourceArrayOutput() GetImageOutputResourceArrayOutput { + return o +} + +func (o GetImageOutputResourceArrayOutput) ToGetImageOutputResourceArrayOutputWithContext(ctx context.Context) GetImageOutputResourceArrayOutput { + return o +} + +func (o GetImageOutputResourceArrayOutput) Index(i pulumi.IntInput) GetImageOutputResourceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetImageOutputResource { + return vs[0].([]GetImageOutputResource)[vs[1].(int)] + }).(GetImageOutputResourceOutput) +} + +type GetImageOutputResourceAmi struct { + // Account identifier of the AMI. + AccountId string `pulumi:"accountId"` + // Description of the AMI. + Description string `pulumi:"description"` + // Identifier of the AMI. + Image string `pulumi:"image"` + // Name of the AMI. + Name string `pulumi:"name"` + // Region of the AMI. + Region string `pulumi:"region"` +} + +// GetImageOutputResourceAmiInput is an input type that accepts GetImageOutputResourceAmiArgs and GetImageOutputResourceAmiOutput values. +// You can construct a concrete instance of `GetImageOutputResourceAmiInput` via: +// +// GetImageOutputResourceAmiArgs{...} +type GetImageOutputResourceAmiInput interface { + pulumi.Input + + ToGetImageOutputResourceAmiOutput() GetImageOutputResourceAmiOutput + ToGetImageOutputResourceAmiOutputWithContext(context.Context) GetImageOutputResourceAmiOutput +} + +type GetImageOutputResourceAmiArgs struct { + // Account identifier of the AMI. + AccountId pulumi.StringInput `pulumi:"accountId"` + // Description of the AMI. + Description pulumi.StringInput `pulumi:"description"` + // Identifier of the AMI. + Image pulumi.StringInput `pulumi:"image"` + // Name of the AMI. + Name pulumi.StringInput `pulumi:"name"` + // Region of the AMI. + Region pulumi.StringInput `pulumi:"region"` +} + +func (GetImageOutputResourceAmiArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageOutputResourceAmi)(nil)).Elem() +} + +func (i GetImageOutputResourceAmiArgs) ToGetImageOutputResourceAmiOutput() GetImageOutputResourceAmiOutput { + return i.ToGetImageOutputResourceAmiOutputWithContext(context.Background()) +} + +func (i GetImageOutputResourceAmiArgs) ToGetImageOutputResourceAmiOutputWithContext(ctx context.Context) GetImageOutputResourceAmiOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageOutputResourceAmiOutput) +} + +// GetImageOutputResourceAmiArrayInput is an input type that accepts GetImageOutputResourceAmiArray and GetImageOutputResourceAmiArrayOutput values. +// You can construct a concrete instance of `GetImageOutputResourceAmiArrayInput` via: +// +// GetImageOutputResourceAmiArray{ GetImageOutputResourceAmiArgs{...} } +type GetImageOutputResourceAmiArrayInput interface { + pulumi.Input + + ToGetImageOutputResourceAmiArrayOutput() GetImageOutputResourceAmiArrayOutput + ToGetImageOutputResourceAmiArrayOutputWithContext(context.Context) GetImageOutputResourceAmiArrayOutput +} + +type GetImageOutputResourceAmiArray []GetImageOutputResourceAmiInput + +func (GetImageOutputResourceAmiArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageOutputResourceAmi)(nil)).Elem() +} + +func (i GetImageOutputResourceAmiArray) ToGetImageOutputResourceAmiArrayOutput() GetImageOutputResourceAmiArrayOutput { + return i.ToGetImageOutputResourceAmiArrayOutputWithContext(context.Background()) +} + +func (i GetImageOutputResourceAmiArray) ToGetImageOutputResourceAmiArrayOutputWithContext(ctx context.Context) GetImageOutputResourceAmiArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetImageOutputResourceAmiArrayOutput) +} + +type GetImageOutputResourceAmiOutput struct{ *pulumi.OutputState } + +func (GetImageOutputResourceAmiOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetImageOutputResourceAmi)(nil)).Elem() +} + +func (o GetImageOutputResourceAmiOutput) ToGetImageOutputResourceAmiOutput() GetImageOutputResourceAmiOutput { + return o +} + +func (o GetImageOutputResourceAmiOutput) ToGetImageOutputResourceAmiOutputWithContext(ctx context.Context) GetImageOutputResourceAmiOutput { + return o +} + +// Account identifier of the AMI. +func (o GetImageOutputResourceAmiOutput) AccountId() pulumi.StringOutput { + return o.ApplyT(func(v GetImageOutputResourceAmi) string { return v.AccountId }).(pulumi.StringOutput) +} + +// Description of the AMI. +func (o GetImageOutputResourceAmiOutput) Description() pulumi.StringOutput { + return o.ApplyT(func(v GetImageOutputResourceAmi) string { return v.Description }).(pulumi.StringOutput) +} + +// Identifier of the AMI. +func (o GetImageOutputResourceAmiOutput) Image() pulumi.StringOutput { + return o.ApplyT(func(v GetImageOutputResourceAmi) string { return v.Image }).(pulumi.StringOutput) +} + +// Name of the AMI. +func (o GetImageOutputResourceAmiOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v GetImageOutputResourceAmi) string { return v.Name }).(pulumi.StringOutput) +} + +// Region of the AMI. +func (o GetImageOutputResourceAmiOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v GetImageOutputResourceAmi) string { return v.Region }).(pulumi.StringOutput) +} + +type GetImageOutputResourceAmiArrayOutput struct{ *pulumi.OutputState } + +func (GetImageOutputResourceAmiArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetImageOutputResourceAmi)(nil)).Elem() +} + +func (o GetImageOutputResourceAmiArrayOutput) ToGetImageOutputResourceAmiArrayOutput() GetImageOutputResourceAmiArrayOutput { + return o +} + +func (o GetImageOutputResourceAmiArrayOutput) ToGetImageOutputResourceAmiArrayOutputWithContext(ctx context.Context) GetImageOutputResourceAmiArrayOutput { + return o +} + +func (o GetImageOutputResourceAmiArrayOutput) Index(i pulumi.IntInput) GetImageOutputResourceAmiOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetImageOutputResourceAmi { + return vs[0].([]GetImageOutputResourceAmi)[vs[1].(int)] + }).(GetImageOutputResourceAmiOutput) +} + type GetImagePipelineImageTestsConfiguration struct { // Whether image tests are enabled. ImageTestsEnabled bool `pulumi:"imageTestsEnabled"` @@ -2739,6 +3455,12 @@ func init() { pulumi.RegisterOutputType(DistributionConfigurationDistributionAmiDistributionConfigurationPtrOutput{}) pulumi.RegisterOutputType(DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionOutput{}) pulumi.RegisterOutputType(DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionPtrOutput{}) + pulumi.RegisterOutputType(ImageImageTestsConfigurationOutput{}) + pulumi.RegisterOutputType(ImageImageTestsConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ImageOutputResourceOutput{}) + pulumi.RegisterOutputType(ImageOutputResourceArrayOutput{}) + pulumi.RegisterOutputType(ImageOutputResourceAmiOutput{}) + pulumi.RegisterOutputType(ImageOutputResourceAmiArrayOutput{}) pulumi.RegisterOutputType(ImagePipelineImageTestsConfigurationOutput{}) pulumi.RegisterOutputType(ImagePipelineImageTestsConfigurationPtrOutput{}) pulumi.RegisterOutputType(ImagePipelineScheduleOutput{}) @@ -2759,6 +3481,12 @@ func init() { pulumi.RegisterOutputType(GetDistributionConfigurationDistributionAmiDistributionConfigurationArrayOutput{}) pulumi.RegisterOutputType(GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionOutput{}) pulumi.RegisterOutputType(GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionArrayOutput{}) + pulumi.RegisterOutputType(GetImageImageTestsConfigurationOutput{}) + pulumi.RegisterOutputType(GetImageImageTestsConfigurationArrayOutput{}) + pulumi.RegisterOutputType(GetImageOutputResourceOutput{}) + pulumi.RegisterOutputType(GetImageOutputResourceArrayOutput{}) + pulumi.RegisterOutputType(GetImageOutputResourceAmiOutput{}) + pulumi.RegisterOutputType(GetImageOutputResourceAmiArrayOutput{}) pulumi.RegisterOutputType(GetImagePipelineImageTestsConfigurationOutput{}) pulumi.RegisterOutputType(GetImagePipelineImageTestsConfigurationArrayOutput{}) pulumi.RegisterOutputType(GetImagePipelineScheduleOutput{}) diff --git a/sdk/go/aws/lb/pulumiTypes.go b/sdk/go/aws/lb/pulumiTypes.go index b7f2ac8f4d8..ee02eb5e315 100644 --- a/sdk/go/aws/lb/pulumiTypes.go +++ b/sdk/go/aws/lb/pulumiTypes.go @@ -4766,6 +4766,7 @@ type GetListenerDefaultAction struct { AuthenticateCognitos []GetListenerDefaultActionAuthenticateCognito `pulumi:"authenticateCognitos"` AuthenticateOidcs []GetListenerDefaultActionAuthenticateOidc `pulumi:"authenticateOidcs"` FixedResponses []GetListenerDefaultActionFixedResponse `pulumi:"fixedResponses"` + Forwards []GetListenerDefaultActionForward `pulumi:"forwards"` Order int `pulumi:"order"` Redirects []GetListenerDefaultActionRedirect `pulumi:"redirects"` TargetGroupArn string `pulumi:"targetGroupArn"` @@ -4787,6 +4788,7 @@ type GetListenerDefaultActionArgs struct { AuthenticateCognitos GetListenerDefaultActionAuthenticateCognitoArrayInput `pulumi:"authenticateCognitos"` AuthenticateOidcs GetListenerDefaultActionAuthenticateOidcArrayInput `pulumi:"authenticateOidcs"` FixedResponses GetListenerDefaultActionFixedResponseArrayInput `pulumi:"fixedResponses"` + Forwards GetListenerDefaultActionForwardArrayInput `pulumi:"forwards"` Order pulumi.IntInput `pulumi:"order"` Redirects GetListenerDefaultActionRedirectArrayInput `pulumi:"redirects"` TargetGroupArn pulumi.StringInput `pulumi:"targetGroupArn"` @@ -4860,6 +4862,10 @@ func (o GetListenerDefaultActionOutput) FixedResponses() GetListenerDefaultActio return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionFixedResponse { return v.FixedResponses }).(GetListenerDefaultActionFixedResponseArrayOutput) } +func (o GetListenerDefaultActionOutput) Forwards() GetListenerDefaultActionForwardArrayOutput { + return o.ApplyT(func(v GetListenerDefaultAction) []GetListenerDefaultActionForward { return v.Forwards }).(GetListenerDefaultActionForwardArrayOutput) +} + func (o GetListenerDefaultActionOutput) Order() pulumi.IntOutput { return o.ApplyT(func(v GetListenerDefaultAction) int { return v.Order }).(pulumi.IntOutput) } @@ -5296,6 +5302,313 @@ func (o GetListenerDefaultActionFixedResponseArrayOutput) Index(i pulumi.IntInpu }).(GetListenerDefaultActionFixedResponseOutput) } +type GetListenerDefaultActionForward struct { + Stickinesses []GetListenerDefaultActionForwardStickiness `pulumi:"stickinesses"` + TargetGroups []GetListenerDefaultActionForwardTargetGroup `pulumi:"targetGroups"` +} + +// GetListenerDefaultActionForwardInput is an input type that accepts GetListenerDefaultActionForwardArgs and GetListenerDefaultActionForwardOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardInput` via: +// +// GetListenerDefaultActionForwardArgs{...} +type GetListenerDefaultActionForwardInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput + ToGetListenerDefaultActionForwardOutputWithContext(context.Context) GetListenerDefaultActionForwardOutput +} + +type GetListenerDefaultActionForwardArgs struct { + Stickinesses GetListenerDefaultActionForwardStickinessArrayInput `pulumi:"stickinesses"` + TargetGroups GetListenerDefaultActionForwardTargetGroupArrayInput `pulumi:"targetGroups"` +} + +func (GetListenerDefaultActionForwardArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return i.ToGetListenerDefaultActionForwardOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArgs) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardOutput) +} + +// GetListenerDefaultActionForwardArrayInput is an input type that accepts GetListenerDefaultActionForwardArray and GetListenerDefaultActionForwardArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardArrayInput` via: +// +// GetListenerDefaultActionForwardArray{ GetListenerDefaultActionForwardArgs{...} } +type GetListenerDefaultActionForwardArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput + ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardArrayOutput +} + +type GetListenerDefaultActionForwardArray []GetListenerDefaultActionForwardInput + +func (GetListenerDefaultActionForwardArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return i.ToGetListenerDefaultActionForwardArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardArray) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardArrayOutput) +} + +type GetListenerDefaultActionForwardOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutput() GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) ToGetListenerDefaultActionForwardOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardOutput { + return o +} + +func (o GetListenerDefaultActionForwardOutput) Stickinesses() GetListenerDefaultActionForwardStickinessArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardStickiness { + return v.Stickinesses + }).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +func (o GetListenerDefaultActionForwardOutput) TargetGroups() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o.ApplyT(func(v GetListenerDefaultActionForward) []GetListenerDefaultActionForwardTargetGroup { + return v.TargetGroups + }).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForward)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutput() GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) ToGetListenerDefaultActionForwardArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForward { + return vs[0].([]GetListenerDefaultActionForward)[vs[1].(int)] + }).(GetListenerDefaultActionForwardOutput) +} + +type GetListenerDefaultActionForwardStickiness struct { + Duration int `pulumi:"duration"` + Enabled bool `pulumi:"enabled"` +} + +// GetListenerDefaultActionForwardStickinessInput is an input type that accepts GetListenerDefaultActionForwardStickinessArgs and GetListenerDefaultActionForwardStickinessOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessInput` via: +// +// GetListenerDefaultActionForwardStickinessArgs{...} +type GetListenerDefaultActionForwardStickinessInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput + ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessOutput +} + +type GetListenerDefaultActionForwardStickinessArgs struct { + Duration pulumi.IntInput `pulumi:"duration"` + Enabled pulumi.BoolInput `pulumi:"enabled"` +} + +func (GetListenerDefaultActionForwardStickinessArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return i.ToGetListenerDefaultActionForwardStickinessOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArgs) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessOutput) +} + +// GetListenerDefaultActionForwardStickinessArrayInput is an input type that accepts GetListenerDefaultActionForwardStickinessArray and GetListenerDefaultActionForwardStickinessArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardStickinessArrayInput` via: +// +// GetListenerDefaultActionForwardStickinessArray{ GetListenerDefaultActionForwardStickinessArgs{...} } +type GetListenerDefaultActionForwardStickinessArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput + ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardStickinessArrayOutput +} + +type GetListenerDefaultActionForwardStickinessArray []GetListenerDefaultActionForwardStickinessInput + +func (GetListenerDefaultActionForwardStickinessArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return i.ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardStickinessArray) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardStickinessArrayOutput) +} + +type GetListenerDefaultActionForwardStickinessOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutput() GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) ToGetListenerDefaultActionForwardStickinessOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Duration() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) int { return v.Duration }).(pulumi.IntOutput) +} + +func (o GetListenerDefaultActionForwardStickinessOutput) Enabled() pulumi.BoolOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardStickiness) bool { return v.Enabled }).(pulumi.BoolOutput) +} + +type GetListenerDefaultActionForwardStickinessArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardStickinessArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardStickiness)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutput() GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) ToGetListenerDefaultActionForwardStickinessArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardStickinessArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardStickinessArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardStickinessOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardStickiness { + return vs[0].([]GetListenerDefaultActionForwardStickiness)[vs[1].(int)] + }).(GetListenerDefaultActionForwardStickinessOutput) +} + +type GetListenerDefaultActionForwardTargetGroup struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn string `pulumi:"arn"` + Weight int `pulumi:"weight"` +} + +// GetListenerDefaultActionForwardTargetGroupInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArgs and GetListenerDefaultActionForwardTargetGroupOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArgs{...} +type GetListenerDefaultActionForwardTargetGroupInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput + ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupOutput +} + +type GetListenerDefaultActionForwardTargetGroupArgs struct { + // The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + Arn pulumi.StringInput `pulumi:"arn"` + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (GetListenerDefaultActionForwardTargetGroupArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArgs) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupOutput) +} + +// GetListenerDefaultActionForwardTargetGroupArrayInput is an input type that accepts GetListenerDefaultActionForwardTargetGroupArray and GetListenerDefaultActionForwardTargetGroupArrayOutput values. +// You can construct a concrete instance of `GetListenerDefaultActionForwardTargetGroupArrayInput` via: +// +// GetListenerDefaultActionForwardTargetGroupArray{ GetListenerDefaultActionForwardTargetGroupArgs{...} } +type GetListenerDefaultActionForwardTargetGroupArrayInput interface { + pulumi.Input + + ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput + ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput +} + +type GetListenerDefaultActionForwardTargetGroupArray []GetListenerDefaultActionForwardTargetGroupInput + +func (GetListenerDefaultActionForwardTargetGroupArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return i.ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(context.Background()) +} + +func (i GetListenerDefaultActionForwardTargetGroupArray) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetListenerDefaultActionForwardTargetGroupArrayOutput) +} + +type GetListenerDefaultActionForwardTargetGroupOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutput() GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) ToGetListenerDefaultActionForwardTargetGroupOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupOutput { + return o +} + +// The arn of the listener. Required if `loadBalancerArn` and `port` is not set. +func (o GetListenerDefaultActionForwardTargetGroupOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) string { return v.Arn }).(pulumi.StringOutput) +} + +func (o GetListenerDefaultActionForwardTargetGroupOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v GetListenerDefaultActionForwardTargetGroup) int { return v.Weight }).(pulumi.IntOutput) +} + +type GetListenerDefaultActionForwardTargetGroupArrayOutput struct{ *pulumi.OutputState } + +func (GetListenerDefaultActionForwardTargetGroupArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetListenerDefaultActionForwardTargetGroup)(nil)).Elem() +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutput() GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) ToGetListenerDefaultActionForwardTargetGroupArrayOutputWithContext(ctx context.Context) GetListenerDefaultActionForwardTargetGroupArrayOutput { + return o +} + +func (o GetListenerDefaultActionForwardTargetGroupArrayOutput) Index(i pulumi.IntInput) GetListenerDefaultActionForwardTargetGroupOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetListenerDefaultActionForwardTargetGroup { + return vs[0].([]GetListenerDefaultActionForwardTargetGroup)[vs[1].(int)] + }).(GetListenerDefaultActionForwardTargetGroupOutput) +} + type GetListenerDefaultActionRedirect struct { Host string `pulumi:"host"` Path string `pulumi:"path"` @@ -5817,6 +6130,12 @@ func init() { pulumi.RegisterOutputType(GetListenerDefaultActionAuthenticateOidcArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionFixedResponseArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardStickinessArrayOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupOutput{}) + pulumi.RegisterOutputType(GetListenerDefaultActionForwardTargetGroupArrayOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectOutput{}) pulumi.RegisterOutputType(GetListenerDefaultActionRedirectArrayOutput{}) pulumi.RegisterOutputType(GetLoadBalancerAccessLogsOutput{}) diff --git a/sdk/go/aws/networkfirewall/ruleGroup.go b/sdk/go/aws/networkfirewall/ruleGroup.go index 0fd0c826b03..afa03423236 100644 --- a/sdk/go/aws/networkfirewall/ruleGroup.go +++ b/sdk/go/aws/networkfirewall/ruleGroup.go @@ -14,7 +14,7 @@ import ( // Provides an AWS Network Firewall Rule Group Resource // // ## Example Usage -// ### Stateful Inspection +// ### Stateful Inspection for denying access to a domain // // ```go // package main @@ -54,7 +54,74 @@ import ( // }) // } // ``` -// ### Stateful Inspection compatible with intrusion detection systems like Snort or Suricata +// ### Stateful Inspection for permitting packets from a source IP address +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/networkfirewall" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// ips := []string{ +// "1.1.1.1/32", +// "1.0.0.1/32", +// } +// _, err := networkfirewall.NewRuleGroup(ctx, "example", &networkfirewall.RuleGroupArgs{ +// Capacity: pulumi.Int(50), +// Description: pulumi.String("Permits http traffic from source"), +// Type: pulumi.String("STATEFUL"), +// RuleGroup: &networkfirewall.RuleGroupRuleGroupArgs{ +// RulesSource: &networkfirewall.RuleGroupRuleGroupRulesSourceArgs{ +// Dynamic: pulumi.MapArray{ +// pulumi.Map{ +// "forEach": toPulumiStringArray(ips), +// "content": pulumi.MapArray{ +// pulumi.Map{ +// "action": pulumi.String("PASS"), +// "header": pulumi.MapArray{ +// pulumi.Map{ +// "destination": pulumi.String("ANY"), +// "destinationPort": pulumi.String("ANY"), +// "protocol": pulumi.String("HTTP"), +// "direction": pulumi.String("ANY"), +// "sourcePort": pulumi.String("ANY"), +// "source": pulumi.Any(stateful_rule.Value), +// }, +// }, +// "ruleOption": pulumi.StringMapArray{ +// pulumi.StringMap{ +// "keyword": pulumi.String("sid:1"), +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// }, +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("permit HTTP from source"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// func toPulumiStringArray(arr []string) pulumi.StringArray { +// var pulumiArr pulumi.StringArray +// for _, v := range arr { +// pulumiArr = append(pulumiArr, pulumi.String(v)) +// } +// return pulumiArr +// } +// ``` +// ### Stateful Inspection for blocking packets from going to an intended destination // // ```go // package main diff --git a/sdk/go/aws/pulumiTypes.go b/sdk/go/aws/pulumiTypes.go index fba010ff85e..8c450a3c6b0 100644 --- a/sdk/go/aws/pulumiTypes.go +++ b/sdk/go/aws/pulumiTypes.go @@ -300,6 +300,7 @@ type ProviderEndpoint struct { Elastictranscoder *string `pulumi:"elastictranscoder"` Elb *string `pulumi:"elb"` Emr *string `pulumi:"emr"` + Emrcontainers *string `pulumi:"emrcontainers"` Es *string `pulumi:"es"` Firehose *string `pulumi:"firehose"` Fms *string `pulumi:"fms"` @@ -464,6 +465,7 @@ type ProviderEndpointArgs struct { Elastictranscoder pulumi.StringPtrInput `pulumi:"elastictranscoder"` Elb pulumi.StringPtrInput `pulumi:"elb"` Emr pulumi.StringPtrInput `pulumi:"emr"` + Emrcontainers pulumi.StringPtrInput `pulumi:"emrcontainers"` Es pulumi.StringPtrInput `pulumi:"es"` Firehose pulumi.StringPtrInput `pulumi:"firehose"` Fms pulumi.StringPtrInput `pulumi:"fms"` @@ -841,6 +843,10 @@ func (o ProviderEndpointOutput) Emr() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Emr }).(pulumi.StringPtrOutput) } +func (o ProviderEndpointOutput) Emrcontainers() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.Emrcontainers }).(pulumi.StringPtrOutput) +} + func (o ProviderEndpointOutput) Es() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Es }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/sagemaker/appImageConfig.go b/sdk/go/aws/sagemaker/appImageConfig.go new file mode 100644 index 00000000000..9fd6857bb34 --- /dev/null +++ b/sdk/go/aws/sagemaker/appImageConfig.go @@ -0,0 +1,348 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package sagemaker + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides a Sagemaker App Image Config resource. +// +// ## Example Usage +// ### Basic usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewAppImageConfig(ctx, "test", &sagemaker.AppImageConfigArgs{ +// AppImageConfigName: pulumi.String("example"), +// KernelGatewayImageConfig: &sagemaker.AppImageConfigKernelGatewayImageConfigArgs{ +// KernelSpec: &sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs{ +// Name: pulumi.String("example"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ### Default File System Config +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewAppImageConfig(ctx, "test", &sagemaker.AppImageConfigArgs{ +// AppImageConfigName: pulumi.String("example"), +// KernelGatewayImageConfig: &sagemaker.AppImageConfigKernelGatewayImageConfigArgs{ +// FileSystemConfig: nil, +// KernelSpec: &sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs{ +// Name: pulumi.String("example"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Sagemaker App Image Configs can be imported using the `name`, e.g. +// +// ```sh +// $ pulumi import aws:sagemaker/appImageConfig:AppImageConfig example example +// ``` +type AppImageConfig struct { + pulumi.CustomResourceState + + // The name of the App Image Config. + AppImageConfigName pulumi.StringOutput `pulumi:"appImageConfigName"` + // The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + Arn pulumi.StringOutput `pulumi:"arn"` + // The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + KernelGatewayImageConfig AppImageConfigKernelGatewayImageConfigPtrOutput `pulumi:"kernelGatewayImageConfig"` +} + +// NewAppImageConfig registers a new resource with the given unique name, arguments, and options. +func NewAppImageConfig(ctx *pulumi.Context, + name string, args *AppImageConfigArgs, opts ...pulumi.ResourceOption) (*AppImageConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AppImageConfigName == nil { + return nil, errors.New("invalid value for required argument 'AppImageConfigName'") + } + var resource AppImageConfig + err := ctx.RegisterResource("aws:sagemaker/appImageConfig:AppImageConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAppImageConfig gets an existing AppImageConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAppImageConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AppImageConfigState, opts ...pulumi.ResourceOption) (*AppImageConfig, error) { + var resource AppImageConfig + err := ctx.ReadResource("aws:sagemaker/appImageConfig:AppImageConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AppImageConfig resources. +type appImageConfigState struct { + // The name of the App Image Config. + AppImageConfigName *string `pulumi:"appImageConfigName"` + // The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + Arn *string `pulumi:"arn"` + // The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + KernelGatewayImageConfig *AppImageConfigKernelGatewayImageConfig `pulumi:"kernelGatewayImageConfig"` +} + +type AppImageConfigState struct { + // The name of the App Image Config. + AppImageConfigName pulumi.StringPtrInput + // The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + Arn pulumi.StringPtrInput + // The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + KernelGatewayImageConfig AppImageConfigKernelGatewayImageConfigPtrInput +} + +func (AppImageConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*appImageConfigState)(nil)).Elem() +} + +type appImageConfigArgs struct { + // The name of the App Image Config. + AppImageConfigName string `pulumi:"appImageConfigName"` + // The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + KernelGatewayImageConfig *AppImageConfigKernelGatewayImageConfig `pulumi:"kernelGatewayImageConfig"` +} + +// The set of arguments for constructing a AppImageConfig resource. +type AppImageConfigArgs struct { + // The name of the App Image Config. + AppImageConfigName pulumi.StringInput + // The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + KernelGatewayImageConfig AppImageConfigKernelGatewayImageConfigPtrInput +} + +func (AppImageConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*appImageConfigArgs)(nil)).Elem() +} + +type AppImageConfigInput interface { + pulumi.Input + + ToAppImageConfigOutput() AppImageConfigOutput + ToAppImageConfigOutputWithContext(ctx context.Context) AppImageConfigOutput +} + +func (*AppImageConfig) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfig)(nil)) +} + +func (i *AppImageConfig) ToAppImageConfigOutput() AppImageConfigOutput { + return i.ToAppImageConfigOutputWithContext(context.Background()) +} + +func (i *AppImageConfig) ToAppImageConfigOutputWithContext(ctx context.Context) AppImageConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigOutput) +} + +func (i *AppImageConfig) ToAppImageConfigPtrOutput() AppImageConfigPtrOutput { + return i.ToAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (i *AppImageConfig) ToAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigPtrOutput) +} + +type AppImageConfigPtrInput interface { + pulumi.Input + + ToAppImageConfigPtrOutput() AppImageConfigPtrOutput + ToAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigPtrOutput +} + +type appImageConfigPtrType AppImageConfigArgs + +func (*appImageConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfig)(nil)) +} + +func (i *appImageConfigPtrType) ToAppImageConfigPtrOutput() AppImageConfigPtrOutput { + return i.ToAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (i *appImageConfigPtrType) ToAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigPtrOutput) +} + +// AppImageConfigArrayInput is an input type that accepts AppImageConfigArray and AppImageConfigArrayOutput values. +// You can construct a concrete instance of `AppImageConfigArrayInput` via: +// +// AppImageConfigArray{ AppImageConfigArgs{...} } +type AppImageConfigArrayInput interface { + pulumi.Input + + ToAppImageConfigArrayOutput() AppImageConfigArrayOutput + ToAppImageConfigArrayOutputWithContext(context.Context) AppImageConfigArrayOutput +} + +type AppImageConfigArray []AppImageConfigInput + +func (AppImageConfigArray) ElementType() reflect.Type { + return reflect.TypeOf(([]*AppImageConfig)(nil)) +} + +func (i AppImageConfigArray) ToAppImageConfigArrayOutput() AppImageConfigArrayOutput { + return i.ToAppImageConfigArrayOutputWithContext(context.Background()) +} + +func (i AppImageConfigArray) ToAppImageConfigArrayOutputWithContext(ctx context.Context) AppImageConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigArrayOutput) +} + +// AppImageConfigMapInput is an input type that accepts AppImageConfigMap and AppImageConfigMapOutput values. +// You can construct a concrete instance of `AppImageConfigMapInput` via: +// +// AppImageConfigMap{ "key": AppImageConfigArgs{...} } +type AppImageConfigMapInput interface { + pulumi.Input + + ToAppImageConfigMapOutput() AppImageConfigMapOutput + ToAppImageConfigMapOutputWithContext(context.Context) AppImageConfigMapOutput +} + +type AppImageConfigMap map[string]AppImageConfigInput + +func (AppImageConfigMap) ElementType() reflect.Type { + return reflect.TypeOf((map[string]*AppImageConfig)(nil)) +} + +func (i AppImageConfigMap) ToAppImageConfigMapOutput() AppImageConfigMapOutput { + return i.ToAppImageConfigMapOutputWithContext(context.Background()) +} + +func (i AppImageConfigMap) ToAppImageConfigMapOutputWithContext(ctx context.Context) AppImageConfigMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigMapOutput) +} + +type AppImageConfigOutput struct { + *pulumi.OutputState +} + +func (AppImageConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfig)(nil)) +} + +func (o AppImageConfigOutput) ToAppImageConfigOutput() AppImageConfigOutput { + return o +} + +func (o AppImageConfigOutput) ToAppImageConfigOutputWithContext(ctx context.Context) AppImageConfigOutput { + return o +} + +func (o AppImageConfigOutput) ToAppImageConfigPtrOutput() AppImageConfigPtrOutput { + return o.ToAppImageConfigPtrOutputWithContext(context.Background()) +} + +func (o AppImageConfigOutput) ToAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigPtrOutput { + return o.ApplyT(func(v AppImageConfig) *AppImageConfig { + return &v + }).(AppImageConfigPtrOutput) +} + +type AppImageConfigPtrOutput struct { + *pulumi.OutputState +} + +func (AppImageConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfig)(nil)) +} + +func (o AppImageConfigPtrOutput) ToAppImageConfigPtrOutput() AppImageConfigPtrOutput { + return o +} + +func (o AppImageConfigPtrOutput) ToAppImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigPtrOutput { + return o +} + +type AppImageConfigArrayOutput struct{ *pulumi.OutputState } + +func (AppImageConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AppImageConfig)(nil)) +} + +func (o AppImageConfigArrayOutput) ToAppImageConfigArrayOutput() AppImageConfigArrayOutput { + return o +} + +func (o AppImageConfigArrayOutput) ToAppImageConfigArrayOutputWithContext(ctx context.Context) AppImageConfigArrayOutput { + return o +} + +func (o AppImageConfigArrayOutput) Index(i pulumi.IntInput) AppImageConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AppImageConfig { + return vs[0].([]AppImageConfig)[vs[1].(int)] + }).(AppImageConfigOutput) +} + +type AppImageConfigMapOutput struct{ *pulumi.OutputState } + +func (AppImageConfigMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]AppImageConfig)(nil)) +} + +func (o AppImageConfigMapOutput) ToAppImageConfigMapOutput() AppImageConfigMapOutput { + return o +} + +func (o AppImageConfigMapOutput) ToAppImageConfigMapOutputWithContext(ctx context.Context) AppImageConfigMapOutput { + return o +} + +func (o AppImageConfigMapOutput) MapIndex(k pulumi.StringInput) AppImageConfigOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) AppImageConfig { + return vs[0].(map[string]AppImageConfig)[vs[1].(string)] + }).(AppImageConfigOutput) +} + +func init() { + pulumi.RegisterOutputType(AppImageConfigOutput{}) + pulumi.RegisterOutputType(AppImageConfigPtrOutput{}) + pulumi.RegisterOutputType(AppImageConfigArrayOutput{}) + pulumi.RegisterOutputType(AppImageConfigMapOutput{}) +} diff --git a/sdk/go/aws/sagemaker/codeRepository.go b/sdk/go/aws/sagemaker/codeRepository.go index 5bf1ecb240a..c8d4556e7cc 100644 --- a/sdk/go/aws/sagemaker/codeRepository.go +++ b/sdk/go/aws/sagemaker/codeRepository.go @@ -11,12 +11,101 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) +// Provides a Sagemaker Code Repository resource. +// +// ## Example Usage +// ### Basic usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewCodeRepository(ctx, "example", &sagemaker.CodeRepositoryArgs{ +// CodeRepositoryName: pulumi.String("example"), +// GitConfig: &sagemaker.CodeRepositoryGitConfigArgs{ +// RepositoryUrl: pulumi.String("https://github.com/hashicorp/terraform-provider-aws.git"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ### Example with Secret +// +// ```go +// package main +// +// import ( +// "encoding/json" +// +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/secretsmanager" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleSecret, err := secretsmanager.NewSecret(ctx, "exampleSecret", nil) +// if err != nil { +// return err +// } +// tmpJSON0, err := json.Marshal(map[string]interface{}{ +// "username": "example", +// "password": "example", +// }) +// if err != nil { +// return err +// } +// json0 := string(tmpJSON0) +// exampleSecretVersion, err := secretsmanager.NewSecretVersion(ctx, "exampleSecretVersion", &secretsmanager.SecretVersionArgs{ +// SecretId: exampleSecret.ID(), +// SecretString: pulumi.String(json0), +// }) +// if err != nil { +// return err +// } +// _, err = sagemaker.NewCodeRepository(ctx, "exampleCodeRepository", &sagemaker.CodeRepositoryArgs{ +// CodeRepositoryName: pulumi.String("example"), +// GitConfig: &sagemaker.CodeRepositoryGitConfigArgs{ +// RepositoryUrl: pulumi.String("https://github.com/hashicorp/terraform-provider-aws.git"), +// SecretArn: exampleSecret.Arn, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// exampleSecretVersion, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Sagemaker Code Repositories can be imported using the `name`, e.g. +// +// ```sh +// $ pulumi import aws:sagemaker/codeRepository:CodeRepository test_code_repository my-code-repo +// ``` type CodeRepository struct { pulumi.CustomResourceState - Arn pulumi.StringOutput `pulumi:"arn"` - CodeRepositoryName pulumi.StringOutput `pulumi:"codeRepositoryName"` - GitConfig CodeRepositoryGitConfigOutput `pulumi:"gitConfig"` + // The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + Arn pulumi.StringOutput `pulumi:"arn"` + // The name of the Code Repository (must be unique). + CodeRepositoryName pulumi.StringOutput `pulumi:"codeRepositoryName"` + // Specifies details about the repository. see Git Config details below. + GitConfig CodeRepositoryGitConfigOutput `pulumi:"gitConfig"` } // NewCodeRepository registers a new resource with the given unique name, arguments, and options. @@ -54,15 +143,21 @@ func GetCodeRepository(ctx *pulumi.Context, // Input properties used for looking up and filtering CodeRepository resources. type codeRepositoryState struct { - Arn *string `pulumi:"arn"` - CodeRepositoryName *string `pulumi:"codeRepositoryName"` - GitConfig *CodeRepositoryGitConfig `pulumi:"gitConfig"` + // The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + Arn *string `pulumi:"arn"` + // The name of the Code Repository (must be unique). + CodeRepositoryName *string `pulumi:"codeRepositoryName"` + // Specifies details about the repository. see Git Config details below. + GitConfig *CodeRepositoryGitConfig `pulumi:"gitConfig"` } type CodeRepositoryState struct { - Arn pulumi.StringPtrInput + // The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + Arn pulumi.StringPtrInput + // The name of the Code Repository (must be unique). CodeRepositoryName pulumi.StringPtrInput - GitConfig CodeRepositoryGitConfigPtrInput + // Specifies details about the repository. see Git Config details below. + GitConfig CodeRepositoryGitConfigPtrInput } func (CodeRepositoryState) ElementType() reflect.Type { @@ -70,14 +165,18 @@ func (CodeRepositoryState) ElementType() reflect.Type { } type codeRepositoryArgs struct { - CodeRepositoryName string `pulumi:"codeRepositoryName"` - GitConfig CodeRepositoryGitConfig `pulumi:"gitConfig"` + // The name of the Code Repository (must be unique). + CodeRepositoryName string `pulumi:"codeRepositoryName"` + // Specifies details about the repository. see Git Config details below. + GitConfig CodeRepositoryGitConfig `pulumi:"gitConfig"` } // The set of arguments for constructing a CodeRepository resource. type CodeRepositoryArgs struct { + // The name of the Code Repository (must be unique). CodeRepositoryName pulumi.StringInput - GitConfig CodeRepositoryGitConfigInput + // Specifies details about the repository. see Git Config details below. + GitConfig CodeRepositoryGitConfigInput } func (CodeRepositoryArgs) ElementType() reflect.Type { diff --git a/sdk/go/aws/sagemaker/init.go b/sdk/go/aws/sagemaker/init.go index 3db7c6281af..e9b40990631 100644 --- a/sdk/go/aws/sagemaker/init.go +++ b/sdk/go/aws/sagemaker/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "aws:sagemaker/appImageConfig:AppImageConfig": + r, err = NewAppImageConfig(ctx, name, nil, pulumi.URN_(urn)) case "aws:sagemaker/codeRepository:CodeRepository": r, err = NewCodeRepository(ctx, name, nil, pulumi.URN_(urn)) case "aws:sagemaker/domain:Domain": @@ -55,6 +57,11 @@ func init() { if err != nil { fmt.Println("failed to determine package version. defaulting to v1: %v", err) } + pulumi.RegisterResourceModule( + "aws", + "sagemaker/appImageConfig", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "sagemaker/codeRepository", diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index d137c1fd1e1..6545298bd03 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -10,10 +10,490 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) +type AppImageConfigKernelGatewayImageConfig struct { + // The URL where the Git repository is located. See File System Config details below. + FileSystemConfig *AppImageConfigKernelGatewayImageConfigFileSystemConfig `pulumi:"fileSystemConfig"` + // The default branch for the Git repository. See Kernel Spec details below. + KernelSpec AppImageConfigKernelGatewayImageConfigKernelSpec `pulumi:"kernelSpec"` +} + +// AppImageConfigKernelGatewayImageConfigInput is an input type that accepts AppImageConfigKernelGatewayImageConfigArgs and AppImageConfigKernelGatewayImageConfigOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigInput` via: +// +// AppImageConfigKernelGatewayImageConfigArgs{...} +type AppImageConfigKernelGatewayImageConfigInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigOutput() AppImageConfigKernelGatewayImageConfigOutput + ToAppImageConfigKernelGatewayImageConfigOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigOutput +} + +type AppImageConfigKernelGatewayImageConfigArgs struct { + // The URL where the Git repository is located. See File System Config details below. + FileSystemConfig AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrInput `pulumi:"fileSystemConfig"` + // The default branch for the Git repository. See Kernel Spec details below. + KernelSpec AppImageConfigKernelGatewayImageConfigKernelSpecInput `pulumi:"kernelSpec"` +} + +func (AppImageConfigKernelGatewayImageConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfig)(nil)).Elem() +} + +func (i AppImageConfigKernelGatewayImageConfigArgs) ToAppImageConfigKernelGatewayImageConfigOutput() AppImageConfigKernelGatewayImageConfigOutput { + return i.ToAppImageConfigKernelGatewayImageConfigOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigArgs) ToAppImageConfigKernelGatewayImageConfigOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigOutput) +} + +func (i AppImageConfigKernelGatewayImageConfigArgs) ToAppImageConfigKernelGatewayImageConfigPtrOutput() AppImageConfigKernelGatewayImageConfigPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigArgs) ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigOutput).ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(ctx) +} + +// AppImageConfigKernelGatewayImageConfigPtrInput is an input type that accepts AppImageConfigKernelGatewayImageConfigArgs, AppImageConfigKernelGatewayImageConfigPtr and AppImageConfigKernelGatewayImageConfigPtrOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigPtrInput` via: +// +// AppImageConfigKernelGatewayImageConfigArgs{...} +// +// or: +// +// nil +type AppImageConfigKernelGatewayImageConfigPtrInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigPtrOutput() AppImageConfigKernelGatewayImageConfigPtrOutput + ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigPtrOutput +} + +type appImageConfigKernelGatewayImageConfigPtrType AppImageConfigKernelGatewayImageConfigArgs + +func AppImageConfigKernelGatewayImageConfigPtr(v *AppImageConfigKernelGatewayImageConfigArgs) AppImageConfigKernelGatewayImageConfigPtrInput { + return (*appImageConfigKernelGatewayImageConfigPtrType)(v) +} + +func (*appImageConfigKernelGatewayImageConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfig)(nil)).Elem() +} + +func (i *appImageConfigKernelGatewayImageConfigPtrType) ToAppImageConfigKernelGatewayImageConfigPtrOutput() AppImageConfigKernelGatewayImageConfigPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(context.Background()) +} + +func (i *appImageConfigKernelGatewayImageConfigPtrType) ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfig)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigOutput) ToAppImageConfigKernelGatewayImageConfigOutput() AppImageConfigKernelGatewayImageConfigOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigOutput) ToAppImageConfigKernelGatewayImageConfigOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigOutput) ToAppImageConfigKernelGatewayImageConfigPtrOutput() AppImageConfigKernelGatewayImageConfigPtrOutput { + return o.ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(context.Background()) +} + +func (o AppImageConfigKernelGatewayImageConfigOutput) ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfig) *AppImageConfigKernelGatewayImageConfig { + return &v + }).(AppImageConfigKernelGatewayImageConfigPtrOutput) +} + +// The URL where the Git repository is located. See File System Config details below. +func (o AppImageConfigKernelGatewayImageConfigOutput) FileSystemConfig() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfig) *AppImageConfigKernelGatewayImageConfigFileSystemConfig { + return v.FileSystemConfig + }).(AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) +} + +// The default branch for the Git repository. See Kernel Spec details below. +func (o AppImageConfigKernelGatewayImageConfigOutput) KernelSpec() AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfig) AppImageConfigKernelGatewayImageConfigKernelSpec { + return v.KernelSpec + }).(AppImageConfigKernelGatewayImageConfigKernelSpecOutput) +} + +type AppImageConfigKernelGatewayImageConfigPtrOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfig)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigPtrOutput) ToAppImageConfigKernelGatewayImageConfigPtrOutput() AppImageConfigKernelGatewayImageConfigPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigPtrOutput) ToAppImageConfigKernelGatewayImageConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigPtrOutput) Elem() AppImageConfigKernelGatewayImageConfigOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfig) AppImageConfigKernelGatewayImageConfig { return *v }).(AppImageConfigKernelGatewayImageConfigOutput) +} + +// The URL where the Git repository is located. See File System Config details below. +func (o AppImageConfigKernelGatewayImageConfigPtrOutput) FileSystemConfig() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfig) *AppImageConfigKernelGatewayImageConfigFileSystemConfig { + if v == nil { + return nil + } + return v.FileSystemConfig + }).(AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) +} + +// The default branch for the Git repository. See Kernel Spec details below. +func (o AppImageConfigKernelGatewayImageConfigPtrOutput) KernelSpec() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfig) *AppImageConfigKernelGatewayImageConfigKernelSpec { + if v == nil { + return nil + } + return &v.KernelSpec + }).(AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigFileSystemConfig struct { + // The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + DefaultGid *int `pulumi:"defaultGid"` + // The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + DefaultUid *int `pulumi:"defaultUid"` + // The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + MountPath *string `pulumi:"mountPath"` +} + +// AppImageConfigKernelGatewayImageConfigFileSystemConfigInput is an input type that accepts AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs and AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigFileSystemConfigInput` via: +// +// AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs{...} +type AppImageConfigKernelGatewayImageConfigFileSystemConfigInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput + ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput +} + +type AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs struct { + // The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + DefaultGid pulumi.IntPtrInput `pulumi:"defaultGid"` + // The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + DefaultUid pulumi.IntPtrInput `pulumi:"defaultUid"` + // The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + MountPath pulumi.StringPtrInput `pulumi:"mountPath"` +} + +func (AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfigFileSystemConfig)(nil)).Elem() +} + +func (i AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput { + return i.ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) +} + +func (i AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput).ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(ctx) +} + +// AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrInput is an input type that accepts AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs, AppImageConfigKernelGatewayImageConfigFileSystemConfigPtr and AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrInput` via: +// +// AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs{...} +// +// or: +// +// nil +type AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput + ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput +} + +type appImageConfigKernelGatewayImageConfigFileSystemConfigPtrType AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs + +func AppImageConfigKernelGatewayImageConfigFileSystemConfigPtr(v *AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrInput { + return (*appImageConfigKernelGatewayImageConfigFileSystemConfigPtrType)(v) +} + +func (*appImageConfigKernelGatewayImageConfigFileSystemConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfigFileSystemConfig)(nil)).Elem() +} + +func (i *appImageConfigKernelGatewayImageConfigFileSystemConfigPtrType) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(context.Background()) +} + +func (i *appImageConfigKernelGatewayImageConfigFileSystemConfigPtrType) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfigFileSystemConfig)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o.ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(context.Background()) +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigFileSystemConfig) *AppImageConfigKernelGatewayImageConfigFileSystemConfig { + return &v + }).(AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) +} + +// The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) DefaultGid() pulumi.IntPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigFileSystemConfig) *int { return v.DefaultGid }).(pulumi.IntPtrOutput) +} + +// The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) DefaultUid() pulumi.IntPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigFileSystemConfig) *int { return v.DefaultUid }).(pulumi.IntPtrOutput) +} + +// The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) MountPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigFileSystemConfig) *string { return v.MountPath }).(pulumi.StringPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfigFileSystemConfig)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput() AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) ToAppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) Elem() AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigFileSystemConfig) AppImageConfigKernelGatewayImageConfigFileSystemConfig { + return *v + }).(AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput) +} + +// The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) DefaultGid() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigFileSystemConfig) *int { + if v == nil { + return nil + } + return v.DefaultGid + }).(pulumi.IntPtrOutput) +} + +// The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) DefaultUid() pulumi.IntPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigFileSystemConfig) *int { + if v == nil { + return nil + } + return v.DefaultUid + }).(pulumi.IntPtrOutput) +} + +// The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. +func (o AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput) MountPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigFileSystemConfig) *string { + if v == nil { + return nil + } + return v.MountPath + }).(pulumi.StringPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigKernelSpec struct { + // The display name of the kernel. + DisplayName *string `pulumi:"displayName"` + // The name of the kernel. + Name string `pulumi:"name"` +} + +// AppImageConfigKernelGatewayImageConfigKernelSpecInput is an input type that accepts AppImageConfigKernelGatewayImageConfigKernelSpecArgs and AppImageConfigKernelGatewayImageConfigKernelSpecOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigKernelSpecInput` via: +// +// AppImageConfigKernelGatewayImageConfigKernelSpecArgs{...} +type AppImageConfigKernelGatewayImageConfigKernelSpecInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigKernelSpecOutput() AppImageConfigKernelGatewayImageConfigKernelSpecOutput + ToAppImageConfigKernelGatewayImageConfigKernelSpecOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecOutput +} + +type AppImageConfigKernelGatewayImageConfigKernelSpecArgs struct { + // The display name of the kernel. + DisplayName pulumi.StringPtrInput `pulumi:"displayName"` + // The name of the kernel. + Name pulumi.StringInput `pulumi:"name"` +} + +func (AppImageConfigKernelGatewayImageConfigKernelSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfigKernelSpec)(nil)).Elem() +} + +func (i AppImageConfigKernelGatewayImageConfigKernelSpecArgs) ToAppImageConfigKernelGatewayImageConfigKernelSpecOutput() AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return i.ToAppImageConfigKernelGatewayImageConfigKernelSpecOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigKernelSpecArgs) ToAppImageConfigKernelGatewayImageConfigKernelSpecOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigKernelSpecOutput) +} + +func (i AppImageConfigKernelGatewayImageConfigKernelSpecArgs) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(context.Background()) +} + +func (i AppImageConfigKernelGatewayImageConfigKernelSpecArgs) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigKernelSpecOutput).ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(ctx) +} + +// AppImageConfigKernelGatewayImageConfigKernelSpecPtrInput is an input type that accepts AppImageConfigKernelGatewayImageConfigKernelSpecArgs, AppImageConfigKernelGatewayImageConfigKernelSpecPtr and AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput values. +// You can construct a concrete instance of `AppImageConfigKernelGatewayImageConfigKernelSpecPtrInput` via: +// +// AppImageConfigKernelGatewayImageConfigKernelSpecArgs{...} +// +// or: +// +// nil +type AppImageConfigKernelGatewayImageConfigKernelSpecPtrInput interface { + pulumi.Input + + ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput + ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput +} + +type appImageConfigKernelGatewayImageConfigKernelSpecPtrType AppImageConfigKernelGatewayImageConfigKernelSpecArgs + +func AppImageConfigKernelGatewayImageConfigKernelSpecPtr(v *AppImageConfigKernelGatewayImageConfigKernelSpecArgs) AppImageConfigKernelGatewayImageConfigKernelSpecPtrInput { + return (*appImageConfigKernelGatewayImageConfigKernelSpecPtrType)(v) +} + +func (*appImageConfigKernelGatewayImageConfigKernelSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfigKernelSpec)(nil)).Elem() +} + +func (i *appImageConfigKernelGatewayImageConfigKernelSpecPtrType) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return i.ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(context.Background()) +} + +func (i *appImageConfigKernelGatewayImageConfigKernelSpecPtrType) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) +} + +type AppImageConfigKernelGatewayImageConfigKernelSpecOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigKernelSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AppImageConfigKernelGatewayImageConfigKernelSpec)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecOutput() AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return o.ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(context.Background()) +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigKernelSpec) *AppImageConfigKernelGatewayImageConfigKernelSpec { + return &v + }).(AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) +} + +// The display name of the kernel. +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigKernelSpec) *string { return v.DisplayName }).(pulumi.StringPtrOutput) +} + +// The name of the kernel. +func (o AppImageConfigKernelGatewayImageConfigKernelSpecOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v AppImageConfigKernelGatewayImageConfigKernelSpec) string { return v.Name }).(pulumi.StringOutput) +} + +type AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput struct{ *pulumi.OutputState } + +func (AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AppImageConfigKernelGatewayImageConfigKernelSpec)(nil)).Elem() +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput() AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) ToAppImageConfigKernelGatewayImageConfigKernelSpecPtrOutputWithContext(ctx context.Context) AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput { + return o +} + +func (o AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) Elem() AppImageConfigKernelGatewayImageConfigKernelSpecOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigKernelSpec) AppImageConfigKernelGatewayImageConfigKernelSpec { + return *v + }).(AppImageConfigKernelGatewayImageConfigKernelSpecOutput) +} + +// The display name of the kernel. +func (o AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) DisplayName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigKernelSpec) *string { + if v == nil { + return nil + } + return v.DisplayName + }).(pulumi.StringPtrOutput) +} + +// The name of the kernel. +func (o AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AppImageConfigKernelGatewayImageConfigKernelSpec) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + type CodeRepositoryGitConfig struct { - Branch *string `pulumi:"branch"` - RepositoryUrl string `pulumi:"repositoryUrl"` - SecretArn *string `pulumi:"secretArn"` + // The default branch for the Git repository. + Branch *string `pulumi:"branch"` + // The URL where the Git repository is located. + RepositoryUrl string `pulumi:"repositoryUrl"` + // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + SecretArn *string `pulumi:"secretArn"` } // CodeRepositoryGitConfigInput is an input type that accepts CodeRepositoryGitConfigArgs and CodeRepositoryGitConfigOutput values. @@ -28,9 +508,12 @@ type CodeRepositoryGitConfigInput interface { } type CodeRepositoryGitConfigArgs struct { - Branch pulumi.StringPtrInput `pulumi:"branch"` - RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` - SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` + // The default branch for the Git repository. + Branch pulumi.StringPtrInput `pulumi:"branch"` + // The URL where the Git repository is located. + RepositoryUrl pulumi.StringInput `pulumi:"repositoryUrl"` + // The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + SecretArn pulumi.StringPtrInput `pulumi:"secretArn"` } func (CodeRepositoryGitConfigArgs) ElementType() reflect.Type { @@ -109,14 +592,18 @@ func (o CodeRepositoryGitConfigOutput) ToCodeRepositoryGitConfigPtrOutputWithCon return &v }).(CodeRepositoryGitConfigPtrOutput) } + +// The default branch for the Git repository. func (o CodeRepositoryGitConfigOutput) Branch() pulumi.StringPtrOutput { return o.ApplyT(func(v CodeRepositoryGitConfig) *string { return v.Branch }).(pulumi.StringPtrOutput) } +// The URL where the Git repository is located. func (o CodeRepositoryGitConfigOutput) RepositoryUrl() pulumi.StringOutput { return o.ApplyT(func(v CodeRepositoryGitConfig) string { return v.RepositoryUrl }).(pulumi.StringOutput) } +// The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` func (o CodeRepositoryGitConfigOutput) SecretArn() pulumi.StringPtrOutput { return o.ApplyT(func(v CodeRepositoryGitConfig) *string { return v.SecretArn }).(pulumi.StringPtrOutput) } @@ -139,6 +626,7 @@ func (o CodeRepositoryGitConfigPtrOutput) Elem() CodeRepositoryGitConfigOutput { return o.ApplyT(func(v *CodeRepositoryGitConfig) CodeRepositoryGitConfig { return *v }).(CodeRepositoryGitConfigOutput) } +// The default branch for the Git repository. func (o CodeRepositoryGitConfigPtrOutput) Branch() pulumi.StringPtrOutput { return o.ApplyT(func(v *CodeRepositoryGitConfig) *string { if v == nil { @@ -148,6 +636,7 @@ func (o CodeRepositoryGitConfigPtrOutput) Branch() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// The URL where the Git repository is located. func (o CodeRepositoryGitConfigPtrOutput) RepositoryUrl() pulumi.StringPtrOutput { return o.ApplyT(func(v *CodeRepositoryGitConfig) *string { if v == nil { @@ -157,6 +646,7 @@ func (o CodeRepositoryGitConfigPtrOutput) RepositoryUrl() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +// The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` func (o CodeRepositoryGitConfigPtrOutput) SecretArn() pulumi.StringPtrOutput { return o.ApplyT(func(v *CodeRepositoryGitConfig) *string { if v == nil { @@ -5279,6 +5769,12 @@ func (o UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutpu } func init() { + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigOutput{}) + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigPtrOutput{}) + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigFileSystemConfigOutput{}) + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigFileSystemConfigPtrOutput{}) + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigKernelSpecOutput{}) + pulumi.RegisterOutputType(AppImageConfigKernelGatewayImageConfigKernelSpecPtrOutput{}) pulumi.RegisterOutputType(CodeRepositoryGitConfigOutput{}) pulumi.RegisterOutputType(CodeRepositoryGitConfigPtrOutput{}) pulumi.RegisterOutputType(DomainDefaultUserSettingsOutput{}) diff --git a/sdk/go/aws/ses/pulumiTypes.go b/sdk/go/aws/ses/pulumiTypes.go index f4f9402d2bf..2d87c7f5242 100644 --- a/sdk/go/aws/ses/pulumiTypes.go +++ b/sdk/go/aws/ses/pulumiTypes.go @@ -15,7 +15,7 @@ type EventDestinationCloudwatchDestination struct { DefaultValue string `pulumi:"defaultValue"` // The name for the dimension DimensionName string `pulumi:"dimensionName"` - // The source for the value. It can be either `"messageTag"` or `"emailHeader"` + // The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. ValueSource string `pulumi:"valueSource"` } @@ -35,7 +35,7 @@ type EventDestinationCloudwatchDestinationArgs struct { DefaultValue pulumi.StringInput `pulumi:"defaultValue"` // The name for the dimension DimensionName pulumi.StringInput `pulumi:"dimensionName"` - // The source for the value. It can be either `"messageTag"` or `"emailHeader"` + // The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. ValueSource pulumi.StringInput `pulumi:"valueSource"` } @@ -100,7 +100,7 @@ func (o EventDestinationCloudwatchDestinationOutput) DimensionName() pulumi.Stri return o.ApplyT(func(v EventDestinationCloudwatchDestination) string { return v.DimensionName }).(pulumi.StringOutput) } -// The source for the value. It can be either `"messageTag"` or `"emailHeader"` +// The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. func (o EventDestinationCloudwatchDestinationOutput) ValueSource() pulumi.StringOutput { return o.ApplyT(func(v EventDestinationCloudwatchDestination) string { return v.ValueSource }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/ssm/pulumiTypes.go b/sdk/go/aws/ssm/pulumiTypes.go index f3995bf4adf..b459069f9e3 100644 --- a/sdk/go/aws/ssm/pulumiTypes.go +++ b/sdk/go/aws/ssm/pulumiTypes.go @@ -2084,7 +2084,7 @@ type PatchBaselineApprovalRule struct { ComplianceLevel *string `pulumi:"complianceLevel"` // Boolean enabling the application of non-security updates. The default value is 'false'. Valid for Linux instances only. EnableNonSecurity *bool `pulumi:"enableNonSecurity"` - // The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + // The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operatingSystem` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. PatchFilters []PatchBaselineApprovalRulePatchFilter `pulumi:"patchFilters"` } @@ -2106,7 +2106,7 @@ type PatchBaselineApprovalRuleArgs struct { ComplianceLevel pulumi.StringPtrInput `pulumi:"complianceLevel"` // Boolean enabling the application of non-security updates. The default value is 'false'. Valid for Linux instances only. EnableNonSecurity pulumi.BoolPtrInput `pulumi:"enableNonSecurity"` - // The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + // The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operatingSystem` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. PatchFilters PatchBaselineApprovalRulePatchFilterArrayInput `pulumi:"patchFilters"` } @@ -2176,7 +2176,7 @@ func (o PatchBaselineApprovalRuleOutput) EnableNonSecurity() pulumi.BoolPtrOutpu return o.ApplyT(func(v PatchBaselineApprovalRule) *bool { return v.EnableNonSecurity }).(pulumi.BoolPtrOutput) } -// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. +// The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operatingSystem` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. func (o PatchBaselineApprovalRuleOutput) PatchFilters() PatchBaselineApprovalRulePatchFilterArrayOutput { return o.ApplyT(func(v PatchBaselineApprovalRule) []PatchBaselineApprovalRulePatchFilter { return v.PatchFilters }).(PatchBaselineApprovalRulePatchFilterArrayOutput) } diff --git a/sdk/go/aws/transfer/user.go b/sdk/go/aws/transfer/user.go index f4c3d671ec4..89906482206 100644 --- a/sdk/go/aws/transfer/user.go +++ b/sdk/go/aws/transfer/user.go @@ -49,9 +49,16 @@ import ( // return err // } // _, err = transfer.NewUser(ctx, "fooUser", &transfer.UserArgs{ -// ServerId: fooServer.ID(), -// UserName: pulumi.String("tftestuser"), -// Role: fooRole.Arn, +// ServerId: fooServer.ID(), +// UserName: pulumi.String("tftestuser"), +// Role: fooRole.Arn, +// HomeDirectoryType: pulumi.String("LOGICAL"), +// HomeDirectoryMappings: transfer.UserHomeDirectoryMappingArray{ +// &transfer.UserHomeDirectoryMappingArgs{ +// Entry: pulumi.String("/test.pdf"), +// Target: pulumi.String("/bucket3/test-path/tftestuser.pdf"), +// }, +// }, // }) // if err != nil { // return err diff --git a/sdk/nodejs/amp/index.ts b/sdk/nodejs/amp/index.ts new file mode 100644 index 00000000000..e308df374af --- /dev/null +++ b/sdk/nodejs/amp/index.ts @@ -0,0 +1,24 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +// Export members: +export * from "./workspace"; + +// Import resources to register: +import { Workspace } from "./workspace"; + +const _module = { + version: utilities.getVersion(), + construct: (name: string, type: string, urn: string): pulumi.Resource => { + switch (type) { + case "aws:amp/workspace:Workspace": + return new Workspace(name, undefined, { urn }) + default: + throw new Error(`unknown resource type ${type}`); + } + }, +}; +pulumi.runtime.registerResourceModule("aws", "amp/workspace", _module) diff --git a/sdk/nodejs/amp/workspace.ts b/sdk/nodejs/amp/workspace.ts new file mode 100644 index 00000000000..90ed5b7ae3a --- /dev/null +++ b/sdk/nodejs/amp/workspace.ts @@ -0,0 +1,115 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * AMP Workspaces can be imported using the identifier, e.g. + * + * ```sh + * $ pulumi import aws:amp/workspace:Workspace demo ws-C6DCB907-F2D7-4D96-957B-66691F865D8B + * ``` + */ +export class Workspace extends pulumi.CustomResource { + /** + * Get an existing Workspace resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: WorkspaceState, opts?: pulumi.CustomResourceOptions): Workspace { + return new Workspace(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:amp/workspace:Workspace'; + + /** + * Returns true if the given object is an instance of Workspace. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Workspace { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Workspace.__pulumiType; + } + + /** + * The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + */ + public readonly alias!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the workspace. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Prometheus endpoint available for this workspace. + */ + public /*out*/ readonly prometheusEndpoint!: pulumi.Output; + + /** + * Create a Workspace resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: WorkspaceArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: WorkspaceArgs | WorkspaceState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as WorkspaceState | undefined; + inputs["alias"] = state ? state.alias : undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["prometheusEndpoint"] = state ? state.prometheusEndpoint : undefined; + } else { + const args = argsOrState as WorkspaceArgs | undefined; + inputs["alias"] = args ? args.alias : undefined; + inputs["arn"] = undefined /*out*/; + inputs["prometheusEndpoint"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(Workspace.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Workspace resources. + */ +export interface WorkspaceState { + /** + * The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + */ + readonly alias?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the workspace. + */ + readonly arn?: pulumi.Input; + /** + * Prometheus endpoint available for this workspace. + */ + readonly prometheusEndpoint?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Workspace resource. + */ +export interface WorkspaceArgs { + /** + * The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + */ + readonly alias?: pulumi.Input; +} diff --git a/sdk/nodejs/apigatewayv2/api.ts b/sdk/nodejs/apigatewayv2/api.ts index f3024d358fb..10e0c0b7fa8 100644 --- a/sdk/nodejs/apigatewayv2/api.ts +++ b/sdk/nodejs/apigatewayv2/api.ts @@ -70,7 +70,7 @@ export class Api extends pulumi.CustomResource { } /** - * The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + * The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. */ public /*out*/ readonly apiEndpoint!: pulumi.Output; /** @@ -209,7 +209,7 @@ export class Api extends pulumi.CustomResource { */ export interface ApiState { /** - * The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + * The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. */ readonly apiEndpoint?: pulumi.Input; /** diff --git a/sdk/nodejs/appautoscaling/policy.ts b/sdk/nodejs/appautoscaling/policy.ts index c51b6c6a31b..51987d06d40 100644 --- a/sdk/nodejs/appautoscaling/policy.ts +++ b/sdk/nodejs/appautoscaling/policy.ts @@ -104,6 +104,32 @@ import * as utilities from "../utilities"; * }, * }); * ``` + * ### MSK / Kafka Autoscaling + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const mskTarget = new aws.appautoscaling.Target("mskTarget", { + * serviceNamespace: "kafka", + * scalableDimension: "kafka:broker-storage:VolumeSize", + * resourceId: aws_msk_cluster.example.arn, + * minCapacity: 1, + * maxCapacity: 8, + * }); + * const targets = new aws.appautoscaling.Policy("targets", { + * serviceNamespace: mskTarget.serviceNamespace, + * scalableDimension: mskTarget.scalableDimension, + * resourceId: mskTarget.resourceId, + * policyType: "TargetTrackingScaling", + * targetTrackingScalingPolicyConfiguration: { + * predefinedMetricSpecification: { + * predefinedMetricType: "KafkaBrokerStorageUtilization", + * }, + * targetValue: 55, + * }, + * }); + * ``` * * ## Import * diff --git a/sdk/nodejs/appautoscaling/target.ts b/sdk/nodejs/appautoscaling/target.ts index 505bacfd8df..bc15d48c4b7 100644 --- a/sdk/nodejs/appautoscaling/target.ts +++ b/sdk/nodejs/appautoscaling/target.ts @@ -66,6 +66,20 @@ import * as utilities from "../utilities"; * serviceNamespace: "rds", * }); * ``` + * ### MSK / Kafka Autoscaling + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const mskTarget = new aws.appautoscaling.Target("msk_target", { + * maxCapacity: 8, + * minCapacity: 1, + * resourceId: aws_msk_cluster_example.arn, + * scalableDimension: "kafka:broker-storage:VolumeSize", + * serviceNamespace: "kafka", + * }); + * ``` * * ## Import * diff --git a/sdk/nodejs/codeartifact/domain.ts b/sdk/nodejs/codeartifact/domain.ts index 4a34f4cc9b6..8801303d4c3 100644 --- a/sdk/nodejs/codeartifact/domain.ts +++ b/sdk/nodejs/codeartifact/domain.ts @@ -13,10 +13,8 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * - * const exampleKey = new aws.kms.Key("exampleKey", {description: "domain key"}); - * const exampleDomain = new aws.codeartifact.Domain("exampleDomain", { + * const example = new aws.codeartifact.Domain("example", { * domain: "example", - * encryptionKey: exampleKey.arn, * }); * ``` * @@ -73,7 +71,7 @@ export class Domain extends pulumi.CustomResource { */ public readonly domain!: pulumi.Output; /** - * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. */ public readonly encryptionKey!: pulumi.Output; /** @@ -114,9 +112,6 @@ export class Domain extends pulumi.CustomResource { if ((!args || args.domain === undefined) && !(opts && opts.urn)) { throw new Error("Missing required property 'domain'"); } - if ((!args || args.encryptionKey === undefined) && !(opts && opts.urn)) { - throw new Error("Missing required property 'encryptionKey'"); - } inputs["domain"] = args ? args.domain : undefined; inputs["encryptionKey"] = args ? args.encryptionKey : undefined; inputs["tags"] = args ? args.tags : undefined; @@ -158,7 +153,7 @@ export interface DomainState { */ readonly domain?: pulumi.Input; /** - * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. */ readonly encryptionKey?: pulumi.Input; /** @@ -184,9 +179,9 @@ export interface DomainArgs { */ readonly domain: pulumi.Input; /** - * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + * The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. */ - readonly encryptionKey: pulumi.Input; + readonly encryptionKey?: pulumi.Input; /** * Key-value map of resource tags. */ diff --git a/sdk/nodejs/ebs/volume.ts b/sdk/nodejs/ebs/volume.ts index 37540112642..607a034876f 100644 --- a/sdk/nodejs/ebs/volume.ts +++ b/sdk/nodejs/ebs/volume.ts @@ -22,7 +22,7 @@ import * as utilities from "../utilities"; * }); * ``` * - * > **NOTE**: One of `size` or `snapshotId` is required when specifying an EBS volume + * > **NOTE**: At least one of `size` or `snapshotId` is required when specifying an EBS volume * * ## Import * diff --git a/sdk/nodejs/ec2/getVpcPeeringConnection.ts b/sdk/nodejs/ec2/getVpcPeeringConnection.ts index 336104dff00..e8c0676e400 100644 --- a/sdk/nodejs/ec2/getVpcPeeringConnection.ts +++ b/sdk/nodejs/ec2/getVpcPeeringConnection.ts @@ -59,7 +59,7 @@ export function getVpcPeeringConnection(args?: GetVpcPeeringConnectionArgs, opts */ export interface GetVpcPeeringConnectionArgs { /** - * The CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + * The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. */ readonly cidrBlock?: string; /** @@ -75,7 +75,7 @@ export interface GetVpcPeeringConnectionArgs { */ readonly ownerId?: string; /** - * The CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. + * The primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. */ readonly peerCidrBlock?: string; /** @@ -118,11 +118,22 @@ export interface GetVpcPeeringConnectionResult { * (https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) options set for the accepter VPC. */ readonly accepter: {[key: string]: boolean}; + /** + * A CIDR block associated to the VPC of the specific VPC Peering Connection. + */ readonly cidrBlock: string; + /** + * List of objects with CIDR blocks of the requester VPC. + */ + readonly cidrBlockSets: outputs.ec2.GetVpcPeeringConnectionCidrBlockSet[]; readonly filters?: outputs.ec2.GetVpcPeeringConnectionFilter[]; readonly id: string; readonly ownerId: string; readonly peerCidrBlock: string; + /** + * List of objects with CIDR blocks of the accepter VPC. + */ + readonly peerCidrBlockSets: outputs.ec2.GetVpcPeeringConnectionPeerCidrBlockSet[]; readonly peerOwnerId: string; readonly peerRegion: string; readonly peerVpcId: string; diff --git a/sdk/nodejs/elasticache/getReplicationGroup.ts b/sdk/nodejs/elasticache/getReplicationGroup.ts index 4b11f1dbdfd..4b6cb1c4a4d 100644 --- a/sdk/nodejs/elasticache/getReplicationGroup.ts +++ b/sdk/nodejs/elasticache/getReplicationGroup.ts @@ -51,7 +51,7 @@ export interface GetReplicationGroupResult { */ readonly arn: string; /** - * A flag that enables using an AuthToken (password) when issuing Redis commands. + * Specifies whether an AuthToken (password) is enabled. */ readonly authTokenEnabled: boolean; /** @@ -70,6 +70,10 @@ export interface GetReplicationGroupResult { * The identifiers of all the nodes that are part of this replication group. */ readonly memberClusters: string[]; + /** + * Specifies whether Multi-AZ Support is enabled for the replication group. + */ + readonly multiAzEnabled: boolean; /** * The cluster node type. */ diff --git a/sdk/nodejs/elasticache/replicationGroup.ts b/sdk/nodejs/elasticache/replicationGroup.ts index b70cd2bf00a..a2a4ab8a517 100644 --- a/sdk/nodejs/elasticache/replicationGroup.ts +++ b/sdk/nodejs/elasticache/replicationGroup.ts @@ -180,7 +180,7 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public /*out*/ readonly configurationEndpointAddress!: pulumi.Output; /** - * The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + * The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. */ public readonly engine!: pulumi.Output; /** @@ -205,6 +205,10 @@ export class ReplicationGroup extends pulumi.CustomResource { * The identifiers of all the nodes that are part of this replication group. */ public /*out*/ readonly memberClusters!: pulumi.Output; + /** + * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + */ + public readonly multiAzEnabled!: pulumi.Output; /** * The compute and memory capacity of the nodes in the node group. */ @@ -314,6 +318,7 @@ export class ReplicationGroup extends pulumi.CustomResource { inputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; inputs["maintenanceWindow"] = state ? state.maintenanceWindow : undefined; inputs["memberClusters"] = state ? state.memberClusters : undefined; + inputs["multiAzEnabled"] = state ? state.multiAzEnabled : undefined; inputs["nodeType"] = state ? state.nodeType : undefined; inputs["notificationTopicArn"] = state ? state.notificationTopicArn : undefined; inputs["numberCacheClusters"] = state ? state.numberCacheClusters : undefined; @@ -349,6 +354,7 @@ export class ReplicationGroup extends pulumi.CustomResource { inputs["finalSnapshotIdentifier"] = args ? args.finalSnapshotIdentifier : undefined; inputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; inputs["maintenanceWindow"] = args ? args.maintenanceWindow : undefined; + inputs["multiAzEnabled"] = args ? args.multiAzEnabled : undefined; inputs["nodeType"] = args ? args.nodeType : undefined; inputs["notificationTopicArn"] = args ? args.notificationTopicArn : undefined; inputs["numberCacheClusters"] = args ? args.numberCacheClusters : undefined; @@ -428,7 +434,7 @@ export interface ReplicationGroupState { */ readonly configurationEndpointAddress?: pulumi.Input; /** - * The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + * The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. */ readonly engine?: pulumi.Input; /** @@ -453,6 +459,10 @@ export interface ReplicationGroupState { * The identifiers of all the nodes that are part of this replication group. */ readonly memberClusters?: pulumi.Input[]>; + /** + * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + */ + readonly multiAzEnabled?: pulumi.Input; /** * The compute and memory capacity of the nodes in the node group. */ @@ -568,7 +578,7 @@ export interface ReplicationGroupArgs { */ readonly clusterMode?: pulumi.Input; /** - * The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + * The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. */ readonly engine?: pulumi.Input; /** @@ -589,6 +599,10 @@ export interface ReplicationGroupArgs { * The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` */ readonly maintenanceWindow?: pulumi.Input; + /** + * Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automaticFailoverEnabled` must also be enabled. Defaults to `false`. + */ + readonly multiAzEnabled?: pulumi.Input; /** * The compute and memory capacity of the nodes in the node group. */ diff --git a/sdk/nodejs/imagebuilder/getImage.ts b/sdk/nodejs/imagebuilder/getImage.ts new file mode 100644 index 00000000000..cf39455c38e --- /dev/null +++ b/sdk/nodejs/imagebuilder/getImage.ts @@ -0,0 +1,112 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Provides details about an Image Builder Image. + * + * ## Example Usage + * ### Latest + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = pulumi.output(aws.imagebuilder.getImage({ + * arn: "arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x", + * }, { async: true })); + * ``` + */ +export function getImage(args: GetImageArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("aws:imagebuilder/getImage:getImage", { + "arn": args.arn, + "tags": args.tags, + }, opts); +} + +/** + * A collection of arguments for invoking getImage. + */ +export interface GetImageArgs { + /** + * Amazon Resource Name (ARN) of the image. The suffix can either be specified with wildcards (`x.x.x`) to fetch the latest build version or a full build version (e.g. `2020.11.26/1`) to fetch an exact version. + */ + readonly arn: string; + /** + * Key-value map of resource tags for the image. + */ + readonly tags?: {[key: string]: string}; +} + +/** + * A collection of values returned by getImage. + */ +export interface GetImageResult { + readonly arn: string; + /** + * Build version Amazon Resource Name (ARN) of the image. This will always have the `#.#.#/#` suffix. + */ + readonly buildVersionArn: string; + /** + * Date the image was created. + */ + readonly dateCreated: string; + /** + * Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + */ + readonly distributionConfigurationArn: string; + /** + * Whether additional information about the image being created is collected. + */ + readonly enhancedImageMetadataEnabled: boolean; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + */ + readonly imageRecipeArn: string; + /** + * List of an object with image tests configuration. + */ + readonly imageTestsConfigurations: outputs.imagebuilder.GetImageImageTestsConfiguration[]; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + */ + readonly infrastructureConfigurationArn: string; + /** + * Name of the AMI. + */ + readonly name: string; + /** + * Operating System version of the image. + */ + readonly osVersion: string; + /** + * List of objects with resources created by the image. + */ + readonly outputResources: outputs.imagebuilder.GetImageOutputResource[]; + /** + * Platform of the image. + */ + readonly platform: string; + /** + * Key-value map of resource tags for the image. + */ + readonly tags: {[key: string]: string}; + /** + * Version of the image. + */ + readonly version: string; +} diff --git a/sdk/nodejs/imagebuilder/image.ts b/sdk/nodejs/imagebuilder/image.ts new file mode 100644 index 00000000000..3769e89f558 --- /dev/null +++ b/sdk/nodejs/imagebuilder/image.ts @@ -0,0 +1,257 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Manages an Image Builder Image. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.imagebuilder.Image("example", { + * distributionConfigurationArn: aws_imagebuilder_distribution_configuration.example.arn, + * imageRecipeArn: aws_imagebuilder_image_recipe.example.arn, + * infrastructureConfigurationArn: aws_imagebuilder_infrastructure_configuration.example.arn, + * }); + * ``` + * + * ## Import + * + * `aws_imagebuilder_image` resources can be imported using the Amazon Resource Name (ARN), e.g. + * + * ```sh + * $ pulumi import aws:imagebuilder/image:Image example arn:aws:imagebuilder:us-east-1:123456789012:image/example/1.0.0/1 + * ``` + */ +export class Image extends pulumi.CustomResource { + /** + * Get an existing Image resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ImageState, opts?: pulumi.CustomResourceOptions): Image { + return new Image(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:imagebuilder/image:Image'; + + /** + * Returns true if the given object is an instance of Image. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Image { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Image.__pulumiType; + } + + /** + * Amazon Resource Name (ARN) of the image. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * Date the image was created. + */ + public /*out*/ readonly dateCreated!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + */ + public readonly distributionConfigurationArn!: pulumi.Output; + /** + * Whether additional information about the image being created is collected. Defaults to `true`. + */ + public readonly enhancedImageMetadataEnabled!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + */ + public readonly imageRecipeArn!: pulumi.Output; + /** + * Configuration block with image tests configuration. Detailed below. + */ + public readonly imageTestsConfiguration!: pulumi.Output; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + */ + public readonly infrastructureConfigurationArn!: pulumi.Output; + /** + * Name of the AMI. + */ + public /*out*/ readonly name!: pulumi.Output; + /** + * Operating System version of the image. + */ + public /*out*/ readonly osVersion!: pulumi.Output; + /** + * List of objects with resources created by the image. + */ + public /*out*/ readonly outputResources!: pulumi.Output; + /** + * Platform of the image. + */ + public /*out*/ readonly platform!: pulumi.Output; + /** + * Key-value map of resource tags for the Image Builder Image. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Version of the image. + */ + public /*out*/ readonly version!: pulumi.Output; + + /** + * Create a Image resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ImageArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ImageArgs | ImageState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as ImageState | undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["dateCreated"] = state ? state.dateCreated : undefined; + inputs["distributionConfigurationArn"] = state ? state.distributionConfigurationArn : undefined; + inputs["enhancedImageMetadataEnabled"] = state ? state.enhancedImageMetadataEnabled : undefined; + inputs["imageRecipeArn"] = state ? state.imageRecipeArn : undefined; + inputs["imageTestsConfiguration"] = state ? state.imageTestsConfiguration : undefined; + inputs["infrastructureConfigurationArn"] = state ? state.infrastructureConfigurationArn : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["osVersion"] = state ? state.osVersion : undefined; + inputs["outputResources"] = state ? state.outputResources : undefined; + inputs["platform"] = state ? state.platform : undefined; + inputs["tags"] = state ? state.tags : undefined; + inputs["version"] = state ? state.version : undefined; + } else { + const args = argsOrState as ImageArgs | undefined; + if ((!args || args.imageRecipeArn === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'imageRecipeArn'"); + } + if ((!args || args.infrastructureConfigurationArn === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'infrastructureConfigurationArn'"); + } + inputs["distributionConfigurationArn"] = args ? args.distributionConfigurationArn : undefined; + inputs["enhancedImageMetadataEnabled"] = args ? args.enhancedImageMetadataEnabled : undefined; + inputs["imageRecipeArn"] = args ? args.imageRecipeArn : undefined; + inputs["imageTestsConfiguration"] = args ? args.imageTestsConfiguration : undefined; + inputs["infrastructureConfigurationArn"] = args ? args.infrastructureConfigurationArn : undefined; + inputs["tags"] = args ? args.tags : undefined; + inputs["arn"] = undefined /*out*/; + inputs["dateCreated"] = undefined /*out*/; + inputs["name"] = undefined /*out*/; + inputs["osVersion"] = undefined /*out*/; + inputs["outputResources"] = undefined /*out*/; + inputs["platform"] = undefined /*out*/; + inputs["version"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(Image.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Image resources. + */ +export interface ImageState { + /** + * Amazon Resource Name (ARN) of the image. + */ + readonly arn?: pulumi.Input; + /** + * Date the image was created. + */ + readonly dateCreated?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + */ + readonly distributionConfigurationArn?: pulumi.Input; + /** + * Whether additional information about the image being created is collected. Defaults to `true`. + */ + readonly enhancedImageMetadataEnabled?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + */ + readonly imageRecipeArn?: pulumi.Input; + /** + * Configuration block with image tests configuration. Detailed below. + */ + readonly imageTestsConfiguration?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + */ + readonly infrastructureConfigurationArn?: pulumi.Input; + /** + * Name of the AMI. + */ + readonly name?: pulumi.Input; + /** + * Operating System version of the image. + */ + readonly osVersion?: pulumi.Input; + /** + * List of objects with resources created by the image. + */ + readonly outputResources?: pulumi.Input[]>; + /** + * Platform of the image. + */ + readonly platform?: pulumi.Input; + /** + * Key-value map of resource tags for the Image Builder Image. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Version of the image. + */ + readonly version?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Image resource. + */ +export interface ImageArgs { + /** + * Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + */ + readonly distributionConfigurationArn?: pulumi.Input; + /** + * Whether additional information about the image being created is collected. Defaults to `true`. + */ + readonly enhancedImageMetadataEnabled?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + */ + readonly imageRecipeArn: pulumi.Input; + /** + * Configuration block with image tests configuration. Detailed below. + */ + readonly imageTestsConfiguration?: pulumi.Input; + /** + * Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + */ + readonly infrastructureConfigurationArn: pulumi.Input; + /** + * Key-value map of resource tags for the Image Builder Image. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/imagebuilder/index.ts b/sdk/nodejs/imagebuilder/index.ts index ddb8276f274..1caf92d2467 100644 --- a/sdk/nodejs/imagebuilder/index.ts +++ b/sdk/nodejs/imagebuilder/index.ts @@ -9,9 +9,11 @@ export * from "./component"; export * from "./distributionConfiguration"; export * from "./getComponent"; export * from "./getDistributionConfiguration"; +export * from "./getImage"; export * from "./getImagePipeline"; export * from "./getImageRecipe"; export * from "./getInfrastructureConfiguration"; +export * from "./image"; export * from "./imagePipeline"; export * from "./imageRecipe"; export * from "./infrastructureConfiguration"; @@ -19,6 +21,7 @@ export * from "./infrastructureConfiguration"; // Import resources to register: import { Component } from "./component"; import { DistributionConfiguration } from "./distributionConfiguration"; +import { Image } from "./image"; import { ImagePipeline } from "./imagePipeline"; import { ImageRecipe } from "./imageRecipe"; import { InfrastructureConfiguration } from "./infrastructureConfiguration"; @@ -31,6 +34,8 @@ const _module = { return new Component(name, undefined, { urn }) case "aws:imagebuilder/distributionConfiguration:DistributionConfiguration": return new DistributionConfiguration(name, undefined, { urn }) + case "aws:imagebuilder/image:Image": + return new Image(name, undefined, { urn }) case "aws:imagebuilder/imagePipeline:ImagePipeline": return new ImagePipeline(name, undefined, { urn }) case "aws:imagebuilder/imageRecipe:ImageRecipe": @@ -44,6 +49,7 @@ const _module = { }; pulumi.runtime.registerResourceModule("aws", "imagebuilder/component", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/distributionConfiguration", _module) +pulumi.runtime.registerResourceModule("aws", "imagebuilder/image", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/imagePipeline", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/imageRecipe", _module) pulumi.runtime.registerResourceModule("aws", "imagebuilder/infrastructureConfiguration", _module) diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 24a5a49f90a..5129041c606 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -35,6 +35,7 @@ import * as accessanalyzer from "./accessanalyzer"; import * as acm from "./acm"; import * as acmpca from "./acmpca"; import * as alb from "./alb"; +import * as amp from "./amp"; import * as apigateway from "./apigateway"; import * as apigatewayv2 from "./apigatewayv2"; import * as appautoscaling from "./appautoscaling"; @@ -167,6 +168,7 @@ export { acm, acmpca, alb, + amp, apigateway, apigatewayv2, appautoscaling, diff --git a/sdk/nodejs/networkfirewall/ruleGroup.ts b/sdk/nodejs/networkfirewall/ruleGroup.ts index 30a3c109d9c..8bbd7620e51 100644 --- a/sdk/nodejs/networkfirewall/ruleGroup.ts +++ b/sdk/nodejs/networkfirewall/ruleGroup.ts @@ -9,7 +9,7 @@ import * as utilities from "../utilities"; * Provides an AWS Network Firewall Rule Group Resource * * ## Example Usage - * ### Stateful Inspection + * ### Stateful Inspection for denying access to a domain * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -33,7 +33,47 @@ import * as utilities from "../utilities"; * type: "STATEFUL", * }); * ``` - * ### Stateful Inspection compatible with intrusion detection systems like Snort or Suricata + * ### Stateful Inspection for permitting packets from a source IP address + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const ips = [ + * "1.1.1.1/32", + * "1.0.0.1/32", + * ]; + * const example = new aws.networkfirewall.RuleGroup("example", { + * capacity: 50, + * description: "Permits http traffic from source", + * type: "STATEFUL", + * ruleGroup: { + * rulesSource: { + * dynamic: [{ + * forEach: ips, + * content: [{ + * action: "PASS", + * header: [{ + * destination: "ANY", + * destinationPort: "ANY", + * protocol: "HTTP", + * direction: "ANY", + * sourcePort: "ANY", + * source: stateful_rule.value, + * }], + * ruleOption: [{ + * keyword: "sid:1", + * }], + * }], + * }], + * }, + * }, + * tags: { + * Name: "permit HTTP from source", + * }, + * }); + * ``` + * ### Stateful Inspection for blocking packets from going to an intended destination * * ```typescript * import * as pulumi from "@pulumi/pulumi"; diff --git a/sdk/nodejs/sagemaker/appImageConfig.ts b/sdk/nodejs/sagemaker/appImageConfig.ts new file mode 100644 index 00000000000..7584e4f92a0 --- /dev/null +++ b/sdk/nodejs/sagemaker/appImageConfig.ts @@ -0,0 +1,158 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Provides a Sagemaker App Image Config resource. + * + * ## Example Usage + * ### Basic usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.sagemaker.AppImageConfig("test", { + * appImageConfigName: "example", + * kernelGatewayImageConfig: { + * kernelSpec: { + * name: "example", + * }, + * }, + * }); + * ``` + * ### Default File System Config + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.sagemaker.AppImageConfig("test", { + * appImageConfigName: "example", + * kernelGatewayImageConfig: { + * fileSystemConfig: {}, + * kernelSpec: { + * name: "example", + * }, + * }, + * }); + * ``` + * + * ## Import + * + * Sagemaker App Image Configs can be imported using the `name`, e.g. + * + * ```sh + * $ pulumi import aws:sagemaker/appImageConfig:AppImageConfig example example + * ``` + */ +export class AppImageConfig extends pulumi.CustomResource { + /** + * Get an existing AppImageConfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AppImageConfigState, opts?: pulumi.CustomResourceOptions): AppImageConfig { + return new AppImageConfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:sagemaker/appImageConfig:AppImageConfig'; + + /** + * Returns true if the given object is an instance of AppImageConfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AppImageConfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AppImageConfig.__pulumiType; + } + + /** + * The name of the App Image Config. + */ + public readonly appImageConfigName!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + */ + public readonly kernelGatewayImageConfig!: pulumi.Output; + + /** + * Create a AppImageConfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AppImageConfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AppImageConfigArgs | AppImageConfigState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as AppImageConfigState | undefined; + inputs["appImageConfigName"] = state ? state.appImageConfigName : undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["kernelGatewayImageConfig"] = state ? state.kernelGatewayImageConfig : undefined; + } else { + const args = argsOrState as AppImageConfigArgs | undefined; + if ((!args || args.appImageConfigName === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'appImageConfigName'"); + } + inputs["appImageConfigName"] = args ? args.appImageConfigName : undefined; + inputs["kernelGatewayImageConfig"] = args ? args.kernelGatewayImageConfig : undefined; + inputs["arn"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(AppImageConfig.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AppImageConfig resources. + */ +export interface AppImageConfigState { + /** + * The name of the App Image Config. + */ + readonly appImageConfigName?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + */ + readonly arn?: pulumi.Input; + /** + * The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + */ + readonly kernelGatewayImageConfig?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AppImageConfig resource. + */ +export interface AppImageConfigArgs { + /** + * The name of the App Image Config. + */ + readonly appImageConfigName: pulumi.Input; + /** + * The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + */ + readonly kernelGatewayImageConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/sagemaker/codeRepository.ts b/sdk/nodejs/sagemaker/codeRepository.ts index fb6edf8d0a8..998c4c57d3b 100644 --- a/sdk/nodejs/sagemaker/codeRepository.ts +++ b/sdk/nodejs/sagemaker/codeRepository.ts @@ -5,6 +5,56 @@ import * as pulumi from "@pulumi/pulumi"; import { input as inputs, output as outputs, enums } from "../types"; import * as utilities from "../utilities"; +/** + * Provides a Sagemaker Code Repository resource. + * + * ## Example Usage + * ### Basic usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.sagemaker.CodeRepository("example", { + * codeRepositoryName: "example", + * gitConfig: { + * repositoryUrl: "https://github.com/hashicorp/terraform-provider-aws.git", + * }, + * }); + * ``` + * ### Example with Secret + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const exampleSecret = new aws.secretsmanager.Secret("exampleSecret", {}); + * const exampleSecretVersion = new aws.secretsmanager.SecretVersion("exampleSecretVersion", { + * secretId: exampleSecret.id, + * secretString: JSON.stringify({ + * username: "example", + * password: "example", + * }), + * }); + * const exampleCodeRepository = new aws.sagemaker.CodeRepository("exampleCodeRepository", { + * codeRepositoryName: "example", + * gitConfig: { + * repositoryUrl: "https://github.com/hashicorp/terraform-provider-aws.git", + * secretArn: exampleSecret.arn, + * }, + * }, { + * dependsOn: [exampleSecretVersion], + * }); + * ``` + * + * ## Import + * + * Sagemaker Code Repositories can be imported using the `name`, e.g. + * + * ```sh + * $ pulumi import aws:sagemaker/codeRepository:CodeRepository test_code_repository my-code-repo + * ``` + */ export class CodeRepository extends pulumi.CustomResource { /** * Get an existing CodeRepository resource's state with the given name, ID, and optional extra @@ -33,8 +83,17 @@ export class CodeRepository extends pulumi.CustomResource { return obj['__pulumiType'] === CodeRepository.__pulumiType; } + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + */ public /*out*/ readonly arn!: pulumi.Output; + /** + * The name of the Code Repository (must be unique). + */ public readonly codeRepositoryName!: pulumi.Output; + /** + * Specifies details about the repository. see Git Config details below. + */ public readonly gitConfig!: pulumi.Output; /** @@ -79,8 +138,17 @@ export class CodeRepository extends pulumi.CustomResource { * Input properties used for looking up and filtering CodeRepository resources. */ export interface CodeRepositoryState { + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + */ readonly arn?: pulumi.Input; + /** + * The name of the Code Repository (must be unique). + */ readonly codeRepositoryName?: pulumi.Input; + /** + * Specifies details about the repository. see Git Config details below. + */ readonly gitConfig?: pulumi.Input; } @@ -88,6 +156,12 @@ export interface CodeRepositoryState { * The set of arguments for constructing a CodeRepository resource. */ export interface CodeRepositoryArgs { + /** + * The name of the Code Repository (must be unique). + */ readonly codeRepositoryName: pulumi.Input; + /** + * Specifies details about the repository. see Git Config details below. + */ readonly gitConfig: pulumi.Input; } diff --git a/sdk/nodejs/sagemaker/index.ts b/sdk/nodejs/sagemaker/index.ts index 3a278ac2e26..21ee9dc7325 100644 --- a/sdk/nodejs/sagemaker/index.ts +++ b/sdk/nodejs/sagemaker/index.ts @@ -5,6 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export * from "./appImageConfig"; export * from "./codeRepository"; export * from "./domain"; export * from "./endpoint"; @@ -19,6 +20,7 @@ export * from "./notebookInstanceLifecycleConfiguration"; export * from "./userProfile"; // Import resources to register: +import { AppImageConfig } from "./appImageConfig"; import { CodeRepository } from "./codeRepository"; import { Domain } from "./domain"; import { Endpoint } from "./endpoint"; @@ -35,6 +37,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:sagemaker/appImageConfig:AppImageConfig": + return new AppImageConfig(name, undefined, { urn }) case "aws:sagemaker/codeRepository:CodeRepository": return new CodeRepository(name, undefined, { urn }) case "aws:sagemaker/domain:Domain": @@ -62,6 +66,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "sagemaker/appImageConfig", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/codeRepository", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/domain", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/endpoint", _module) diff --git a/sdk/nodejs/transfer/user.ts b/sdk/nodejs/transfer/user.ts index 09ba5e2edae..367d645cfc0 100644 --- a/sdk/nodejs/transfer/user.ts +++ b/sdk/nodejs/transfer/user.ts @@ -52,6 +52,11 @@ import * as utilities from "../utilities"; * serverId: fooServer.id, * userName: "tftestuser", * role: fooRole.arn, + * homeDirectoryType: "LOGICAL", + * homeDirectoryMappings: [{ + * entry: "/test.pdf", + * target: "/bucket3/test-path/tftestuser.pdf", + * }], * }); * ``` * diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 6cb913af18a..e5d6d40aea1 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -34,6 +34,8 @@ "alb/loadBalancerType.ts", "alb/targetGroup.ts", "alb/targetGroupAttachment.ts", + "amp/index.ts", + "amp/workspace.ts", "apigateway/account.ts", "apigateway/apiKey.ts", "apigateway/authorizer.ts", @@ -650,9 +652,11 @@ "imagebuilder/distributionConfiguration.ts", "imagebuilder/getComponent.ts", "imagebuilder/getDistributionConfiguration.ts", + "imagebuilder/getImage.ts", "imagebuilder/getImagePipeline.ts", "imagebuilder/getImageRecipe.ts", "imagebuilder/getInfrastructureConfiguration.ts", + "imagebuilder/image.ts", "imagebuilder/imagePipeline.ts", "imagebuilder/imageRecipe.ts", "imagebuilder/index.ts", @@ -929,6 +933,7 @@ "s3control/index.ts", "s3outposts/endpoint.ts", "s3outposts/index.ts", + "sagemaker/appImageConfig.ts", "sagemaker/codeRepository.ts", "sagemaker/domain.ts", "sagemaker/endpoint.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index d3036a3caf8..f32e218c9c1 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -149,6 +149,7 @@ export interface ProviderEndpoint { elastictranscoder?: pulumi.Input; elb?: pulumi.Input; emr?: pulumi.Input; + emrcontainers?: pulumi.Input; es?: pulumi.Input; firehose?: pulumi.Input; fms?: pulumi.Input; @@ -8071,7 +8072,7 @@ export namespace ec2 { */ snapshotId?: pulumi.Input; /** - * The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + * The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. */ throughput?: pulumi.Input; /** @@ -9654,7 +9655,7 @@ export namespace elasticache { */ numNodeGroups: pulumi.Input; /** - * Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + * Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. */ replicasPerNodeGroup: pulumi.Input; } @@ -12609,6 +12610,47 @@ export namespace imagebuilder { userIds?: pulumi.Input[]>; } + export interface ImageImageTestsConfiguration { + /** + * Whether image tests are enabled. Defaults to `true`. + */ + imageTestsEnabled?: pulumi.Input; + /** + * Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + */ + timeoutMinutes?: pulumi.Input; + } + + export interface ImageOutputResource { + /** + * Set of objects with each Amazon Machine Image (AMI) created. + */ + amis?: pulumi.Input[]>; + } + + export interface ImageOutputResourceAmi { + /** + * Account identifier of the AMI. + */ + accountId?: pulumi.Input; + /** + * Description of the AMI. + */ + description?: pulumi.Input; + /** + * Identifier of the AMI. + */ + image?: pulumi.Input; + /** + * Name of the AMI. + */ + name?: pulumi.Input; + /** + * Region of the AMI. + */ + region?: pulumi.Input; + } + export interface ImagePipelineImageTestsConfiguration { /** * Whether image tests are enabled. Defaults to `true`. @@ -18650,9 +18692,55 @@ export namespace s3outposts { } export namespace sagemaker { + export interface AppImageConfigKernelGatewayImageConfig { + /** + * The URL where the Git repository is located. See File System Config details below. + */ + fileSystemConfig?: pulumi.Input; + /** + * The default branch for the Git repository. See Kernel Spec details below. + */ + kernelSpec: pulumi.Input; + } + + export interface AppImageConfigKernelGatewayImageConfigFileSystemConfig { + /** + * The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + */ + defaultGid?: pulumi.Input; + /** + * The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + */ + defaultUid?: pulumi.Input; + /** + * The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + */ + mountPath?: pulumi.Input; + } + + export interface AppImageConfigKernelGatewayImageConfigKernelSpec { + /** + * The display name of the kernel. + */ + displayName?: pulumi.Input; + /** + * The name of the kernel. + */ + name: pulumi.Input; + } + export interface CodeRepositoryGitConfig { + /** + * The default branch for the Git repository. + */ branch?: pulumi.Input; + /** + * The URL where the Git repository is located. + */ repositoryUrl: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + */ secretArn?: pulumi.Input; } @@ -19181,7 +19269,7 @@ export namespace ses { */ dimensionName: pulumi.Input; /** - * The source for the value. It can be either `"messageTag"` or `"emailHeader"` + * The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. */ valueSource: pulumi.Input; } @@ -19617,7 +19705,7 @@ export namespace ssm { */ enableNonSecurity?: pulumi.Input; /** - * The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + * The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operatingSystem` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. */ patchFilters: pulumi.Input[]>; } diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 1578b9f3d55..7305ef4513e 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -161,6 +161,7 @@ export interface ProviderEndpoint { elastictranscoder?: string; elb?: string; emr?: string; + emrcontainers?: string; es?: string; firehose?: string; fms?: string; @@ -401,6 +402,7 @@ export namespace alb { authenticateCognitos: outputs.alb.GetListenerDefaultActionAuthenticateCognito[]; authenticateOidcs: outputs.alb.GetListenerDefaultActionAuthenticateOidc[]; fixedResponses: outputs.alb.GetListenerDefaultActionFixedResponse[]; + forwards: outputs.alb.GetListenerDefaultActionForward[]; order: number; redirects: outputs.alb.GetListenerDefaultActionRedirect[]; targetGroupArn: string; @@ -438,6 +440,24 @@ export namespace alb { statusCode: string; } + export interface GetListenerDefaultActionForward { + stickinesses: outputs.alb.GetListenerDefaultActionForwardStickiness[]; + targetGroups: outputs.alb.GetListenerDefaultActionForwardTargetGroup[]; + } + + export interface GetListenerDefaultActionForwardStickiness { + duration: number; + enabled: boolean; + } + + export interface GetListenerDefaultActionForwardTargetGroup { + /** + * The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + */ + arn: string; + weight: number; + } + export interface GetListenerDefaultActionRedirect { host: string; path: string; @@ -1481,6 +1501,7 @@ export namespace applicationloadbalancing { authenticateCognitos: outputs.applicationloadbalancing.GetListenerDefaultActionAuthenticateCognito[]; authenticateOidcs: outputs.applicationloadbalancing.GetListenerDefaultActionAuthenticateOidc[]; fixedResponses: outputs.applicationloadbalancing.GetListenerDefaultActionFixedResponse[]; + forwards: outputs.applicationloadbalancing.GetListenerDefaultActionForward[]; order: number; redirects: outputs.applicationloadbalancing.GetListenerDefaultActionRedirect[]; targetGroupArn: string; @@ -1518,6 +1539,24 @@ export namespace applicationloadbalancing { statusCode: string; } + export interface GetListenerDefaultActionForward { + stickinesses: outputs.applicationloadbalancing.GetListenerDefaultActionForwardStickiness[]; + targetGroups: outputs.applicationloadbalancing.GetListenerDefaultActionForwardTargetGroup[]; + } + + export interface GetListenerDefaultActionForwardStickiness { + duration: number; + enabled: boolean; + } + + export interface GetListenerDefaultActionForwardTargetGroup { + /** + * The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + */ + arn: string; + weight: number; + } + export interface GetListenerDefaultActionRedirect { host: string; path: string; @@ -6718,6 +6757,7 @@ export namespace config { elastictranscoder?: string; elb?: string; emr?: string; + emrcontainers?: string; es?: string; firehose?: string; fms?: string; @@ -8721,6 +8761,13 @@ export namespace ec2 { values: string[]; } + export interface GetVpcPeeringConnectionCidrBlockSet { + /** + * The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + */ + cidrBlock: string; + } + export interface GetVpcPeeringConnectionFilter { /** * The name of the field to filter by, as defined by @@ -8734,6 +8781,13 @@ export namespace ec2 { values: string[]; } + export interface GetVpcPeeringConnectionPeerCidrBlockSet { + /** + * The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + */ + cidrBlock: string; + } + export interface GetVpcPeeringConnectionsFilter { /** * The name of the field to filter by, as defined by @@ -9008,7 +9062,7 @@ export namespace ec2 { */ snapshotId?: string; /** - * The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + * The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. */ throughput: number; /** @@ -10732,7 +10786,7 @@ export namespace elasticache { */ numNodeGroups: number; /** - * Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + * Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. */ replicasPerNodeGroup: number; } @@ -10927,6 +10981,7 @@ export namespace elasticloadbalancingv2 { authenticateCognitos: outputs.elasticloadbalancingv2.GetListenerDefaultActionAuthenticateCognito[]; authenticateOidcs: outputs.elasticloadbalancingv2.GetListenerDefaultActionAuthenticateOidc[]; fixedResponses: outputs.elasticloadbalancingv2.GetListenerDefaultActionFixedResponse[]; + forwards: outputs.elasticloadbalancingv2.GetListenerDefaultActionForward[]; order: number; redirects: outputs.elasticloadbalancingv2.GetListenerDefaultActionRedirect[]; targetGroupArn: string; @@ -10964,6 +11019,24 @@ export namespace elasticloadbalancingv2 { statusCode: string; } + export interface GetListenerDefaultActionForward { + stickinesses: outputs.elasticloadbalancingv2.GetListenerDefaultActionForwardStickiness[]; + targetGroups: outputs.elasticloadbalancingv2.GetListenerDefaultActionForwardTargetGroup[]; + } + + export interface GetListenerDefaultActionForwardStickiness { + duration: number; + enabled: boolean; + } + + export interface GetListenerDefaultActionForwardTargetGroup { + /** + * The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + */ + arn: string; + weight: number; + } + export interface GetListenerDefaultActionRedirect { host: string; path: string; @@ -14064,6 +14137,47 @@ export namespace imagebuilder { userIds: string[]; } + export interface GetImageImageTestsConfiguration { + /** + * Whether image tests are enabled. + */ + imageTestsEnabled: boolean; + /** + * Number of minutes before image tests time out. + */ + timeoutMinutes: number; + } + + export interface GetImageOutputResource { + /** + * Set of objects with each Amazon Machine Image (AMI) created. + */ + amis: outputs.imagebuilder.GetImageOutputResourceAmi[]; + } + + export interface GetImageOutputResourceAmi { + /** + * Account identifier of the AMI. + */ + accountId: string; + /** + * Description of the AMI. + */ + description: string; + /** + * Identifier of the AMI. + */ + image: string; + /** + * Name of the AMI. + */ + name: string; + /** + * Region of the AMI. + */ + region: string; + } + export interface GetImagePipelineImageTestsConfiguration { /** * Whether image tests are enabled. @@ -14161,6 +14275,47 @@ export namespace imagebuilder { s3KeyPrefix: string; } + export interface ImageImageTestsConfiguration { + /** + * Whether image tests are enabled. Defaults to `true`. + */ + imageTestsEnabled?: boolean; + /** + * Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + */ + timeoutMinutes?: number; + } + + export interface ImageOutputResource { + /** + * Set of objects with each Amazon Machine Image (AMI) created. + */ + amis: outputs.imagebuilder.ImageOutputResourceAmi[]; + } + + export interface ImageOutputResourceAmi { + /** + * Account identifier of the AMI. + */ + accountId: string; + /** + * Description of the AMI. + */ + description: string; + /** + * Identifier of the AMI. + */ + image: string; + /** + * Name of the AMI. + */ + name: string; + /** + * Region of the AMI. + */ + region: string; + } + export interface ImagePipelineImageTestsConfiguration { /** * Whether image tests are enabled. Defaults to `true`. @@ -16936,6 +17091,7 @@ export namespace lb { authenticateCognitos: outputs.lb.GetListenerDefaultActionAuthenticateCognito[]; authenticateOidcs: outputs.lb.GetListenerDefaultActionAuthenticateOidc[]; fixedResponses: outputs.lb.GetListenerDefaultActionFixedResponse[]; + forwards: outputs.lb.GetListenerDefaultActionForward[]; order: number; redirects: outputs.lb.GetListenerDefaultActionRedirect[]; targetGroupArn: string; @@ -16973,6 +17129,24 @@ export namespace lb { statusCode: string; } + export interface GetListenerDefaultActionForward { + stickinesses: outputs.lb.GetListenerDefaultActionForwardStickiness[]; + targetGroups: outputs.lb.GetListenerDefaultActionForwardTargetGroup[]; + } + + export interface GetListenerDefaultActionForwardStickiness { + duration: number; + enabled: boolean; + } + + export interface GetListenerDefaultActionForwardTargetGroup { + /** + * The arn of the listener. Required if `loadBalancerArn` and `port` is not set. + */ + arn: string; + weight: number; + } + export interface GetListenerDefaultActionRedirect { host: string; path: string; @@ -20467,9 +20641,55 @@ export namespace s3outposts { } export namespace sagemaker { + export interface AppImageConfigKernelGatewayImageConfig { + /** + * The URL where the Git repository is located. See File System Config details below. + */ + fileSystemConfig?: outputs.sagemaker.AppImageConfigKernelGatewayImageConfigFileSystemConfig; + /** + * The default branch for the Git repository. See Kernel Spec details below. + */ + kernelSpec: outputs.sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpec; + } + + export interface AppImageConfigKernelGatewayImageConfigFileSystemConfig { + /** + * The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + */ + defaultGid?: number; + /** + * The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + */ + defaultUid?: number; + /** + * The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + */ + mountPath?: string; + } + + export interface AppImageConfigKernelGatewayImageConfigKernelSpec { + /** + * The display name of the kernel. + */ + displayName?: string; + /** + * The name of the kernel. + */ + name: string; + } + export interface CodeRepositoryGitConfig { + /** + * The default branch for the Git repository. + */ branch?: string; + /** + * The URL where the Git repository is located. + */ repositoryUrl: string; + /** + * The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + */ secretArn?: string; } @@ -21006,7 +21226,7 @@ export namespace ses { */ dimensionName: string; /** - * The source for the value. It can be either `"messageTag"` or `"emailHeader"` + * The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. */ valueSource: string; } @@ -21478,7 +21698,7 @@ export namespace ssm { */ enableNonSecurity?: boolean; /** - * The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + * The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operatingSystem` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. */ patchFilters: outputs.ssm.PatchBaselineApprovalRulePatchFilter[]; } diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 532c62c7c63..b4c340c97bd 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -29,6 +29,7 @@ acm, acmpca, alb, + amp, apigateway, apigatewayv2, appautoscaling, diff --git a/sdk/python/pulumi_aws/_inputs.py b/sdk/python/pulumi_aws/_inputs.py index 94fb50db444..f4a3c013268 100644 --- a/sdk/python/pulumi_aws/_inputs.py +++ b/sdk/python/pulumi_aws/_inputs.py @@ -185,6 +185,7 @@ def __init__(__self__, *, elastictranscoder: Optional[pulumi.Input[str]] = None, elb: Optional[pulumi.Input[str]] = None, emr: Optional[pulumi.Input[str]] = None, + emrcontainers: Optional[pulumi.Input[str]] = None, es: Optional[pulumi.Input[str]] = None, firehose: Optional[pulumi.Input[str]] = None, fms: Optional[pulumi.Input[str]] = None, @@ -393,6 +394,8 @@ def __init__(__self__, *, pulumi.set(__self__, "elb", elb) if emr is not None: pulumi.set(__self__, "emr", emr) + if emrcontainers is not None: + pulumi.set(__self__, "emrcontainers", emrcontainers) if es is not None: pulumi.set(__self__, "es", es) if firehose is not None: @@ -1100,6 +1103,15 @@ def emr(self) -> Optional[pulumi.Input[str]]: def emr(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "emr", value) + @property + @pulumi.getter + def emrcontainers(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "emrcontainers") + + @emrcontainers.setter + def emrcontainers(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "emrcontainers", value) + @property @pulumi.getter def es(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_aws/_tables.py b/sdk/python/pulumi_aws/_tables.py index cdf36030246..55f167657de 100644 --- a/sdk/python/pulumi_aws/_tables.py +++ b/sdk/python/pulumi_aws/_tables.py @@ -89,6 +89,7 @@ "api_mapping_key": "apiMappingKey", "api_mapping_selection_expression": "apiMappingSelectionExpression", "api_stages": "apiStages", + "app_image_config_name": "appImageConfigName", "app_name": "appName", "app_network_access_type": "appNetworkAccessType", "app_server": "appServer", @@ -994,6 +995,7 @@ "kafka_versions": "kafkaVersions", "keep_job_flow_alive_when_no_steps": "keepJobFlowAliveWhenNoSteps", "kerberos_attributes": "kerberosAttributes", + "kernel_gateway_image_config": "kernelGatewayImageConfig", "kernel_id": "kernelId", "key_arn": "keyArn", "key_fingerprint": "keyFingerprint", @@ -1190,6 +1192,7 @@ "mount_target_dns_name": "mountTargetDnsName", "multi_attach_enabled": "multiAttachEnabled", "multi_az": "multiAz", + "multi_az_enabled": "multiAzEnabled", "multivalue_answer_routing_policy": "multivalueAnswerRoutingPolicy", "mutual_tls_authentication": "mutualTlsAuthentication", "name_prefix": "namePrefix", @@ -1269,10 +1272,12 @@ "organization_aggregation_source": "organizationAggregationSource", "origin_groups": "originGroups", "original_route_table_id": "originalRouteTableId", + "os_version": "osVersion", "outpost_arn": "outpostArn", "outpost_id": "outpostId", "output_bucket": "outputBucket", "output_location": "outputLocation", + "output_resources": "outputResources", "owner_account": "ownerAccount", "owner_account_id": "ownerAccountId", "owner_alias": "ownerAlias", @@ -1391,6 +1396,7 @@ "profile_name": "profileName", "profile_version": "profileVersion", "project_name": "projectName", + "prometheus_endpoint": "prometheusEndpoint", "promotion_tier": "promotionTier", "promotional_messages_per_second": "promotionalMessagesPerSecond", "propagate_tags": "propagateTags", @@ -2203,6 +2209,7 @@ "apiMappingKey": "api_mapping_key", "apiMappingSelectionExpression": "api_mapping_selection_expression", "apiStages": "api_stages", + "appImageConfigName": "app_image_config_name", "appName": "app_name", "appNetworkAccessType": "app_network_access_type", "appServer": "app_server", @@ -3108,6 +3115,7 @@ "kafkaVersions": "kafka_versions", "keepJobFlowAliveWhenNoSteps": "keep_job_flow_alive_when_no_steps", "kerberosAttributes": "kerberos_attributes", + "kernelGatewayImageConfig": "kernel_gateway_image_config", "kernelId": "kernel_id", "keyArn": "key_arn", "keyFingerprint": "key_fingerprint", @@ -3304,6 +3312,7 @@ "mountTargetDnsName": "mount_target_dns_name", "multiAttachEnabled": "multi_attach_enabled", "multiAz": "multi_az", + "multiAzEnabled": "multi_az_enabled", "multivalueAnswerRoutingPolicy": "multivalue_answer_routing_policy", "mutualTlsAuthentication": "mutual_tls_authentication", "namePrefix": "name_prefix", @@ -3383,10 +3392,12 @@ "organizationAggregationSource": "organization_aggregation_source", "originGroups": "origin_groups", "originalRouteTableId": "original_route_table_id", + "osVersion": "os_version", "outpostArn": "outpost_arn", "outpostId": "outpost_id", "outputBucket": "output_bucket", "outputLocation": "output_location", + "outputResources": "output_resources", "ownerAccount": "owner_account", "ownerAccountId": "owner_account_id", "ownerAlias": "owner_alias", @@ -3505,6 +3516,7 @@ "profileName": "profile_name", "profileVersion": "profile_version", "projectName": "project_name", + "prometheusEndpoint": "prometheus_endpoint", "promotionTier": "promotion_tier", "promotionalMessagesPerSecond": "promotional_messages_per_second", "propagateTags": "propagate_tags", diff --git a/sdk/python/pulumi_aws/alb/outputs.py b/sdk/python/pulumi_aws/alb/outputs.py index 2994116c9f5..3b343222511 100644 --- a/sdk/python/pulumi_aws/alb/outputs.py +++ b/sdk/python/pulumi_aws/alb/outputs.py @@ -42,6 +42,9 @@ 'GetListenerDefaultActionAuthenticateCognitoResult', 'GetListenerDefaultActionAuthenticateOidcResult', 'GetListenerDefaultActionFixedResponseResult', + 'GetListenerDefaultActionForwardResult', + 'GetListenerDefaultActionForwardStickinessResult', + 'GetListenerDefaultActionForwardTargetGroupResult', 'GetListenerDefaultActionRedirectResult', 'GetLoadBalancerAccessLogsResult', 'GetLoadBalancerSubnetMappingResult', @@ -1669,6 +1672,7 @@ def __init__(__self__, *, authenticate_cognitos: Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult'], authenticate_oidcs: Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult'], fixed_responses: Sequence['outputs.GetListenerDefaultActionFixedResponseResult'], + forwards: Sequence['outputs.GetListenerDefaultActionForwardResult'], order: int, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, @@ -1676,6 +1680,7 @@ def __init__(__self__, *, pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) pulumi.set(__self__, "fixed_responses", fixed_responses) + pulumi.set(__self__, "forwards", forwards) pulumi.set(__self__, "order", order) pulumi.set(__self__, "redirects", redirects) pulumi.set(__self__, "target_group_arn", target_group_arn) @@ -1696,6 +1701,11 @@ def authenticate_oidcs(self) -> Sequence['outputs.GetListenerDefaultActionAuthen def fixed_responses(self) -> Sequence['outputs.GetListenerDefaultActionFixedResponseResult']: return pulumi.get(self, "fixed_responses") + @property + @pulumi.getter + def forwards(self) -> Sequence['outputs.GetListenerDefaultActionForwardResult']: + return pulumi.get(self, "forwards") + @property @pulumi.getter def order(self) -> int: @@ -1886,6 +1896,69 @@ def status_code(self) -> str: return pulumi.get(self, "status_code") +@pulumi.output_type +class GetListenerDefaultActionForwardResult(dict): + def __init__(__self__, *, + stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], + target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): + pulumi.set(__self__, "stickinesses", stickinesses) + pulumi.set(__self__, "target_groups", target_groups) + + @property + @pulumi.getter + def stickinesses(self) -> Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']: + return pulumi.get(self, "stickinesses") + + @property + @pulumi.getter(name="targetGroups") + def target_groups(self) -> Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']: + return pulumi.get(self, "target_groups") + + +@pulumi.output_type +class GetListenerDefaultActionForwardStickinessResult(dict): + def __init__(__self__, *, + duration: int, + enabled: bool): + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def duration(self) -> int: + return pulumi.get(self, "duration") + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class GetListenerDefaultActionForwardTargetGroupResult(dict): + def __init__(__self__, *, + arn: str, + weight: int): + """ + :param str arn: The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def weight(self) -> int: + return pulumi.get(self, "weight") + + @pulumi.output_type class GetListenerDefaultActionRedirectResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/amp/__init__.py b/sdk/python/pulumi_aws/amp/__init__.py new file mode 100644 index 00000000000..e4c6162949a --- /dev/null +++ b/sdk/python/pulumi_aws/amp/__init__.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +# Export this package's modules as members: +from .workspace import * + +def _register_module(): + import pulumi + from .. import _utilities + + + class Module(pulumi.runtime.ResourceModule): + _version = _utilities.get_semver_version() + + def version(self): + return Module._version + + def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: + if typ == "aws:amp/workspace:Workspace": + return Workspace(name, pulumi.ResourceOptions(urn=urn)) + else: + raise Exception(f"unknown resource type {typ}") + + + _module_instance = Module() + pulumi.runtime.register_resource_module("aws", "amp/workspace", _module_instance) + +_register_module() diff --git a/sdk/python/pulumi_aws/amp/workspace.py b/sdk/python/pulumi_aws/amp/workspace.py new file mode 100644 index 00000000000..bbae252e491 --- /dev/null +++ b/sdk/python/pulumi_aws/amp/workspace.py @@ -0,0 +1,117 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = ['Workspace'] + + +class Workspace(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + alias: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + ## Import + + AMP Workspaces can be imported using the identifier, e.g. + + ```sh + $ pulumi import aws:amp/workspace:Workspace demo ws-C6DCB907-F2D7-4D96-957B-66691F865D8B + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] alias: The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['alias'] = alias + __props__['arn'] = None + __props__['prometheus_endpoint'] = None + super(Workspace, __self__).__init__( + 'aws:amp/workspace:Workspace', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + alias: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + prometheus_endpoint: Optional[pulumi.Input[str]] = None) -> 'Workspace': + """ + Get an existing Workspace resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] alias: The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the workspace. + :param pulumi.Input[str] prometheus_endpoint: Prometheus endpoint available for this workspace. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["alias"] = alias + __props__["arn"] = arn + __props__["prometheus_endpoint"] = prometheus_endpoint + return Workspace(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def alias(self) -> pulumi.Output[Optional[str]]: + """ + The alias of the prometheus workspace. See more [in AWS Docs](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-onboard-create-workspace.html). + """ + return pulumi.get(self, "alias") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the workspace. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="prometheusEndpoint") + def prometheus_endpoint(self) -> pulumi.Output[str]: + """ + Prometheus endpoint available for this workspace. + """ + return pulumi.get(self, "prometheus_endpoint") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/apigatewayv2/api.py b/sdk/python/pulumi_aws/apigatewayv2/api.py index 3e2d0627252..66dda7fa9b9 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/api.py +++ b/sdk/python/pulumi_aws/apigatewayv2/api.py @@ -157,7 +157,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] api_endpoint: The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + :param pulumi.Input[str] api_endpoint: The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. :param pulumi.Input[str] api_key_selection_expression: An [API key selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-apikey-selection-expressions). Valid values: `$context.authorizer.usageIdentifierKey`, `$request.header.x-api-key`. Defaults to `$request.header.x-api-key`. Applicable for WebSocket APIs. @@ -209,7 +209,7 @@ def get(resource_name: str, @pulumi.getter(name="apiEndpoint") def api_endpoint(self) -> pulumi.Output[str]: """ - The URI of the API, of the form `{api-id}.execute-api.{region}.amazonaws.com`. + The URI of the API, of the form `https://{api-id}.execute-api.{region}.amazonaws.com` for HTTP APIs and `wss://{api-id}.execute-api.{region}.amazonaws.com` for WebSocket APIs. """ return pulumi.get(self, "api_endpoint") diff --git a/sdk/python/pulumi_aws/appautoscaling/policy.py b/sdk/python/pulumi_aws/appautoscaling/policy.py index 42e784b888e..79f9062bfc9 100644 --- a/sdk/python/pulumi_aws/appautoscaling/policy.py +++ b/sdk/python/pulumi_aws/appautoscaling/policy.py @@ -119,6 +119,30 @@ def __init__(__self__, scale_out_cooldown=300, )) ``` + ### MSK / Kafka Autoscaling + + ```python + import pulumi + import pulumi_aws as aws + + msk_target = aws.appautoscaling.Target("mskTarget", + service_namespace="kafka", + scalable_dimension="kafka:broker-storage:VolumeSize", + resource_id=aws_msk_cluster["example"]["arn"], + min_capacity=1, + max_capacity=8) + targets = aws.appautoscaling.Policy("targets", + service_namespace=msk_target.service_namespace, + scalable_dimension=msk_target.scalable_dimension, + resource_id=msk_target.resource_id, + policy_type="TargetTrackingScaling", + target_tracking_scaling_policy_configuration=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationArgs( + predefined_metric_specification=aws.appautoscaling.PolicyTargetTrackingScalingPolicyConfigurationPredefinedMetricSpecificationArgs( + predefined_metric_type="KafkaBrokerStorageUtilization", + ), + target_value=55, + )) + ``` ## Import diff --git a/sdk/python/pulumi_aws/appautoscaling/target.py b/sdk/python/pulumi_aws/appautoscaling/target.py index a4e35a8859c..cab4911ea70 100644 --- a/sdk/python/pulumi_aws/appautoscaling/target.py +++ b/sdk/python/pulumi_aws/appautoscaling/target.py @@ -82,6 +82,19 @@ def __init__(__self__, scalable_dimension="rds:cluster:ReadReplicaCount", service_namespace="rds") ``` + ### MSK / Kafka Autoscaling + + ```python + import pulumi + import pulumi_aws as aws + + msk_target = aws.appautoscaling.Target("mskTarget", + max_capacity=8, + min_capacity=1, + resource_id=aws_msk_cluster["example"]["arn"], + scalable_dimension="kafka:broker-storage:VolumeSize", + service_namespace="kafka") + ``` ## Import diff --git a/sdk/python/pulumi_aws/applicationloadbalancing/outputs.py b/sdk/python/pulumi_aws/applicationloadbalancing/outputs.py index 2994116c9f5..3b343222511 100644 --- a/sdk/python/pulumi_aws/applicationloadbalancing/outputs.py +++ b/sdk/python/pulumi_aws/applicationloadbalancing/outputs.py @@ -42,6 +42,9 @@ 'GetListenerDefaultActionAuthenticateCognitoResult', 'GetListenerDefaultActionAuthenticateOidcResult', 'GetListenerDefaultActionFixedResponseResult', + 'GetListenerDefaultActionForwardResult', + 'GetListenerDefaultActionForwardStickinessResult', + 'GetListenerDefaultActionForwardTargetGroupResult', 'GetListenerDefaultActionRedirectResult', 'GetLoadBalancerAccessLogsResult', 'GetLoadBalancerSubnetMappingResult', @@ -1669,6 +1672,7 @@ def __init__(__self__, *, authenticate_cognitos: Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult'], authenticate_oidcs: Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult'], fixed_responses: Sequence['outputs.GetListenerDefaultActionFixedResponseResult'], + forwards: Sequence['outputs.GetListenerDefaultActionForwardResult'], order: int, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, @@ -1676,6 +1680,7 @@ def __init__(__self__, *, pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) pulumi.set(__self__, "fixed_responses", fixed_responses) + pulumi.set(__self__, "forwards", forwards) pulumi.set(__self__, "order", order) pulumi.set(__self__, "redirects", redirects) pulumi.set(__self__, "target_group_arn", target_group_arn) @@ -1696,6 +1701,11 @@ def authenticate_oidcs(self) -> Sequence['outputs.GetListenerDefaultActionAuthen def fixed_responses(self) -> Sequence['outputs.GetListenerDefaultActionFixedResponseResult']: return pulumi.get(self, "fixed_responses") + @property + @pulumi.getter + def forwards(self) -> Sequence['outputs.GetListenerDefaultActionForwardResult']: + return pulumi.get(self, "forwards") + @property @pulumi.getter def order(self) -> int: @@ -1886,6 +1896,69 @@ def status_code(self) -> str: return pulumi.get(self, "status_code") +@pulumi.output_type +class GetListenerDefaultActionForwardResult(dict): + def __init__(__self__, *, + stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], + target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): + pulumi.set(__self__, "stickinesses", stickinesses) + pulumi.set(__self__, "target_groups", target_groups) + + @property + @pulumi.getter + def stickinesses(self) -> Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']: + return pulumi.get(self, "stickinesses") + + @property + @pulumi.getter(name="targetGroups") + def target_groups(self) -> Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']: + return pulumi.get(self, "target_groups") + + +@pulumi.output_type +class GetListenerDefaultActionForwardStickinessResult(dict): + def __init__(__self__, *, + duration: int, + enabled: bool): + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def duration(self) -> int: + return pulumi.get(self, "duration") + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class GetListenerDefaultActionForwardTargetGroupResult(dict): + def __init__(__self__, *, + arn: str, + weight: int): + """ + :param str arn: The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def weight(self) -> int: + return pulumi.get(self, "weight") + + @pulumi.output_type class GetListenerDefaultActionRedirectResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/codeartifact/domain.py b/sdk/python/pulumi_aws/codeartifact/domain.py index 166b2e3f88b..1cc5a23ab07 100644 --- a/sdk/python/pulumi_aws/codeartifact/domain.py +++ b/sdk/python/pulumi_aws/codeartifact/domain.py @@ -30,10 +30,7 @@ def __init__(__self__, import pulumi import pulumi_aws as aws - example_key = aws.kms.Key("exampleKey", description="domain key") - example_domain = aws.codeartifact.Domain("exampleDomain", - domain="example", - encryption_key=example_key.arn) + example = aws.codeartifact.Domain("example", domain="example") ``` ## Import @@ -47,7 +44,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] domain: The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. - :param pulumi.Input[str] encryption_key: The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + :param pulumi.Input[str] encryption_key: The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. """ if __name__ is not None: @@ -70,8 +67,6 @@ def __init__(__self__, if domain is None and not opts.urn: raise TypeError("Missing required property 'domain'") __props__['domain'] = domain - if encryption_key is None and not opts.urn: - raise TypeError("Missing required property 'encryption_key'") __props__['encryption_key'] = encryption_key __props__['tags'] = tags __props__['arn'] = None @@ -108,7 +103,7 @@ def get(resource_name: str, :param pulumi.Input[int] asset_size_bytes: The total size of all assets in the domain. :param pulumi.Input[str] created_time: A timestamp that represents the date and time the domain was created in [RFC3339 format](https://tools.ietf.org/html/rfc3339#section-5.8). :param pulumi.Input[str] domain: The name of the domain to create. All domain names in an AWS Region that are in the same AWS account must be unique. The domain name is used as the prefix in DNS hostnames. Do not use sensitive information in a domain name because it is publicly discoverable. - :param pulumi.Input[str] encryption_key: The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + :param pulumi.Input[str] encryption_key: The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. :param pulumi.Input[str] owner: The AWS account ID that owns the domain. :param pulumi.Input[int] repository_count: The number of repositories in the domain. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags. @@ -163,7 +158,7 @@ def domain(self) -> pulumi.Output[str]: @pulumi.getter(name="encryptionKey") def encryption_key(self) -> pulumi.Output[str]: """ - The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). + The encryption key for the domain. This is used to encrypt content stored in a domain. The KMS Key Amazon Resource Name (ARN). The default aws/codeartifact AWS KMS master key is used if this element is absent. """ return pulumi.get(self, "encryption_key") diff --git a/sdk/python/pulumi_aws/config/outputs.py b/sdk/python/pulumi_aws/config/outputs.py index f3ecb41a946..f980f7ae1ed 100644 --- a/sdk/python/pulumi_aws/config/outputs.py +++ b/sdk/python/pulumi_aws/config/outputs.py @@ -147,6 +147,7 @@ def __init__(__self__, *, elastictranscoder: Optional[str] = None, elb: Optional[str] = None, emr: Optional[str] = None, + emrcontainers: Optional[str] = None, es: Optional[str] = None, firehose: Optional[str] = None, fms: Optional[str] = None, @@ -355,6 +356,8 @@ def __init__(__self__, *, pulumi.set(__self__, "elb", elb) if emr is not None: pulumi.set(__self__, "emr", emr) + if emrcontainers is not None: + pulumi.set(__self__, "emrcontainers", emrcontainers) if es is not None: pulumi.set(__self__, "es", es) if firehose is not None: @@ -830,6 +833,11 @@ def elb(self) -> Optional[str]: def emr(self) -> Optional[str]: return pulumi.get(self, "emr") + @property + @pulumi.getter + def emrcontainers(self) -> Optional[str]: + return pulumi.get(self, "emrcontainers") + @property @pulumi.getter def es(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/ebs/volume.py b/sdk/python/pulumi_aws/ebs/volume.py index 63c9f815f16..2c0c70a744e 100644 --- a/sdk/python/pulumi_aws/ebs/volume.py +++ b/sdk/python/pulumi_aws/ebs/volume.py @@ -46,7 +46,7 @@ def __init__(__self__, }) ``` - > **NOTE**: One of `size` or `snapshot_id` is required when specifying an EBS volume + > **NOTE**: At least one of `size` or `snapshot_id` is required when specifying an EBS volume ## Import diff --git a/sdk/python/pulumi_aws/ec2/_inputs.py b/sdk/python/pulumi_aws/ec2/_inputs.py index 68af1c3a275..c512b9fe3c0 100644 --- a/sdk/python/pulumi_aws/ec2/_inputs.py +++ b/sdk/python/pulumi_aws/ec2/_inputs.py @@ -2764,7 +2764,7 @@ def __init__(__self__, *, :param pulumi.Input[str] kms_key_id: The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. `encrypted` must be set to `true` when this is set. :param pulumi.Input[str] snapshot_id: The Snapshot ID to mount. - :param pulumi.Input[int] throughput: The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + :param pulumi.Input[int] throughput: The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. :param pulumi.Input[int] volume_size: The size of the volume in gigabytes. :param pulumi.Input[str] volume_type: The volume type. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `gp2`). """ @@ -2853,7 +2853,7 @@ def snapshot_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def throughput(self) -> Optional[pulumi.Input[int]]: """ - The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. """ return pulumi.get(self, "throughput") diff --git a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py index 9d3009211b5..bc5749c316b 100644 --- a/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py +++ b/sdk/python/pulumi_aws/ec2/get_vpc_peering_connection.py @@ -21,13 +21,16 @@ class GetVpcPeeringConnectionResult: """ A collection of values returned by getVpcPeeringConnection. """ - def __init__(__self__, accepter=None, cidr_block=None, filters=None, id=None, owner_id=None, peer_cidr_block=None, peer_owner_id=None, peer_region=None, peer_vpc_id=None, region=None, requester=None, status=None, tags=None, vpc_id=None): + def __init__(__self__, accepter=None, cidr_block=None, cidr_block_sets=None, filters=None, id=None, owner_id=None, peer_cidr_block=None, peer_cidr_block_sets=None, peer_owner_id=None, peer_region=None, peer_vpc_id=None, region=None, requester=None, status=None, tags=None, vpc_id=None): if accepter and not isinstance(accepter, dict): raise TypeError("Expected argument 'accepter' to be a dict") pulumi.set(__self__, "accepter", accepter) if cidr_block and not isinstance(cidr_block, str): raise TypeError("Expected argument 'cidr_block' to be a str") pulumi.set(__self__, "cidr_block", cidr_block) + if cidr_block_sets and not isinstance(cidr_block_sets, list): + raise TypeError("Expected argument 'cidr_block_sets' to be a list") + pulumi.set(__self__, "cidr_block_sets", cidr_block_sets) if filters and not isinstance(filters, list): raise TypeError("Expected argument 'filters' to be a list") pulumi.set(__self__, "filters", filters) @@ -40,6 +43,9 @@ def __init__(__self__, accepter=None, cidr_block=None, filters=None, id=None, ow if peer_cidr_block and not isinstance(peer_cidr_block, str): raise TypeError("Expected argument 'peer_cidr_block' to be a str") pulumi.set(__self__, "peer_cidr_block", peer_cidr_block) + if peer_cidr_block_sets and not isinstance(peer_cidr_block_sets, list): + raise TypeError("Expected argument 'peer_cidr_block_sets' to be a list") + pulumi.set(__self__, "peer_cidr_block_sets", peer_cidr_block_sets) if peer_owner_id and not isinstance(peer_owner_id, str): raise TypeError("Expected argument 'peer_owner_id' to be a str") pulumi.set(__self__, "peer_owner_id", peer_owner_id) @@ -77,8 +83,19 @@ def accepter(self) -> Mapping[str, bool]: @property @pulumi.getter(name="cidrBlock") def cidr_block(self) -> str: + """ + A CIDR block associated to the VPC of the specific VPC Peering Connection. + """ return pulumi.get(self, "cidr_block") + @property + @pulumi.getter(name="cidrBlockSets") + def cidr_block_sets(self) -> Sequence['outputs.GetVpcPeeringConnectionCidrBlockSetResult']: + """ + List of objects with CIDR blocks of the requester VPC. + """ + return pulumi.get(self, "cidr_block_sets") + @property @pulumi.getter def filters(self) -> Optional[Sequence['outputs.GetVpcPeeringConnectionFilterResult']]: @@ -99,6 +116,14 @@ def owner_id(self) -> str: def peer_cidr_block(self) -> str: return pulumi.get(self, "peer_cidr_block") + @property + @pulumi.getter(name="peerCidrBlockSets") + def peer_cidr_block_sets(self) -> Sequence['outputs.GetVpcPeeringConnectionPeerCidrBlockSetResult']: + """ + List of objects with CIDR blocks of the accepter VPC. + """ + return pulumi.get(self, "peer_cidr_block_sets") + @property @pulumi.getter(name="peerOwnerId") def peer_owner_id(self) -> str: @@ -152,10 +177,12 @@ def __await__(self): return GetVpcPeeringConnectionResult( accepter=self.accepter, cidr_block=self.cidr_block, + cidr_block_sets=self.cidr_block_sets, filters=self.filters, id=self.id, owner_id=self.owner_id, peer_cidr_block=self.peer_cidr_block, + peer_cidr_block_sets=self.peer_cidr_block_sets, peer_owner_id=self.peer_owner_id, peer_region=self.peer_region, peer_vpc_id=self.peer_vpc_id, @@ -201,11 +228,11 @@ def get_vpc_peering_connection(cidr_block: Optional[str] = None, ``` - :param str cidr_block: The CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + :param str cidr_block: The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. :param Sequence[pulumi.InputType['GetVpcPeeringConnectionFilterArgs']] filters: Custom filter block as described below. :param str id: The ID of the specific VPC Peering Connection to retrieve. :param str owner_id: The AWS account ID of the owner of the requester VPC of the specific VPC Peering Connection to retrieve. - :param str peer_cidr_block: The CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. + :param str peer_cidr_block: The primary CIDR block of the accepter VPC of the specific VPC Peering Connection to retrieve. :param str peer_owner_id: The AWS account ID of the owner of the accepter VPC of the specific VPC Peering Connection to retrieve. :param str peer_region: The region of the accepter VPC of the specific VPC Peering Connection to retrieve. :param str peer_vpc_id: The ID of the accepter VPC of the specific VPC Peering Connection to retrieve. @@ -237,10 +264,12 @@ def get_vpc_peering_connection(cidr_block: Optional[str] = None, return AwaitableGetVpcPeeringConnectionResult( accepter=__ret__.accepter, cidr_block=__ret__.cidr_block, + cidr_block_sets=__ret__.cidr_block_sets, filters=__ret__.filters, id=__ret__.id, owner_id=__ret__.owner_id, peer_cidr_block=__ret__.peer_cidr_block, + peer_cidr_block_sets=__ret__.peer_cidr_block_sets, peer_owner_id=__ret__.peer_owner_id, peer_region=__ret__.peer_region, peer_vpc_id=__ret__.peer_vpc_id, diff --git a/sdk/python/pulumi_aws/ec2/outputs.py b/sdk/python/pulumi_aws/ec2/outputs.py index 06d711ed0ce..0c6881dd4cd 100644 --- a/sdk/python/pulumi_aws/ec2/outputs.py +++ b/sdk/python/pulumi_aws/ec2/outputs.py @@ -163,7 +163,9 @@ 'GetVpcEndpointFilterResult', 'GetVpcEndpointServiceFilterResult', 'GetVpcFilterResult', + 'GetVpcPeeringConnectionCidrBlockSetResult', 'GetVpcPeeringConnectionFilterResult', + 'GetVpcPeeringConnectionPeerCidrBlockSetResult', 'GetVpcPeeringConnectionsFilterResult', 'GetVpcsFilterResult', 'GetVpnGatewayFilterResult', @@ -2282,7 +2284,7 @@ def __init__(__self__, *, :param str kms_key_id: The ARN of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use when creating the encrypted volume. `encrypted` must be set to `true` when this is set. :param str snapshot_id: The Snapshot ID to mount. - :param int throughput: The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + :param int throughput: The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. :param int volume_size: The size of the volume in gigabytes. :param str volume_type: The volume type. Can be `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1` or `st1` (Default: `gp2`). """ @@ -2351,7 +2353,7 @@ def snapshot_id(self) -> Optional[str]: @pulumi.getter def throughput(self) -> Optional[int]: """ - The throughput to provision for a `gp3` volume, with a maximum of 1,000 MiB/s. + The throughput to provision for a `gp3` volume in MiB/s (specified as an integer, e.g. 500), with a maximum of 1,000 MiB/s. """ return pulumi.get(self, "throughput") @@ -7904,6 +7906,24 @@ def values(self) -> Sequence[str]: return pulumi.get(self, "values") +@pulumi.output_type +class GetVpcPeeringConnectionCidrBlockSetResult(dict): + def __init__(__self__, *, + cidr_block: str): + """ + :param str cidr_block: The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + """ + pulumi.set(__self__, "cidr_block", cidr_block) + + @property + @pulumi.getter(name="cidrBlock") + def cidr_block(self) -> str: + """ + The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + """ + return pulumi.get(self, "cidr_block") + + @pulumi.output_type class GetVpcPeeringConnectionFilterResult(dict): def __init__(__self__, *, @@ -7937,6 +7957,24 @@ def values(self) -> Sequence[str]: return pulumi.get(self, "values") +@pulumi.output_type +class GetVpcPeeringConnectionPeerCidrBlockSetResult(dict): + def __init__(__self__, *, + cidr_block: str): + """ + :param str cidr_block: The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + """ + pulumi.set(__self__, "cidr_block", cidr_block) + + @property + @pulumi.getter(name="cidrBlock") + def cidr_block(self) -> str: + """ + The primary CIDR block of the requester VPC of the specific VPC Peering Connection to retrieve. + """ + return pulumi.get(self, "cidr_block") + + @pulumi.output_type class GetVpcPeeringConnectionsFilterResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/elasticache/_inputs.py b/sdk/python/pulumi_aws/elasticache/_inputs.py index 7aa936f869c..93386fabcae 100644 --- a/sdk/python/pulumi_aws/elasticache/_inputs.py +++ b/sdk/python/pulumi_aws/elasticache/_inputs.py @@ -121,7 +121,7 @@ def __init__(__self__, *, replicas_per_node_group: pulumi.Input[int]): """ :param pulumi.Input[int] num_node_groups: Specify the number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. - :param pulumi.Input[int] replicas_per_node_group: Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + :param pulumi.Input[int] replicas_per_node_group: Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. """ pulumi.set(__self__, "num_node_groups", num_node_groups) pulumi.set(__self__, "replicas_per_node_group", replicas_per_node_group) @@ -142,7 +142,7 @@ def num_node_groups(self, value: pulumi.Input[int]): @pulumi.getter(name="replicasPerNodeGroup") def replicas_per_node_group(self) -> pulumi.Input[int]: """ - Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. """ return pulumi.get(self, "replicas_per_node_group") diff --git a/sdk/python/pulumi_aws/elasticache/get_replication_group.py b/sdk/python/pulumi_aws/elasticache/get_replication_group.py index 0084ee4054e..63a3d485877 100644 --- a/sdk/python/pulumi_aws/elasticache/get_replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/get_replication_group.py @@ -19,7 +19,7 @@ class GetReplicationGroupResult: """ A collection of values returned by getReplicationGroup. """ - def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_enabled=None, configuration_endpoint_address=None, id=None, member_clusters=None, node_type=None, number_cache_clusters=None, port=None, primary_endpoint_address=None, reader_endpoint_address=None, replication_group_description=None, replication_group_id=None, snapshot_retention_limit=None, snapshot_window=None): + def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_enabled=None, configuration_endpoint_address=None, id=None, member_clusters=None, multi_az_enabled=None, node_type=None, number_cache_clusters=None, port=None, primary_endpoint_address=None, reader_endpoint_address=None, replication_group_description=None, replication_group_id=None, snapshot_retention_limit=None, snapshot_window=None): if arn and not isinstance(arn, str): raise TypeError("Expected argument 'arn' to be a str") pulumi.set(__self__, "arn", arn) @@ -38,6 +38,9 @@ def __init__(__self__, arn=None, auth_token_enabled=None, automatic_failover_ena if member_clusters and not isinstance(member_clusters, list): raise TypeError("Expected argument 'member_clusters' to be a list") pulumi.set(__self__, "member_clusters", member_clusters) + if multi_az_enabled and not isinstance(multi_az_enabled, bool): + raise TypeError("Expected argument 'multi_az_enabled' to be a bool") + pulumi.set(__self__, "multi_az_enabled", multi_az_enabled) if node_type and not isinstance(node_type, str): raise TypeError("Expected argument 'node_type' to be a str") pulumi.set(__self__, "node_type", node_type) @@ -78,7 +81,7 @@ def arn(self) -> str: @pulumi.getter(name="authTokenEnabled") def auth_token_enabled(self) -> bool: """ - A flag that enables using an AuthToken (password) when issuing Redis commands. + Specifies whether an AuthToken (password) is enabled. """ return pulumi.get(self, "auth_token_enabled") @@ -114,6 +117,14 @@ def member_clusters(self) -> Sequence[str]: """ return pulumi.get(self, "member_clusters") + @property + @pulumi.getter(name="multiAzEnabled") + def multi_az_enabled(self) -> bool: + """ + Specifies whether Multi-AZ Support is enabled for the replication group. + """ + return pulumi.get(self, "multi_az_enabled") + @property @pulumi.getter(name="nodeType") def node_type(self) -> str: @@ -196,6 +207,7 @@ def __await__(self): configuration_endpoint_address=self.configuration_endpoint_address, id=self.id, member_clusters=self.member_clusters, + multi_az_enabled=self.multi_az_enabled, node_type=self.node_type, number_cache_clusters=self.number_cache_clusters, port=self.port, @@ -239,6 +251,7 @@ def get_replication_group(replication_group_id: Optional[str] = None, configuration_endpoint_address=__ret__.configuration_endpoint_address, id=__ret__.id, member_clusters=__ret__.member_clusters, + multi_az_enabled=__ret__.multi_az_enabled, node_type=__ret__.node_type, number_cache_clusters=__ret__.number_cache_clusters, port=__ret__.port, diff --git a/sdk/python/pulumi_aws/elasticache/outputs.py b/sdk/python/pulumi_aws/elasticache/outputs.py index 738ce650e7a..f5e1dd51f1a 100644 --- a/sdk/python/pulumi_aws/elasticache/outputs.py +++ b/sdk/python/pulumi_aws/elasticache/outputs.py @@ -104,7 +104,7 @@ def __init__(__self__, *, replicas_per_node_group: int): """ :param int num_node_groups: Specify the number of node groups (shards) for this Redis replication group. Changing this number will trigger an online resizing operation before other settings modifications. - :param int replicas_per_node_group: Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + :param int replicas_per_node_group: Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. """ pulumi.set(__self__, "num_node_groups", num_node_groups) pulumi.set(__self__, "replicas_per_node_group", replicas_per_node_group) @@ -121,7 +121,7 @@ def num_node_groups(self) -> int: @pulumi.getter(name="replicasPerNodeGroup") def replicas_per_node_group(self) -> int: """ - Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will force a new resource. + Specify the number of replica nodes in each node group. Valid values are 0 to 5. Changing this number will trigger an online resizing operation before other settings modifications. """ return pulumi.get(self, "replicas_per_node_group") diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index 84e2a5f5a28..4b59183f60b 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -29,6 +29,7 @@ def __init__(__self__, final_snapshot_identifier: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, + multi_az_enabled: Optional[pulumi.Input[bool]] = None, node_type: Optional[pulumi.Input[str]] = None, notification_topic_arn: Optional[pulumi.Input[str]] = None, number_cache_clusters: Optional[pulumi.Input[int]] = None, @@ -159,13 +160,14 @@ def __init__(__self__, :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. - :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. :param pulumi.Input[str] engine_version: The version number of the cache engine to be used for the cache clusters in this replication group. :param pulumi.Input[str] final_snapshot_identifier: The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. :param pulumi.Input[str] node_type: The compute and memory capacity of the nodes in the node group. :param pulumi.Input[str] notification_topic_arn: An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: @@ -220,6 +222,7 @@ def __init__(__self__, __props__['final_snapshot_identifier'] = final_snapshot_identifier __props__['kms_key_id'] = kms_key_id __props__['maintenance_window'] = maintenance_window + __props__['multi_az_enabled'] = multi_az_enabled __props__['node_type'] = node_type __props__['notification_topic_arn'] = notification_topic_arn __props__['number_cache_clusters'] = number_cache_clusters @@ -270,6 +273,7 @@ def get(resource_name: str, kms_key_id: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, member_clusters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + multi_az_enabled: Optional[pulumi.Input[bool]] = None, node_type: Optional[pulumi.Input[str]] = None, notification_topic_arn: Optional[pulumi.Input[str]] = None, number_cache_clusters: Optional[pulumi.Input[int]] = None, @@ -305,7 +309,7 @@ def get(resource_name: str, :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[str] configuration_endpoint_address: The address of the replication group configuration endpoint when cluster mode is enabled. - :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. :param pulumi.Input[str] engine_version: The version number of the cache engine to be used for the cache clusters in this replication group. :param pulumi.Input[str] final_snapshot_identifier: The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. @@ -313,6 +317,7 @@ def get(resource_name: str, on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` :param pulumi.Input[Sequence[pulumi.Input[str]]] member_clusters: The identifiers of all the nodes that are part of this replication group. + :param pulumi.Input[bool] multi_az_enabled: Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. :param pulumi.Input[str] node_type: The compute and memory capacity of the nodes in the node group. :param pulumi.Input[str] notification_topic_arn: An Amazon Resource Name (ARN) of an SNS topic to send ElastiCache notifications to. Example: @@ -360,6 +365,7 @@ def get(resource_name: str, __props__["kms_key_id"] = kms_key_id __props__["maintenance_window"] = maintenance_window __props__["member_clusters"] = member_clusters + __props__["multi_az_enabled"] = multi_az_enabled __props__["node_type"] = node_type __props__["notification_topic_arn"] = notification_topic_arn __props__["number_cache_clusters"] = number_cache_clusters @@ -464,7 +470,7 @@ def configuration_endpoint_address(self) -> pulumi.Output[str]: @pulumi.getter def engine(self) -> pulumi.Output[Optional[str]]: """ - The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` + The name of the cache engine to be used for the clusters in this replication group. The only valid value is `redis`. """ return pulumi.get(self, "engine") @@ -510,6 +516,14 @@ def member_clusters(self) -> pulumi.Output[Sequence[str]]: """ return pulumi.get(self, "member_clusters") + @property + @pulumi.getter(name="multiAzEnabled") + def multi_az_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + Specifies whether to enable Multi-AZ Support for the replication group. If `true`, `automatic_failover_enabled` must also be enabled. Defaults to `false`. + """ + return pulumi.get(self, "multi_az_enabled") + @property @pulumi.getter(name="nodeType") def node_type(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/elasticloadbalancingv2/outputs.py b/sdk/python/pulumi_aws/elasticloadbalancingv2/outputs.py index a433b6c1a65..31e1f466045 100644 --- a/sdk/python/pulumi_aws/elasticloadbalancingv2/outputs.py +++ b/sdk/python/pulumi_aws/elasticloadbalancingv2/outputs.py @@ -41,6 +41,9 @@ 'GetListenerDefaultActionAuthenticateCognitoResult', 'GetListenerDefaultActionAuthenticateOidcResult', 'GetListenerDefaultActionFixedResponseResult', + 'GetListenerDefaultActionForwardResult', + 'GetListenerDefaultActionForwardStickinessResult', + 'GetListenerDefaultActionForwardTargetGroupResult', 'GetListenerDefaultActionRedirectResult', 'GetLoadBalancerAccessLogsResult', 'GetLoadBalancerSubnetMappingResult', @@ -1668,6 +1671,7 @@ def __init__(__self__, *, authenticate_cognitos: Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult'], authenticate_oidcs: Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult'], fixed_responses: Sequence['outputs.GetListenerDefaultActionFixedResponseResult'], + forwards: Sequence['outputs.GetListenerDefaultActionForwardResult'], order: int, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, @@ -1675,6 +1679,7 @@ def __init__(__self__, *, pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) pulumi.set(__self__, "fixed_responses", fixed_responses) + pulumi.set(__self__, "forwards", forwards) pulumi.set(__self__, "order", order) pulumi.set(__self__, "redirects", redirects) pulumi.set(__self__, "target_group_arn", target_group_arn) @@ -1695,6 +1700,11 @@ def authenticate_oidcs(self) -> Sequence['outputs.GetListenerDefaultActionAuthen def fixed_responses(self) -> Sequence['outputs.GetListenerDefaultActionFixedResponseResult']: return pulumi.get(self, "fixed_responses") + @property + @pulumi.getter + def forwards(self) -> Sequence['outputs.GetListenerDefaultActionForwardResult']: + return pulumi.get(self, "forwards") + @property @pulumi.getter def order(self) -> int: @@ -1885,6 +1895,69 @@ def status_code(self) -> str: return pulumi.get(self, "status_code") +@pulumi.output_type +class GetListenerDefaultActionForwardResult(dict): + def __init__(__self__, *, + stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], + target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): + pulumi.set(__self__, "stickinesses", stickinesses) + pulumi.set(__self__, "target_groups", target_groups) + + @property + @pulumi.getter + def stickinesses(self) -> Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']: + return pulumi.get(self, "stickinesses") + + @property + @pulumi.getter(name="targetGroups") + def target_groups(self) -> Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']: + return pulumi.get(self, "target_groups") + + +@pulumi.output_type +class GetListenerDefaultActionForwardStickinessResult(dict): + def __init__(__self__, *, + duration: int, + enabled: bool): + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def duration(self) -> int: + return pulumi.get(self, "duration") + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class GetListenerDefaultActionForwardTargetGroupResult(dict): + def __init__(__self__, *, + arn: str, + weight: int): + """ + :param str arn: The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def weight(self) -> int: + return pulumi.get(self, "weight") + + @pulumi.output_type class GetListenerDefaultActionRedirectResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/imagebuilder/__init__.py b/sdk/python/pulumi_aws/imagebuilder/__init__.py index 6454f15e5fd..befab4192ab 100644 --- a/sdk/python/pulumi_aws/imagebuilder/__init__.py +++ b/sdk/python/pulumi_aws/imagebuilder/__init__.py @@ -7,9 +7,11 @@ from .distribution_configuration import * from .get_component import * from .get_distribution_configuration import * +from .get_image import * from .get_image_pipeline import * from .get_image_recipe import * from .get_infrastructure_configuration import * +from .image import * from .image_pipeline import * from .image_recipe import * from .infrastructure_configuration import * @@ -32,6 +34,8 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: return Component(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:imagebuilder/distributionConfiguration:DistributionConfiguration": return DistributionConfiguration(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:imagebuilder/image:Image": + return Image(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:imagebuilder/imagePipeline:ImagePipeline": return ImagePipeline(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:imagebuilder/imageRecipe:ImageRecipe": @@ -45,6 +49,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: _module_instance = Module() pulumi.runtime.register_resource_module("aws", "imagebuilder/component", _module_instance) pulumi.runtime.register_resource_module("aws", "imagebuilder/distributionConfiguration", _module_instance) + pulumi.runtime.register_resource_module("aws", "imagebuilder/image", _module_instance) pulumi.runtime.register_resource_module("aws", "imagebuilder/imagePipeline", _module_instance) pulumi.runtime.register_resource_module("aws", "imagebuilder/imageRecipe", _module_instance) pulumi.runtime.register_resource_module("aws", "imagebuilder/infrastructureConfiguration", _module_instance) diff --git a/sdk/python/pulumi_aws/imagebuilder/_inputs.py b/sdk/python/pulumi_aws/imagebuilder/_inputs.py index d41cfdbb9b4..217a97ac6f0 100644 --- a/sdk/python/pulumi_aws/imagebuilder/_inputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/_inputs.py @@ -12,6 +12,9 @@ 'DistributionConfigurationDistributionArgs', 'DistributionConfigurationDistributionAmiDistributionConfigurationArgs', 'DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionArgs', + 'ImageImageTestsConfigurationArgs', + 'ImageOutputResourceArgs', + 'ImageOutputResourceAmiArgs', 'ImagePipelineImageTestsConfigurationArgs', 'ImagePipelineScheduleArgs', 'ImageRecipeBlockDeviceMappingArgs', @@ -217,6 +220,155 @@ def user_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): pulumi.set(self, "user_ids", value) +@pulumi.input_type +class ImageImageTestsConfigurationArgs: + def __init__(__self__, *, + image_tests_enabled: Optional[pulumi.Input[bool]] = None, + timeout_minutes: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[bool] image_tests_enabled: Whether image tests are enabled. Defaults to `true`. + :param pulumi.Input[int] timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + """ + if image_tests_enabled is not None: + pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + if timeout_minutes is not None: + pulumi.set(__self__, "timeout_minutes", timeout_minutes) + + @property + @pulumi.getter(name="imageTestsEnabled") + def image_tests_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Whether image tests are enabled. Defaults to `true`. + """ + return pulumi.get(self, "image_tests_enabled") + + @image_tests_enabled.setter + def image_tests_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "image_tests_enabled", value) + + @property + @pulumi.getter(name="timeoutMinutes") + def timeout_minutes(self) -> Optional[pulumi.Input[int]]: + """ + Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + """ + return pulumi.get(self, "timeout_minutes") + + @timeout_minutes.setter + def timeout_minutes(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "timeout_minutes", value) + + +@pulumi.input_type +class ImageOutputResourceArgs: + def __init__(__self__, *, + amis: Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]] amis: Set of objects with each Amazon Machine Image (AMI) created. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + + @property + @pulumi.getter + def amis(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]]]: + """ + Set of objects with each Amazon Machine Image (AMI) created. + """ + return pulumi.get(self, "amis") + + @amis.setter + def amis(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ImageOutputResourceAmiArgs']]]]): + pulumi.set(self, "amis", value) + + +@pulumi.input_type +class ImageOutputResourceAmiArgs: + def __init__(__self__, *, + account_id: Optional[pulumi.Input[str]] = None, + description: Optional[pulumi.Input[str]] = None, + image: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + region: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] account_id: Account identifier of the AMI. + :param pulumi.Input[str] description: Description of the AMI. + :param pulumi.Input[str] image: Identifier of the AMI. + :param pulumi.Input[str] name: Name of the AMI. + :param pulumi.Input[str] region: Region of the AMI. + """ + if account_id is not None: + pulumi.set(__self__, "account_id", account_id) + if description is not None: + pulumi.set(__self__, "description", description) + if image is not None: + pulumi.set(__self__, "image", image) + if name is not None: + pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> Optional[pulumi.Input[str]]: + """ + Account identifier of the AMI. + """ + return pulumi.get(self, "account_id") + + @account_id.setter + def account_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "account_id", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + Description of the AMI. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def image(self) -> Optional[pulumi.Input[str]]: + """ + Identifier of the AMI. + """ + return pulumi.get(self, "image") + + @image.setter + def image(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "image", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Name of the AMI. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def region(self) -> Optional[pulumi.Input[str]]: + """ + Region of the AMI. + """ + return pulumi.get(self, "region") + + @region.setter + def region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "region", value) + + @pulumi.input_type class ImagePipelineImageTestsConfigurationArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/imagebuilder/get_image.py b/sdk/python/pulumi_aws/imagebuilder/get_image.py new file mode 100644 index 00000000000..9db68665208 --- /dev/null +++ b/sdk/python/pulumi_aws/imagebuilder/get_image.py @@ -0,0 +1,255 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs + +__all__ = [ + 'GetImageResult', + 'AwaitableGetImageResult', + 'get_image', +] + +@pulumi.output_type +class GetImageResult: + """ + A collection of values returned by getImage. + """ + def __init__(__self__, arn=None, build_version_arn=None, date_created=None, distribution_configuration_arn=None, enhanced_image_metadata_enabled=None, id=None, image_recipe_arn=None, image_tests_configurations=None, infrastructure_configuration_arn=None, name=None, os_version=None, output_resources=None, platform=None, tags=None, version=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if build_version_arn and not isinstance(build_version_arn, str): + raise TypeError("Expected argument 'build_version_arn' to be a str") + pulumi.set(__self__, "build_version_arn", build_version_arn) + if date_created and not isinstance(date_created, str): + raise TypeError("Expected argument 'date_created' to be a str") + pulumi.set(__self__, "date_created", date_created) + if distribution_configuration_arn and not isinstance(distribution_configuration_arn, str): + raise TypeError("Expected argument 'distribution_configuration_arn' to be a str") + pulumi.set(__self__, "distribution_configuration_arn", distribution_configuration_arn) + if enhanced_image_metadata_enabled and not isinstance(enhanced_image_metadata_enabled, bool): + raise TypeError("Expected argument 'enhanced_image_metadata_enabled' to be a bool") + pulumi.set(__self__, "enhanced_image_metadata_enabled", enhanced_image_metadata_enabled) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if image_recipe_arn and not isinstance(image_recipe_arn, str): + raise TypeError("Expected argument 'image_recipe_arn' to be a str") + pulumi.set(__self__, "image_recipe_arn", image_recipe_arn) + if image_tests_configurations and not isinstance(image_tests_configurations, list): + raise TypeError("Expected argument 'image_tests_configurations' to be a list") + pulumi.set(__self__, "image_tests_configurations", image_tests_configurations) + if infrastructure_configuration_arn and not isinstance(infrastructure_configuration_arn, str): + raise TypeError("Expected argument 'infrastructure_configuration_arn' to be a str") + pulumi.set(__self__, "infrastructure_configuration_arn", infrastructure_configuration_arn) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if os_version and not isinstance(os_version, str): + raise TypeError("Expected argument 'os_version' to be a str") + pulumi.set(__self__, "os_version", os_version) + if output_resources and not isinstance(output_resources, list): + raise TypeError("Expected argument 'output_resources' to be a list") + pulumi.set(__self__, "output_resources", output_resources) + if platform and not isinstance(platform, str): + raise TypeError("Expected argument 'platform' to be a str") + pulumi.set(__self__, "platform", platform) + if tags and not isinstance(tags, dict): + raise TypeError("Expected argument 'tags' to be a dict") + pulumi.set(__self__, "tags", tags) + if version and not isinstance(version, str): + raise TypeError("Expected argument 'version' to be a str") + pulumi.set(__self__, "version", version) + + @property + @pulumi.getter + def arn(self) -> str: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="buildVersionArn") + def build_version_arn(self) -> str: + """ + Build version Amazon Resource Name (ARN) of the image. This will always have the `#.#.#/#` suffix. + """ + return pulumi.get(self, "build_version_arn") + + @property + @pulumi.getter(name="dateCreated") + def date_created(self) -> str: + """ + Date the image was created. + """ + return pulumi.get(self, "date_created") + + @property + @pulumi.getter(name="distributionConfigurationArn") + def distribution_configuration_arn(self) -> str: + """ + Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + """ + return pulumi.get(self, "distribution_configuration_arn") + + @property + @pulumi.getter(name="enhancedImageMetadataEnabled") + def enhanced_image_metadata_enabled(self) -> bool: + """ + Whether additional information about the image being created is collected. + """ + return pulumi.get(self, "enhanced_image_metadata_enabled") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="imageRecipeArn") + def image_recipe_arn(self) -> str: + """ + Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + """ + return pulumi.get(self, "image_recipe_arn") + + @property + @pulumi.getter(name="imageTestsConfigurations") + def image_tests_configurations(self) -> Sequence['outputs.GetImageImageTestsConfigurationResult']: + """ + List of an object with image tests configuration. + """ + return pulumi.get(self, "image_tests_configurations") + + @property + @pulumi.getter(name="infrastructureConfigurationArn") + def infrastructure_configuration_arn(self) -> str: + """ + Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + """ + return pulumi.get(self, "infrastructure_configuration_arn") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the AMI. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="osVersion") + def os_version(self) -> str: + """ + Operating System version of the image. + """ + return pulumi.get(self, "os_version") + + @property + @pulumi.getter(name="outputResources") + def output_resources(self) -> Sequence['outputs.GetImageOutputResourceResult']: + """ + List of objects with resources created by the image. + """ + return pulumi.get(self, "output_resources") + + @property + @pulumi.getter + def platform(self) -> str: + """ + Platform of the image. + """ + return pulumi.get(self, "platform") + + @property + @pulumi.getter + def tags(self) -> Mapping[str, str]: + """ + Key-value map of resource tags for the image. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def version(self) -> str: + """ + Version of the image. + """ + return pulumi.get(self, "version") + + +class AwaitableGetImageResult(GetImageResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetImageResult( + arn=self.arn, + build_version_arn=self.build_version_arn, + date_created=self.date_created, + distribution_configuration_arn=self.distribution_configuration_arn, + enhanced_image_metadata_enabled=self.enhanced_image_metadata_enabled, + id=self.id, + image_recipe_arn=self.image_recipe_arn, + image_tests_configurations=self.image_tests_configurations, + infrastructure_configuration_arn=self.infrastructure_configuration_arn, + name=self.name, + os_version=self.os_version, + output_resources=self.output_resources, + platform=self.platform, + tags=self.tags, + version=self.version) + + +def get_image(arn: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetImageResult: + """ + Provides details about an Image Builder Image. + + ## Example Usage + ### Latest + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.imagebuilder.get_image(arn="arn:aws:imagebuilder:us-west-2:aws:image/amazon-linux-2-x86/x.x.x") + ``` + + + :param str arn: Amazon Resource Name (ARN) of the image. The suffix can either be specified with wildcards (`x.x.x`) to fetch the latest build version or a full build version (e.g. `2020.11.26/1`) to fetch an exact version. + :param Mapping[str, str] tags: Key-value map of resource tags for the image. + """ + __args__ = dict() + __args__['arn'] = arn + __args__['tags'] = tags + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = _utilities.get_version() + __ret__ = pulumi.runtime.invoke('aws:imagebuilder/getImage:getImage', __args__, opts=opts, typ=GetImageResult).value + + return AwaitableGetImageResult( + arn=__ret__.arn, + build_version_arn=__ret__.build_version_arn, + date_created=__ret__.date_created, + distribution_configuration_arn=__ret__.distribution_configuration_arn, + enhanced_image_metadata_enabled=__ret__.enhanced_image_metadata_enabled, + id=__ret__.id, + image_recipe_arn=__ret__.image_recipe_arn, + image_tests_configurations=__ret__.image_tests_configurations, + infrastructure_configuration_arn=__ret__.infrastructure_configuration_arn, + name=__ret__.name, + os_version=__ret__.os_version, + output_resources=__ret__.output_resources, + platform=__ret__.platform, + tags=__ret__.tags, + version=__ret__.version) diff --git a/sdk/python/pulumi_aws/imagebuilder/image.py b/sdk/python/pulumi_aws/imagebuilder/image.py new file mode 100644 index 00000000000..dd2608baf8b --- /dev/null +++ b/sdk/python/pulumi_aws/imagebuilder/image.py @@ -0,0 +1,267 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['Image'] + + +class Image(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_tests_configuration: Optional[pulumi.Input[pulumi.InputType['ImageImageTestsConfigurationArgs']]] = None, + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Manages an Image Builder Image. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.imagebuilder.Image("example", + distribution_configuration_arn=aws_imagebuilder_distribution_configuration["example"]["arn"], + image_recipe_arn=aws_imagebuilder_image_recipe["example"]["arn"], + infrastructure_configuration_arn=aws_imagebuilder_infrastructure_configuration["example"]["arn"]) + ``` + + ## Import + + `aws_imagebuilder_image` resources can be imported using the Amazon Resource Name (ARN), e.g. + + ```sh + $ pulumi import aws:imagebuilder/image:Image example arn:aws:imagebuilder:us-east-1:123456789012:image/example/1.0.0/1 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + :param pulumi.Input[pulumi.InputType['ImageImageTestsConfigurationArgs']] image_tests_configuration: Configuration block with image tests configuration. Detailed below. + :param pulumi.Input[str] infrastructure_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Image. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['distribution_configuration_arn'] = distribution_configuration_arn + __props__['enhanced_image_metadata_enabled'] = enhanced_image_metadata_enabled + if image_recipe_arn is None and not opts.urn: + raise TypeError("Missing required property 'image_recipe_arn'") + __props__['image_recipe_arn'] = image_recipe_arn + __props__['image_tests_configuration'] = image_tests_configuration + if infrastructure_configuration_arn is None and not opts.urn: + raise TypeError("Missing required property 'infrastructure_configuration_arn'") + __props__['infrastructure_configuration_arn'] = infrastructure_configuration_arn + __props__['tags'] = tags + __props__['arn'] = None + __props__['date_created'] = None + __props__['name'] = None + __props__['os_version'] = None + __props__['output_resources'] = None + __props__['platform'] = None + __props__['version'] = None + super(Image, __self__).__init__( + 'aws:imagebuilder/image:Image', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + date_created: Optional[pulumi.Input[str]] = None, + distribution_configuration_arn: Optional[pulumi.Input[str]] = None, + enhanced_image_metadata_enabled: Optional[pulumi.Input[bool]] = None, + image_recipe_arn: Optional[pulumi.Input[str]] = None, + image_tests_configuration: Optional[pulumi.Input[pulumi.InputType['ImageImageTestsConfigurationArgs']]] = None, + infrastructure_configuration_arn: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + os_version: Optional[pulumi.Input[str]] = None, + output_resources: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ImageOutputResourceArgs']]]]] = None, + platform: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + version: Optional[pulumi.Input[str]] = None) -> 'Image': + """ + Get an existing Image resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] arn: Amazon Resource Name (ARN) of the image. + :param pulumi.Input[str] date_created: Date the image was created. + :param pulumi.Input[str] distribution_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + :param pulumi.Input[bool] enhanced_image_metadata_enabled: Whether additional information about the image being created is collected. Defaults to `true`. + :param pulumi.Input[str] image_recipe_arn: Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + :param pulumi.Input[pulumi.InputType['ImageImageTestsConfigurationArgs']] image_tests_configuration: Configuration block with image tests configuration. Detailed below. + :param pulumi.Input[str] infrastructure_configuration_arn: Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + :param pulumi.Input[str] name: Name of the AMI. + :param pulumi.Input[str] os_version: Operating System version of the image. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ImageOutputResourceArgs']]]] output_resources: List of objects with resources created by the image. + :param pulumi.Input[str] platform: Platform of the image. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags for the Image Builder Image. + :param pulumi.Input[str] version: Version of the image. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["arn"] = arn + __props__["date_created"] = date_created + __props__["distribution_configuration_arn"] = distribution_configuration_arn + __props__["enhanced_image_metadata_enabled"] = enhanced_image_metadata_enabled + __props__["image_recipe_arn"] = image_recipe_arn + __props__["image_tests_configuration"] = image_tests_configuration + __props__["infrastructure_configuration_arn"] = infrastructure_configuration_arn + __props__["name"] = name + __props__["os_version"] = os_version + __props__["output_resources"] = output_resources + __props__["platform"] = platform + __props__["tags"] = tags + __props__["version"] = version + return Image(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the image. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="dateCreated") + def date_created(self) -> pulumi.Output[str]: + """ + Date the image was created. + """ + return pulumi.get(self, "date_created") + + @property + @pulumi.getter(name="distributionConfigurationArn") + def distribution_configuration_arn(self) -> pulumi.Output[Optional[str]]: + """ + Amazon Resource Name (ARN) of the Image Builder Distribution Configuration. + """ + return pulumi.get(self, "distribution_configuration_arn") + + @property + @pulumi.getter(name="enhancedImageMetadataEnabled") + def enhanced_image_metadata_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + Whether additional information about the image being created is collected. Defaults to `true`. + """ + return pulumi.get(self, "enhanced_image_metadata_enabled") + + @property + @pulumi.getter(name="imageRecipeArn") + def image_recipe_arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the Image Builder Infrastructure Recipe. + """ + return pulumi.get(self, "image_recipe_arn") + + @property + @pulumi.getter(name="imageTestsConfiguration") + def image_tests_configuration(self) -> pulumi.Output['outputs.ImageImageTestsConfiguration']: + """ + Configuration block with image tests configuration. Detailed below. + """ + return pulumi.get(self, "image_tests_configuration") + + @property + @pulumi.getter(name="infrastructureConfigurationArn") + def infrastructure_configuration_arn(self) -> pulumi.Output[str]: + """ + Amazon Resource Name (ARN) of the Image Builder Infrastructure Configuration. + """ + return pulumi.get(self, "infrastructure_configuration_arn") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Name of the AMI. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="osVersion") + def os_version(self) -> pulumi.Output[str]: + """ + Operating System version of the image. + """ + return pulumi.get(self, "os_version") + + @property + @pulumi.getter(name="outputResources") + def output_resources(self) -> pulumi.Output[Sequence['outputs.ImageOutputResource']]: + """ + List of objects with resources created by the image. + """ + return pulumi.get(self, "output_resources") + + @property + @pulumi.getter + def platform(self) -> pulumi.Output[str]: + """ + Platform of the image. + """ + return pulumi.get(self, "platform") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Key-value map of resource tags for the Image Builder Image. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def version(self) -> pulumi.Output[str]: + """ + Version of the image. + """ + return pulumi.get(self, "version") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/imagebuilder/outputs.py b/sdk/python/pulumi_aws/imagebuilder/outputs.py index f28974fce19..3630d481382 100644 --- a/sdk/python/pulumi_aws/imagebuilder/outputs.py +++ b/sdk/python/pulumi_aws/imagebuilder/outputs.py @@ -13,6 +13,9 @@ 'DistributionConfigurationDistribution', 'DistributionConfigurationDistributionAmiDistributionConfiguration', 'DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermission', + 'ImageImageTestsConfiguration', + 'ImageOutputResource', + 'ImageOutputResourceAmi', 'ImagePipelineImageTestsConfiguration', 'ImagePipelineSchedule', 'ImageRecipeBlockDeviceMapping', @@ -23,6 +26,9 @@ 'GetDistributionConfigurationDistributionResult', 'GetDistributionConfigurationDistributionAmiDistributionConfigurationResult', 'GetDistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionResult', + 'GetImageImageTestsConfigurationResult', + 'GetImageOutputResourceResult', + 'GetImageOutputResourceAmiResult', 'GetImagePipelineImageTestsConfigurationResult', 'GetImagePipelineScheduleResult', 'GetImageRecipeBlockDeviceMappingResult', @@ -193,6 +199,132 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class ImageImageTestsConfiguration(dict): + def __init__(__self__, *, + image_tests_enabled: Optional[bool] = None, + timeout_minutes: Optional[int] = None): + """ + :param bool image_tests_enabled: Whether image tests are enabled. Defaults to `true`. + :param int timeout_minutes: Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + """ + if image_tests_enabled is not None: + pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + if timeout_minutes is not None: + pulumi.set(__self__, "timeout_minutes", timeout_minutes) + + @property + @pulumi.getter(name="imageTestsEnabled") + def image_tests_enabled(self) -> Optional[bool]: + """ + Whether image tests are enabled. Defaults to `true`. + """ + return pulumi.get(self, "image_tests_enabled") + + @property + @pulumi.getter(name="timeoutMinutes") + def timeout_minutes(self) -> Optional[int]: + """ + Number of minutes before image tests time out. Valid values are between `60` and `1440`. Defaults to `720`. + """ + return pulumi.get(self, "timeout_minutes") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class ImageOutputResource(dict): + def __init__(__self__, *, + amis: Optional[Sequence['outputs.ImageOutputResourceAmi']] = None): + """ + :param Sequence['ImageOutputResourceAmiArgs'] amis: Set of objects with each Amazon Machine Image (AMI) created. + """ + if amis is not None: + pulumi.set(__self__, "amis", amis) + + @property + @pulumi.getter + def amis(self) -> Optional[Sequence['outputs.ImageOutputResourceAmi']]: + """ + Set of objects with each Amazon Machine Image (AMI) created. + """ + return pulumi.get(self, "amis") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class ImageOutputResourceAmi(dict): + def __init__(__self__, *, + account_id: Optional[str] = None, + description: Optional[str] = None, + image: Optional[str] = None, + name: Optional[str] = None, + region: Optional[str] = None): + """ + :param str account_id: Account identifier of the AMI. + :param str description: Description of the AMI. + :param str image: Identifier of the AMI. + :param str name: Name of the AMI. + :param str region: Region of the AMI. + """ + if account_id is not None: + pulumi.set(__self__, "account_id", account_id) + if description is not None: + pulumi.set(__self__, "description", description) + if image is not None: + pulumi.set(__self__, "image", image) + if name is not None: + pulumi.set(__self__, "name", name) + if region is not None: + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> Optional[str]: + """ + Account identifier of the AMI. + """ + return pulumi.get(self, "account_id") + + @property + @pulumi.getter + def description(self) -> Optional[str]: + """ + Description of the AMI. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def image(self) -> Optional[str]: + """ + Identifier of the AMI. + """ + return pulumi.get(self, "image") + + @property + @pulumi.getter + def name(self) -> Optional[str]: + """ + Name of the AMI. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def region(self) -> Optional[str]: + """ + Region of the AMI. + """ + return pulumi.get(self, "region") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class ImagePipelineImageTestsConfiguration(dict): def __init__(__self__, *, @@ -629,6 +761,115 @@ def user_ids(self) -> Sequence[str]: return pulumi.get(self, "user_ids") +@pulumi.output_type +class GetImageImageTestsConfigurationResult(dict): + def __init__(__self__, *, + image_tests_enabled: bool, + timeout_minutes: int): + """ + :param bool image_tests_enabled: Whether image tests are enabled. + :param int timeout_minutes: Number of minutes before image tests time out. + """ + pulumi.set(__self__, "image_tests_enabled", image_tests_enabled) + pulumi.set(__self__, "timeout_minutes", timeout_minutes) + + @property + @pulumi.getter(name="imageTestsEnabled") + def image_tests_enabled(self) -> bool: + """ + Whether image tests are enabled. + """ + return pulumi.get(self, "image_tests_enabled") + + @property + @pulumi.getter(name="timeoutMinutes") + def timeout_minutes(self) -> int: + """ + Number of minutes before image tests time out. + """ + return pulumi.get(self, "timeout_minutes") + + +@pulumi.output_type +class GetImageOutputResourceResult(dict): + def __init__(__self__, *, + amis: Sequence['outputs.GetImageOutputResourceAmiResult']): + """ + :param Sequence['GetImageOutputResourceAmiArgs'] amis: Set of objects with each Amazon Machine Image (AMI) created. + """ + pulumi.set(__self__, "amis", amis) + + @property + @pulumi.getter + def amis(self) -> Sequence['outputs.GetImageOutputResourceAmiResult']: + """ + Set of objects with each Amazon Machine Image (AMI) created. + """ + return pulumi.get(self, "amis") + + +@pulumi.output_type +class GetImageOutputResourceAmiResult(dict): + def __init__(__self__, *, + account_id: str, + description: str, + image: str, + name: str, + region: str): + """ + :param str account_id: Account identifier of the AMI. + :param str description: Description of the AMI. + :param str image: Identifier of the AMI. + :param str name: Name of the AMI. + :param str region: Region of the AMI. + """ + pulumi.set(__self__, "account_id", account_id) + pulumi.set(__self__, "description", description) + pulumi.set(__self__, "image", image) + pulumi.set(__self__, "name", name) + pulumi.set(__self__, "region", region) + + @property + @pulumi.getter(name="accountId") + def account_id(self) -> str: + """ + Account identifier of the AMI. + """ + return pulumi.get(self, "account_id") + + @property + @pulumi.getter + def description(self) -> str: + """ + Description of the AMI. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def image(self) -> str: + """ + Identifier of the AMI. + """ + return pulumi.get(self, "image") + + @property + @pulumi.getter + def name(self) -> str: + """ + Name of the AMI. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def region(self) -> str: + """ + Region of the AMI. + """ + return pulumi.get(self, "region") + + @pulumi.output_type class GetImagePipelineImageTestsConfigurationResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/lb/outputs.py b/sdk/python/pulumi_aws/lb/outputs.py index a433b6c1a65..31e1f466045 100644 --- a/sdk/python/pulumi_aws/lb/outputs.py +++ b/sdk/python/pulumi_aws/lb/outputs.py @@ -41,6 +41,9 @@ 'GetListenerDefaultActionAuthenticateCognitoResult', 'GetListenerDefaultActionAuthenticateOidcResult', 'GetListenerDefaultActionFixedResponseResult', + 'GetListenerDefaultActionForwardResult', + 'GetListenerDefaultActionForwardStickinessResult', + 'GetListenerDefaultActionForwardTargetGroupResult', 'GetListenerDefaultActionRedirectResult', 'GetLoadBalancerAccessLogsResult', 'GetLoadBalancerSubnetMappingResult', @@ -1668,6 +1671,7 @@ def __init__(__self__, *, authenticate_cognitos: Sequence['outputs.GetListenerDefaultActionAuthenticateCognitoResult'], authenticate_oidcs: Sequence['outputs.GetListenerDefaultActionAuthenticateOidcResult'], fixed_responses: Sequence['outputs.GetListenerDefaultActionFixedResponseResult'], + forwards: Sequence['outputs.GetListenerDefaultActionForwardResult'], order: int, redirects: Sequence['outputs.GetListenerDefaultActionRedirectResult'], target_group_arn: str, @@ -1675,6 +1679,7 @@ def __init__(__self__, *, pulumi.set(__self__, "authenticate_cognitos", authenticate_cognitos) pulumi.set(__self__, "authenticate_oidcs", authenticate_oidcs) pulumi.set(__self__, "fixed_responses", fixed_responses) + pulumi.set(__self__, "forwards", forwards) pulumi.set(__self__, "order", order) pulumi.set(__self__, "redirects", redirects) pulumi.set(__self__, "target_group_arn", target_group_arn) @@ -1695,6 +1700,11 @@ def authenticate_oidcs(self) -> Sequence['outputs.GetListenerDefaultActionAuthen def fixed_responses(self) -> Sequence['outputs.GetListenerDefaultActionFixedResponseResult']: return pulumi.get(self, "fixed_responses") + @property + @pulumi.getter + def forwards(self) -> Sequence['outputs.GetListenerDefaultActionForwardResult']: + return pulumi.get(self, "forwards") + @property @pulumi.getter def order(self) -> int: @@ -1885,6 +1895,69 @@ def status_code(self) -> str: return pulumi.get(self, "status_code") +@pulumi.output_type +class GetListenerDefaultActionForwardResult(dict): + def __init__(__self__, *, + stickinesses: Sequence['outputs.GetListenerDefaultActionForwardStickinessResult'], + target_groups: Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']): + pulumi.set(__self__, "stickinesses", stickinesses) + pulumi.set(__self__, "target_groups", target_groups) + + @property + @pulumi.getter + def stickinesses(self) -> Sequence['outputs.GetListenerDefaultActionForwardStickinessResult']: + return pulumi.get(self, "stickinesses") + + @property + @pulumi.getter(name="targetGroups") + def target_groups(self) -> Sequence['outputs.GetListenerDefaultActionForwardTargetGroupResult']: + return pulumi.get(self, "target_groups") + + +@pulumi.output_type +class GetListenerDefaultActionForwardStickinessResult(dict): + def __init__(__self__, *, + duration: int, + enabled: bool): + pulumi.set(__self__, "duration", duration) + pulumi.set(__self__, "enabled", enabled) + + @property + @pulumi.getter + def duration(self) -> int: + return pulumi.get(self, "duration") + + @property + @pulumi.getter + def enabled(self) -> bool: + return pulumi.get(self, "enabled") + + +@pulumi.output_type +class GetListenerDefaultActionForwardTargetGroupResult(dict): + def __init__(__self__, *, + arn: str, + weight: int): + """ + :param str arn: The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + pulumi.set(__self__, "arn", arn) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The arn of the listener. Required if `load_balancer_arn` and `port` is not set. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter + def weight(self) -> int: + return pulumi.get(self, "weight") + + @pulumi.output_type class GetListenerDefaultActionRedirectResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/networkfirewall/rule_group.py b/sdk/python/pulumi_aws/networkfirewall/rule_group.py index 2aef21f89ca..33d17c32161 100644 --- a/sdk/python/pulumi_aws/networkfirewall/rule_group.py +++ b/sdk/python/pulumi_aws/networkfirewall/rule_group.py @@ -31,7 +31,7 @@ def __init__(__self__, Provides an AWS Network Firewall Rule Group Resource ## Example Usage - ### Stateful Inspection + ### Stateful Inspection for denying access to a domain ```python import pulumi @@ -54,7 +54,46 @@ def __init__(__self__, }, type="STATEFUL") ``` - ### Stateful Inspection compatible with intrusion detection systems like Snort or Suricata + ### Stateful Inspection for permitting packets from a source IP address + + ```python + import pulumi + import pulumi_aws as aws + + ips = [ + "1.1.1.1/32", + "1.0.0.1/32", + ] + example = aws.networkfirewall.RuleGroup("example", + capacity=50, + description="Permits http traffic from source", + type="STATEFUL", + rule_group=aws.networkfirewall.RuleGroupRuleGroupArgs( + rules_source=aws.networkfirewall.RuleGroupRuleGroupRulesSourceArgs( + dynamic=[{ + "forEach": ips, + "content": [{ + "action": "PASS", + "header": [{ + "destination": "ANY", + "destinationPort": "ANY", + "protocol": "HTTP", + "direction": "ANY", + "sourcePort": "ANY", + "source": stateful_rule["value"], + }], + "ruleOption": [{ + "keyword": "sid:1", + }], + }], + }], + ), + ), + tags={ + "Name": "permit HTTP from source", + }) + ``` + ### Stateful Inspection for blocking packets from going to an intended destination ```python import pulumi diff --git a/sdk/python/pulumi_aws/outputs.py b/sdk/python/pulumi_aws/outputs.py index 9ccd0f811b6..04362b142b6 100644 --- a/sdk/python/pulumi_aws/outputs.py +++ b/sdk/python/pulumi_aws/outputs.py @@ -158,6 +158,7 @@ def __init__(__self__, *, elastictranscoder: Optional[str] = None, elb: Optional[str] = None, emr: Optional[str] = None, + emrcontainers: Optional[str] = None, es: Optional[str] = None, firehose: Optional[str] = None, fms: Optional[str] = None, @@ -366,6 +367,8 @@ def __init__(__self__, *, pulumi.set(__self__, "elb", elb) if emr is not None: pulumi.set(__self__, "emr", emr) + if emrcontainers is not None: + pulumi.set(__self__, "emrcontainers", emrcontainers) if es is not None: pulumi.set(__self__, "es", es) if firehose is not None: @@ -841,6 +844,11 @@ def elb(self) -> Optional[str]: def emr(self) -> Optional[str]: return pulumi.get(self, "emr") + @property + @pulumi.getter + def emrcontainers(self) -> Optional[str]: + return pulumi.get(self, "emrcontainers") + @property @pulumi.getter def es(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/sagemaker/__init__.py b/sdk/python/pulumi_aws/sagemaker/__init__.py index 72f559e1df9..07a1ce5e916 100644 --- a/sdk/python/pulumi_aws/sagemaker/__init__.py +++ b/sdk/python/pulumi_aws/sagemaker/__init__.py @@ -3,6 +3,7 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .app_image_config import * from .code_repository import * from .domain import * from .endpoint import * @@ -30,7 +31,9 @@ def version(self): return Module._version def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: - if typ == "aws:sagemaker/codeRepository:CodeRepository": + if typ == "aws:sagemaker/appImageConfig:AppImageConfig": + return AppImageConfig(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:sagemaker/codeRepository:CodeRepository": return CodeRepository(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:sagemaker/domain:Domain": return Domain(name, pulumi.ResourceOptions(urn=urn)) @@ -57,6 +60,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: _module_instance = Module() + pulumi.runtime.register_resource_module("aws", "sagemaker/appImageConfig", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/codeRepository", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/domain", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/endpoint", _module_instance) diff --git a/sdk/python/pulumi_aws/sagemaker/_inputs.py b/sdk/python/pulumi_aws/sagemaker/_inputs.py index 0dbdb8a4379..a8f25824b59 100644 --- a/sdk/python/pulumi_aws/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws/sagemaker/_inputs.py @@ -9,6 +9,9 @@ from .. import _utilities, _tables __all__ = [ + 'AppImageConfigKernelGatewayImageConfigArgs', + 'AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs', + 'AppImageConfigKernelGatewayImageConfigKernelSpecArgs', 'CodeRepositoryGitConfigArgs', 'DomainDefaultUserSettingsArgs', 'DomainDefaultUserSettingsJupyterServerAppSettingsArgs', @@ -45,12 +48,148 @@ 'UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs', ] +@pulumi.input_type +class AppImageConfigKernelGatewayImageConfigArgs: + def __init__(__self__, *, + kernel_spec: pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs'], + file_system_config: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs']] = None): + """ + :param pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs'] kernel_spec: The default branch for the Git repository. See Kernel Spec details below. + :param pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs'] file_system_config: The URL where the Git repository is located. See File System Config details below. + """ + pulumi.set(__self__, "kernel_spec", kernel_spec) + if file_system_config is not None: + pulumi.set(__self__, "file_system_config", file_system_config) + + @property + @pulumi.getter(name="kernelSpec") + def kernel_spec(self) -> pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs']: + """ + The default branch for the Git repository. See Kernel Spec details below. + """ + return pulumi.get(self, "kernel_spec") + + @kernel_spec.setter + def kernel_spec(self, value: pulumi.Input['AppImageConfigKernelGatewayImageConfigKernelSpecArgs']): + pulumi.set(self, "kernel_spec", value) + + @property + @pulumi.getter(name="fileSystemConfig") + def file_system_config(self) -> Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs']]: + """ + The URL where the Git repository is located. See File System Config details below. + """ + return pulumi.get(self, "file_system_config") + + @file_system_config.setter + def file_system_config(self, value: Optional[pulumi.Input['AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs']]): + pulumi.set(self, "file_system_config", value) + + +@pulumi.input_type +class AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs: + def __init__(__self__, *, + default_gid: Optional[pulumi.Input[int]] = None, + default_uid: Optional[pulumi.Input[int]] = None, + mount_path: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] default_gid: The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + :param pulumi.Input[int] default_uid: The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + :param pulumi.Input[str] mount_path: The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + """ + if default_gid is not None: + pulumi.set(__self__, "default_gid", default_gid) + if default_uid is not None: + pulumi.set(__self__, "default_uid", default_uid) + if mount_path is not None: + pulumi.set(__self__, "mount_path", mount_path) + + @property + @pulumi.getter(name="defaultGid") + def default_gid(self) -> Optional[pulumi.Input[int]]: + """ + The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + """ + return pulumi.get(self, "default_gid") + + @default_gid.setter + def default_gid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "default_gid", value) + + @property + @pulumi.getter(name="defaultUid") + def default_uid(self) -> Optional[pulumi.Input[int]]: + """ + The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + """ + return pulumi.get(self, "default_uid") + + @default_uid.setter + def default_uid(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "default_uid", value) + + @property + @pulumi.getter(name="mountPath") + def mount_path(self) -> Optional[pulumi.Input[str]]: + """ + The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + """ + return pulumi.get(self, "mount_path") + + @mount_path.setter + def mount_path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "mount_path", value) + + +@pulumi.input_type +class AppImageConfigKernelGatewayImageConfigKernelSpecArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + display_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] name: The name of the kernel. + :param pulumi.Input[str] display_name: The display name of the kernel. + """ + pulumi.set(__self__, "name", name) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + The name of the kernel. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[pulumi.Input[str]]: + """ + The display name of the kernel. + """ + return pulumi.get(self, "display_name") + + @display_name.setter + def display_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "display_name", value) + + @pulumi.input_type class CodeRepositoryGitConfigArgs: def __init__(__self__, *, repository_url: pulumi.Input[str], branch: Optional[pulumi.Input[str]] = None, secret_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] repository_url: The URL where the Git repository is located. + :param pulumi.Input[str] branch: The default branch for the Git repository. + :param pulumi.Input[str] secret_arn: The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + """ pulumi.set(__self__, "repository_url", repository_url) if branch is not None: pulumi.set(__self__, "branch", branch) @@ -60,6 +199,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="repositoryUrl") def repository_url(self) -> pulumi.Input[str]: + """ + The URL where the Git repository is located. + """ return pulumi.get(self, "repository_url") @repository_url.setter @@ -69,6 +211,9 @@ def repository_url(self, value: pulumi.Input[str]): @property @pulumi.getter def branch(self) -> Optional[pulumi.Input[str]]: + """ + The default branch for the Git repository. + """ return pulumi.get(self, "branch") @branch.setter @@ -78,6 +223,9 @@ def branch(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="secretArn") def secret_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + """ return pulumi.get(self, "secret_arn") @secret_arn.setter diff --git a/sdk/python/pulumi_aws/sagemaker/app_image_config.py b/sdk/python/pulumi_aws/sagemaker/app_image_config.py new file mode 100644 index 00000000000..ece24fe1eb5 --- /dev/null +++ b/sdk/python/pulumi_aws/sagemaker/app_image_config.py @@ -0,0 +1,156 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['AppImageConfig'] + + +class AppImageConfig(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + app_image_config_name: Optional[pulumi.Input[str]] = None, + kernel_gateway_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides a Sagemaker App Image Config resource. + + ## Example Usage + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.sagemaker.AppImageConfig("test", + app_image_config_name="example", + kernel_gateway_image_config=aws.sagemaker.AppImageConfigKernelGatewayImageConfigArgs( + kernel_spec=aws.sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs( + name="example", + ), + )) + ``` + ### Default File System Config + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.sagemaker.AppImageConfig("test", + app_image_config_name="example", + kernel_gateway_image_config=aws.sagemaker.AppImageConfigKernelGatewayImageConfigArgs( + file_system_config={}, + kernel_spec=aws.sagemaker.AppImageConfigKernelGatewayImageConfigKernelSpecArgs( + name="example", + ), + )) + ``` + + ## Import + + Sagemaker App Image Configs can be imported using the `name`, e.g. + + ```sh + $ pulumi import aws:sagemaker/appImageConfig:AppImageConfig example example + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_image_config_name: The name of the App Image Config. + :param pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']] kernel_gateway_image_config: The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if app_image_config_name is None and not opts.urn: + raise TypeError("Missing required property 'app_image_config_name'") + __props__['app_image_config_name'] = app_image_config_name + __props__['kernel_gateway_image_config'] = kernel_gateway_image_config + __props__['arn'] = None + super(AppImageConfig, __self__).__init__( + 'aws:sagemaker/appImageConfig:AppImageConfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + app_image_config_name: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + kernel_gateway_image_config: Optional[pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']]] = None) -> 'AppImageConfig': + """ + Get an existing AppImageConfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_image_config_name: The name of the App Image Config. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + :param pulumi.Input[pulumi.InputType['AppImageConfigKernelGatewayImageConfigArgs']] kernel_gateway_image_config: The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["app_image_config_name"] = app_image_config_name + __props__["arn"] = arn + __props__["kernel_gateway_image_config"] = kernel_gateway_image_config + return AppImageConfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="appImageConfigName") + def app_image_config_name(self) -> pulumi.Output[str]: + """ + The name of the App Image Config. + """ + return pulumi.get(self, "app_image_config_name") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this App Image Config. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="kernelGatewayImageConfig") + def kernel_gateway_image_config(self) -> pulumi.Output[Optional['outputs.AppImageConfigKernelGatewayImageConfig']]: + """ + The configuration for the file system and kernels in a SageMaker image running as a KernelGateway app. See Kernel Gateway Image Config details below. + """ + return pulumi.get(self, "kernel_gateway_image_config") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/sagemaker/code_repository.py b/sdk/python/pulumi_aws/sagemaker/code_repository.py index a8c8d5e514c..e6676eb64b0 100644 --- a/sdk/python/pulumi_aws/sagemaker/code_repository.py +++ b/sdk/python/pulumi_aws/sagemaker/code_repository.py @@ -23,9 +23,56 @@ def __init__(__self__, __name__=None, __opts__=None): """ - Create a CodeRepository resource with the given unique name, props, and options. + Provides a Sagemaker Code Repository resource. + + ## Example Usage + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.sagemaker.CodeRepository("example", + code_repository_name="example", + git_config=aws.sagemaker.CodeRepositoryGitConfigArgs( + repository_url="https://github.com/hashicorp/terraform-provider-aws.git", + )) + ``` + ### Example with Secret + + ```python + import pulumi + import json + import pulumi_aws as aws + + example_secret = aws.secretsmanager.Secret("exampleSecret") + example_secret_version = aws.secretsmanager.SecretVersion("exampleSecretVersion", + secret_id=example_secret.id, + secret_string=json.dumps({ + "username": "example", + "password": "example", + })) + example_code_repository = aws.sagemaker.CodeRepository("exampleCodeRepository", + code_repository_name="example", + git_config=aws.sagemaker.CodeRepositoryGitConfigArgs( + repository_url="https://github.com/hashicorp/terraform-provider-aws.git", + secret_arn=example_secret.arn, + ), + opts=pulumi.ResourceOptions(depends_on=[example_secret_version])) + ``` + + ## Import + + Sagemaker Code Repositories can be imported using the `name`, e.g. + + ```sh + $ pulumi import aws:sagemaker/codeRepository:CodeRepository test_code_repository my-code-repo + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] code_repository_name: The name of the Code Repository (must be unique). + :param pulumi.Input[pulumi.InputType['CodeRepositoryGitConfigArgs']] git_config: Specifies details about the repository. see Git Config details below. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -71,6 +118,9 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + :param pulumi.Input[str] code_repository_name: The name of the Code Repository (must be unique). + :param pulumi.Input[pulumi.InputType['CodeRepositoryGitConfigArgs']] git_config: Specifies details about the repository. see Git Config details below. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -84,16 +134,25 @@ def get(resource_name: str, @property @pulumi.getter def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this Code Repository. + """ return pulumi.get(self, "arn") @property @pulumi.getter(name="codeRepositoryName") def code_repository_name(self) -> pulumi.Output[str]: + """ + The name of the Code Repository (must be unique). + """ return pulumi.get(self, "code_repository_name") @property @pulumi.getter(name="gitConfig") def git_config(self) -> pulumi.Output['outputs.CodeRepositoryGitConfig']: + """ + Specifies details about the repository. see Git Config details below. + """ return pulumi.get(self, "git_config") def translate_output_property(self, prop): diff --git a/sdk/python/pulumi_aws/sagemaker/outputs.py b/sdk/python/pulumi_aws/sagemaker/outputs.py index b564271faa2..6f9d450981d 100644 --- a/sdk/python/pulumi_aws/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws/sagemaker/outputs.py @@ -10,6 +10,9 @@ from . import outputs __all__ = [ + 'AppImageConfigKernelGatewayImageConfig', + 'AppImageConfigKernelGatewayImageConfigFileSystemConfig', + 'AppImageConfigKernelGatewayImageConfigKernelSpec', 'CodeRepositoryGitConfig', 'DomainDefaultUserSettings', 'DomainDefaultUserSettingsJupyterServerAppSettings', @@ -46,12 +49,129 @@ 'UserProfileUserSettingsTensorBoardAppSettingsDefaultResourceSpec', ] +@pulumi.output_type +class AppImageConfigKernelGatewayImageConfig(dict): + def __init__(__self__, *, + kernel_spec: 'outputs.AppImageConfigKernelGatewayImageConfigKernelSpec', + file_system_config: Optional['outputs.AppImageConfigKernelGatewayImageConfigFileSystemConfig'] = None): + """ + :param 'AppImageConfigKernelGatewayImageConfigKernelSpecArgs' kernel_spec: The default branch for the Git repository. See Kernel Spec details below. + :param 'AppImageConfigKernelGatewayImageConfigFileSystemConfigArgs' file_system_config: The URL where the Git repository is located. See File System Config details below. + """ + pulumi.set(__self__, "kernel_spec", kernel_spec) + if file_system_config is not None: + pulumi.set(__self__, "file_system_config", file_system_config) + + @property + @pulumi.getter(name="kernelSpec") + def kernel_spec(self) -> 'outputs.AppImageConfigKernelGatewayImageConfigKernelSpec': + """ + The default branch for the Git repository. See Kernel Spec details below. + """ + return pulumi.get(self, "kernel_spec") + + @property + @pulumi.getter(name="fileSystemConfig") + def file_system_config(self) -> Optional['outputs.AppImageConfigKernelGatewayImageConfigFileSystemConfig']: + """ + The URL where the Git repository is located. See File System Config details below. + """ + return pulumi.get(self, "file_system_config") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class AppImageConfigKernelGatewayImageConfigFileSystemConfig(dict): + def __init__(__self__, *, + default_gid: Optional[int] = None, + default_uid: Optional[int] = None, + mount_path: Optional[str] = None): + """ + :param int default_gid: The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + :param int default_uid: The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + :param str mount_path: The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + """ + if default_gid is not None: + pulumi.set(__self__, "default_gid", default_gid) + if default_uid is not None: + pulumi.set(__self__, "default_uid", default_uid) + if mount_path is not None: + pulumi.set(__self__, "mount_path", mount_path) + + @property + @pulumi.getter(name="defaultGid") + def default_gid(self) -> Optional[int]: + """ + The default POSIX group ID (GID). If not specified, defaults to `100`. Valid values are `0` and `100`. + """ + return pulumi.get(self, "default_gid") + + @property + @pulumi.getter(name="defaultUid") + def default_uid(self) -> Optional[int]: + """ + The default POSIX user ID (UID). If not specified, defaults to `1000`. Valid values are `0` and `1000`. + """ + return pulumi.get(self, "default_uid") + + @property + @pulumi.getter(name="mountPath") + def mount_path(self) -> Optional[str]: + """ + The path within the image to mount the user's EFS home directory. The directory should be empty. If not specified, defaults to `/home/sagemaker-user`. + """ + return pulumi.get(self, "mount_path") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class AppImageConfigKernelGatewayImageConfigKernelSpec(dict): + def __init__(__self__, *, + name: str, + display_name: Optional[str] = None): + """ + :param str name: The name of the kernel. + :param str display_name: The display name of the kernel. + """ + pulumi.set(__self__, "name", name) + if display_name is not None: + pulumi.set(__self__, "display_name", display_name) + + @property + @pulumi.getter + def name(self) -> str: + """ + The name of the kernel. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> Optional[str]: + """ + The display name of the kernel. + """ + return pulumi.get(self, "display_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class CodeRepositoryGitConfig(dict): def __init__(__self__, *, repository_url: str, branch: Optional[str] = None, secret_arn: Optional[str] = None): + """ + :param str repository_url: The URL where the Git repository is located. + :param str branch: The default branch for the Git repository. + :param str secret_arn: The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + """ pulumi.set(__self__, "repository_url", repository_url) if branch is not None: pulumi.set(__self__, "branch", branch) @@ -61,16 +181,25 @@ def __init__(__self__, *, @property @pulumi.getter(name="repositoryUrl") def repository_url(self) -> str: + """ + The URL where the Git repository is located. + """ return pulumi.get(self, "repository_url") @property @pulumi.getter def branch(self) -> Optional[str]: + """ + The default branch for the Git repository. + """ return pulumi.get(self, "branch") @property @pulumi.getter(name="secretArn") def secret_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that contains the credentials used to access the git repository. The secret must have a staging label of AWSCURRENT and must be in the following format: `{"username": UserName, "password": Password}` + """ return pulumi.get(self, "secret_arn") def _translate_property(self, prop): diff --git a/sdk/python/pulumi_aws/ses/_inputs.py b/sdk/python/pulumi_aws/ses/_inputs.py index c27f2a80c40..c95a76f3875 100644 --- a/sdk/python/pulumi_aws/ses/_inputs.py +++ b/sdk/python/pulumi_aws/ses/_inputs.py @@ -30,7 +30,7 @@ def __init__(__self__, *, """ :param pulumi.Input[str] default_value: The default value for the event :param pulumi.Input[str] dimension_name: The name for the dimension - :param pulumi.Input[str] value_source: The source for the value. It can be either `"messageTag"` or `"emailHeader"` + :param pulumi.Input[str] value_source: The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ pulumi.set(__self__, "default_value", default_value) pulumi.set(__self__, "dimension_name", dimension_name) @@ -64,7 +64,7 @@ def dimension_name(self, value: pulumi.Input[str]): @pulumi.getter(name="valueSource") def value_source(self) -> pulumi.Input[str]: """ - The source for the value. It can be either `"messageTag"` or `"emailHeader"` + The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ return pulumi.get(self, "value_source") diff --git a/sdk/python/pulumi_aws/ses/outputs.py b/sdk/python/pulumi_aws/ses/outputs.py index 6639193fe26..417e5c5415a 100644 --- a/sdk/python/pulumi_aws/ses/outputs.py +++ b/sdk/python/pulumi_aws/ses/outputs.py @@ -30,7 +30,7 @@ def __init__(__self__, *, """ :param str default_value: The default value for the event :param str dimension_name: The name for the dimension - :param str value_source: The source for the value. It can be either `"messageTag"` or `"emailHeader"` + :param str value_source: The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ pulumi.set(__self__, "default_value", default_value) pulumi.set(__self__, "dimension_name", dimension_name) @@ -56,7 +56,7 @@ def dimension_name(self) -> str: @pulumi.getter(name="valueSource") def value_source(self) -> str: """ - The source for the value. It can be either `"messageTag"` or `"emailHeader"` + The source for the value. May be any of `"messageTag"`, `"emailHeader"` or `"linkTag"`. """ return pulumi.get(self, "value_source") diff --git a/sdk/python/pulumi_aws/ssm/_inputs.py b/sdk/python/pulumi_aws/ssm/_inputs.py index 524d59b133a..dc8f70a180b 100644 --- a/sdk/python/pulumi_aws/ssm/_inputs.py +++ b/sdk/python/pulumi_aws/ssm/_inputs.py @@ -774,7 +774,7 @@ def __init__(__self__, *, enable_non_security: Optional[pulumi.Input[bool]] = None): """ :param pulumi.Input[int] approve_after_days: The number of days after the release date of each patch matched by the rule the patch is marked as approved in the patch baseline. Valid Range: 0 to 100. - :param pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRulePatchFilterArgs']]] patch_filters: The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + :param pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRulePatchFilterArgs']]] patch_filters: The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. :param pulumi.Input[str] compliance_level: Defines the compliance level for patches approved by this rule. Valid compliance levels include the following: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, `INFORMATIONAL`, `UNSPECIFIED`. The default value is `UNSPECIFIED`. :param pulumi.Input[bool] enable_non_security: Boolean enabling the application of non-security updates. The default value is 'false'. Valid for Linux instances only. """ @@ -801,7 +801,7 @@ def approve_after_days(self, value: pulumi.Input[int]): @pulumi.getter(name="patchFilters") def patch_filters(self) -> pulumi.Input[Sequence[pulumi.Input['PatchBaselineApprovalRulePatchFilterArgs']]]: """ - The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. """ return pulumi.get(self, "patch_filters") diff --git a/sdk/python/pulumi_aws/ssm/outputs.py b/sdk/python/pulumi_aws/ssm/outputs.py index c7ef3e4205a..4a2e88c394c 100644 --- a/sdk/python/pulumi_aws/ssm/outputs.py +++ b/sdk/python/pulumi_aws/ssm/outputs.py @@ -649,7 +649,7 @@ def __init__(__self__, *, enable_non_security: Optional[bool] = None): """ :param int approve_after_days: The number of days after the release date of each patch matched by the rule the patch is marked as approved in the patch baseline. Valid Range: 0 to 100. - :param Sequence['PatchBaselineApprovalRulePatchFilterArgs'] patch_filters: The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + :param Sequence['PatchBaselineApprovalRulePatchFilterArgs'] patch_filters: The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. :param str compliance_level: Defines the compliance level for patches approved by this rule. Valid compliance levels include the following: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`, `INFORMATIONAL`, `UNSPECIFIED`. The default value is `UNSPECIFIED`. :param bool enable_non_security: Boolean enabling the application of non-security updates. The default value is 'false'. Valid for Linux instances only. """ @@ -672,7 +672,7 @@ def approve_after_days(self) -> int: @pulumi.getter(name="patchFilters") def patch_filters(self) -> Sequence['outputs.PatchBaselineApprovalRulePatchFilter']: """ - The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. + The patch filter group that defines the criteria for the rule. Up to 5 patch filters can be specified per approval rule using Key/Value pairs. Valid Keys are `PATCH_SET | PRODUCT | CLASSIFICATION | MSRC_SEVERITY | PATCH_ID`. Valid combinations of these Keys and the `operating_system` value can be found in the [SSM DescribePatchProperties API Reference](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchProperties.html). Valid Values are exact values for the patch property given as the key, or a wildcard `*`, which matches all values. """ return pulumi.get(self, "patch_filters") diff --git a/sdk/python/pulumi_aws/transfer/user.py b/sdk/python/pulumi_aws/transfer/user.py index d66d3b0b631..498392c96ab 100644 --- a/sdk/python/pulumi_aws/transfer/user.py +++ b/sdk/python/pulumi_aws/transfer/user.py @@ -72,7 +72,12 @@ def __init__(__self__, foo_user = aws.transfer.User("fooUser", server_id=foo_server.id, user_name="tftestuser", - role=foo_role.arn) + role=foo_role.arn, + home_directory_type="LOGICAL", + home_directory_mappings=[aws.transfer.UserHomeDirectoryMappingArgs( + entry="/test.pdf", + target="/bucket3/test-path/tftestuser.pdf", + )]) ``` ## Import