diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json
index c3084996e24..8bdcb24a89a 100644
--- a/provider/cmd/pulumi-resource-aws/schema.json
+++ b/provider/cmd/pulumi-resource-aws/schema.json
@@ -170,6 +170,7 @@
"servicediscovery": "ServiceDiscovery",
"servicequotas": "ServiceQuotas",
"ses": "Ses",
+ "sesv2": "SesV2",
"sfn": "Sfn",
"shield": "Shield",
"signer": "Signer",
@@ -3226,6 +3227,23 @@
}
}
},
+ "aws:amp/WorkspaceLoggingConfiguration:WorkspaceLoggingConfiguration": {
+ "properties": {
+ "logGroupArn": {
+ "type": "string",
+ "description": "The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "logGroupArn"
+ ]
+ },
"aws:amplify/AppAutoBranchCreationConfig:AppAutoBranchCreationConfig": {
"properties": {
"basicAuthCredentials": {
@@ -4232,7 +4250,7 @@
"additionalProperties": {
"type": "string"
},
- "description": "Key-value map. The key of ths map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.\nSee the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.\n",
+ "description": "Key-value map. The key of this map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.\nSee the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.\n",
"language": {
"python": {
"mapCase": false
@@ -30031,6 +30049,175 @@
"triggerTargetArn"
]
},
+ "aws:codepipeline/CustomActionTypeConfigurationProperty:CustomActionTypeConfigurationProperty": {
+ "properties": {
+ "description": {
+ "type": "string",
+ "description": "The description of the action configuration property.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "key": {
+ "type": "boolean",
+ "description": "Whether the configuration property is a key.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the action configuration property.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "queryable": {
+ "type": "boolean",
+ "description": "Indicates that the property will be used in conjunction with PollForJobs.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "required": {
+ "type": "boolean",
+ "description": "Whether the configuration property is a required value.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "secret": {
+ "type": "boolean",
+ "description": "Whether the configuration property is secret.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of the configuration property. Valid values: `String`, `Number`, `Boolean`\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "key",
+ "name",
+ "required",
+ "secret"
+ ]
+ },
+ "aws:codepipeline/CustomActionTypeInputArtifactDetails:CustomActionTypeInputArtifactDetails": {
+ "properties": {
+ "maximumCount": {
+ "type": "integer",
+ "description": "The maximum number of artifacts allowed for the action type. Min: 0, Max: 5\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "minimumCount": {
+ "type": "integer",
+ "description": "The minimum number of artifacts allowed for the action type. Min: 0, Max: 5\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "maximumCount",
+ "minimumCount"
+ ]
+ },
+ "aws:codepipeline/CustomActionTypeOutputArtifactDetails:CustomActionTypeOutputArtifactDetails": {
+ "properties": {
+ "maximumCount": {
+ "type": "integer",
+ "description": "The maximum number of artifacts allowed for the action type. Min: 0, Max: 5\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "minimumCount": {
+ "type": "integer",
+ "description": "The minimum number of artifacts allowed for the action type. Min: 0, Max: 5\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "maximumCount",
+ "minimumCount"
+ ]
+ },
+ "aws:codepipeline/CustomActionTypeSettings:CustomActionTypeSettings": {
+ "properties": {
+ "entityUrlTemplate": {
+ "type": "string",
+ "description": "The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "executionUrlTemplate": {
+ "type": "string",
+ "description": "The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "revisionUrlTemplate": {
+ "type": "string",
+ "description": "The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thirdPartyConfigurationUrl": {
+ "type": "string",
+ "description": "The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"aws:codepipeline/PipelineArtifactStore:PipelineArtifactStore": {
"properties": {
"encryptionKey": {
@@ -31647,6 +31834,26 @@
"enabled"
]
},
+ "aws:cognito/UserPoolUserAttributeUpdateSettings:UserPoolUserAttributeUpdateSettings": {
+ "properties": {
+ "attributesRequireVerificationBeforeUpdates": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "attributesRequireVerificationBeforeUpdates"
+ ]
+ },
"aws:cognito/UserPoolUserPoolAddOns:UserPoolUserPoolAddOns": {
"properties": {
"advancedSecurityMode": {
@@ -31855,21 +32062,12 @@
}
}
},
- "aws:comprehend/EntityRecognizerInputDataConfig:EntityRecognizerInputDataConfig": {
+ "aws:comprehend/DocumentClassifierInputDataConfig:DocumentClassifierInputDataConfig": {
"properties": {
- "annotations": {
- "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigAnnotations:EntityRecognizerInputDataConfigAnnotations",
- "description": "Specifies location of the document annotation data.\nSee the `annotations` Configuration Block section below.\nOne of `annotations` or `entity_list` is required.\n",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
"augmentedManifests": {
"type": "array",
"items": {
- "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigAugmentedManifest:EntityRecognizerInputDataConfigAugmentedManifest"
+ "$ref": "#/types/aws:comprehend/DocumentClassifierInputDataConfigAugmentedManifest:DocumentClassifierInputDataConfigAugmentedManifest"
},
"description": "List of training datasets produced by Amazon SageMaker Ground Truth.\nUsed if `data_format` is `AUGMENTED_MANIFEST`.\nSee the `augmented_manifests` Configuration Block section below.\n",
"language": {
@@ -31887,47 +32085,18 @@
}
}
},
- "documents": {
- "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigDocuments:EntityRecognizerInputDataConfigDocuments",
- "description": "Specifies a collection of training documents.\nUsed if `data_format` is `COMPREHEND_CSV`.\nSee the `documents` Configuration Block section below.\n",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "entityList": {
- "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigEntityList:EntityRecognizerInputDataConfigEntityList",
- "description": "Specifies location of the entity list data.\nSee the `entity_list` Configuration Block section below.\nOne of `entity_list` or `annotations` is required.\n",
+ "labelDelimiter": {
+ "type": "string",
+ "description": "Delimiter between labels when training a multi-label classifier.\nValid values are `|`, `~`, `!`, `@`, `#`, `$`, `%`, `^`, `*`, `-`, `_`, `+`, `=`, `\\`, `:`, `;`, `\u003e`, `?`, `/`, `\u003cspace\u003e`, and `\u003ctab\u003e`.\nDefault is `|`.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "entityTypes": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigEntityType:EntityRecognizerInputDataConfigEntityType"
- },
- "description": "Set of entity types to be recognized.\nHas a maximum of 25 items.\nSee the `entity_types` Configuration Block section below.\n",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object",
- "required": [
- "entityTypes"
- ]
- },
- "aws:comprehend/EntityRecognizerInputDataConfigAnnotations:EntityRecognizerInputDataConfigAnnotations": {
- "properties": {
"s3Uri": {
"type": "string",
- "description": "Location of entity list.\n",
+ "description": "Destination path for the output documents.\nThe full path to the output file will be returned in `output_s3_uri`.\n",
"language": {
"python": {
"mapCase": false
@@ -31944,11 +32113,15 @@
}
},
"type": "object",
- "required": [
- "s3Uri"
- ]
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "labelDelimiter"
+ ]
+ }
+ }
},
- "aws:comprehend/EntityRecognizerInputDataConfigAugmentedManifest:EntityRecognizerInputDataConfigAugmentedManifest": {
+ "aws:comprehend/DocumentClassifierInputDataConfigAugmentedManifest:DocumentClassifierInputDataConfigAugmentedManifest": {
"properties": {
"annotationDataS3Uri": {
"type": "string",
@@ -31982,7 +32155,7 @@
},
"s3Uri": {
"type": "string",
- "description": "Location of entity list.\n",
+ "description": "Destination path for the output documents.\nThe full path to the output file will be returned in `output_s3_uri`.\n",
"language": {
"python": {
"mapCase": false
@@ -32014,45 +32187,29 @@
"s3Uri"
]
},
- "aws:comprehend/EntityRecognizerInputDataConfigDocuments:EntityRecognizerInputDataConfigDocuments": {
+ "aws:comprehend/DocumentClassifierOutputDataConfig:DocumentClassifierOutputDataConfig": {
"properties": {
- "inputFormat": {
+ "kmsKeyId": {
"type": "string",
- "description": "Specifies how the input files should be processed.\nOne of `ONE_DOC_PER_LINE` or `ONE_DOC_PER_FILE`.\n",
+ "description": "KMS Key used to encrypt the output documents.\nCan be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "s3Uri": {
+ "outputS3Uri": {
"type": "string",
- "description": "Location of entity list.\n",
+ "description": "Full path for the output documents.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "testS3Uri": {
- "type": "string",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object",
- "required": [
- "s3Uri"
- ]
- },
- "aws:comprehend/EntityRecognizerInputDataConfigEntityList:EntityRecognizerInputDataConfigEntityList": {
- "properties": {
"s3Uri": {
"type": "string",
- "description": "Location of entity list.\n",
+ "description": "Destination path for the output documents.\nThe full path to the output file will be returned in `output_s3_uri`.\n",
"language": {
"python": {
"mapCase": false
@@ -32063,26 +32220,277 @@
"type": "object",
"required": [
"s3Uri"
- ]
- },
- "aws:comprehend/EntityRecognizerInputDataConfigEntityType:EntityRecognizerInputDataConfigEntityType": {
- "properties": {
- "type": {
- "type": "string",
- "description": "An entity type to be matched by the Entity Recognizer.\nCannot contain a newline (`\\n`), carriage return (`\\r`), or tab (`\\t`).\n",
- "language": {
- "python": {
- "mapCase": false
- }
- }
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "outputS3Uri",
+ "s3Uri"
+ ]
}
- },
- "type": "object",
- "required": [
- "type"
- ]
+ }
},
- "aws:comprehend/EntityRecognizerVpcConfig:EntityRecognizerVpcConfig": {
+ "aws:comprehend/DocumentClassifierVpcConfig:DocumentClassifierVpcConfig": {
+ "properties": {
+ "securityGroupIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of security group IDs.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "subnets": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of VPC subnets.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "securityGroupIds",
+ "subnets"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfig:EntityRecognizerInputDataConfig": {
+ "properties": {
+ "annotations": {
+ "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigAnnotations:EntityRecognizerInputDataConfigAnnotations",
+ "description": "Specifies location of the document annotation data.\nSee the `annotations` Configuration Block section below.\nOne of `annotations` or `entity_list` is required.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "augmentedManifests": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigAugmentedManifest:EntityRecognizerInputDataConfigAugmentedManifest"
+ },
+ "description": "List of training datasets produced by Amazon SageMaker Ground Truth.\nUsed if `data_format` is `AUGMENTED_MANIFEST`.\nSee the `augmented_manifests` Configuration Block section below.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "dataFormat": {
+ "type": "string",
+ "description": "The format for the training data.\nOne of `COMPREHEND_CSV` or `AUGMENTED_MANIFEST`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "documents": {
+ "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigDocuments:EntityRecognizerInputDataConfigDocuments",
+ "description": "Specifies a collection of training documents.\nUsed if `data_format` is `COMPREHEND_CSV`.\nSee the `documents` Configuration Block section below.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "entityList": {
+ "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigEntityList:EntityRecognizerInputDataConfigEntityList",
+ "description": "Specifies location of the entity list data.\nSee the `entity_list` Configuration Block section below.\nOne of `entity_list` or `annotations` is required.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "entityTypes": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:comprehend/EntityRecognizerInputDataConfigEntityType:EntityRecognizerInputDataConfigEntityType"
+ },
+ "description": "Set of entity types to be recognized.\nHas a maximum of 25 items.\nSee the `entity_types` Configuration Block section below.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "entityTypes"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfigAnnotations:EntityRecognizerInputDataConfigAnnotations": {
+ "properties": {
+ "s3Uri": {
+ "type": "string",
+ "description": "Location of entity list.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "testS3Uri": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "s3Uri"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfigAugmentedManifest:EntityRecognizerInputDataConfigAugmentedManifest": {
+ "properties": {
+ "annotationDataS3Uri": {
+ "type": "string",
+ "description": "Location of annotation files.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "attributeNames": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The JSON attribute that contains the annotations for the training documents.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "documentType": {
+ "type": "string",
+ "description": "Type of augmented manifest.\nOne of `PLAIN_TEXT_DOCUMENT` or `SEMI_STRUCTURED_DOCUMENT`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "s3Uri": {
+ "type": "string",
+ "description": "Location of entity list.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "sourceDocumentsS3Uri": {
+ "type": "string",
+ "description": "Location of source PDF files.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "split": {
+ "type": "string",
+ "description": "Purpose of data in augmented manifest.\nOne of `TRAIN` or `TEST`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "attributeNames",
+ "s3Uri"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfigDocuments:EntityRecognizerInputDataConfigDocuments": {
+ "properties": {
+ "inputFormat": {
+ "type": "string",
+ "description": "Specifies how the input files should be processed.\nOne of `ONE_DOC_PER_LINE` or `ONE_DOC_PER_FILE`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "s3Uri": {
+ "type": "string",
+ "description": "Location of entity list.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "testS3Uri": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "s3Uri"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfigEntityList:EntityRecognizerInputDataConfigEntityList": {
+ "properties": {
+ "s3Uri": {
+ "type": "string",
+ "description": "Location of entity list.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "s3Uri"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerInputDataConfigEntityType:EntityRecognizerInputDataConfigEntityType": {
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "An entity type to be matched by the Entity Recognizer.\nCannot contain a newline (`\\n`), carriage return (`\\r`), or tab (`\\t`).\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "type"
+ ]
+ },
+ "aws:comprehend/EntityRecognizerVpcConfig:EntityRecognizerVpcConfig": {
"properties": {
"securityGroupIds": {
"type": "array",
@@ -63376,6 +63784,237 @@
"values"
]
},
+ "aws:ec2/getVpcIamPoolsFilter:getVpcIamPoolsFilter": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "values": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "name",
+ "values"
+ ]
+ },
+ "aws:ec2/getVpcIamPoolsIpamPool:getVpcIamPoolsIpamPool": {
+ "properties": {
+ "addressFamily": {
+ "type": "string",
+ "description": "IP protocol assigned to this pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "allocationDefaultNetmaskLength": {
+ "type": "integer",
+ "description": "A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "allocationMaxNetmaskLength": {
+ "type": "integer",
+ "description": "The maximum netmask length that will be required for CIDR allocations in this pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "allocationMinNetmaskLength": {
+ "type": "integer",
+ "description": "The minimum netmask length that will be required for CIDR allocations in this pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "allocationResourceTags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Tags that are required to create resources in using this pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "arn": {
+ "type": "string",
+ "description": "ARN of the pool\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "autoImport": {
+ "type": "boolean",
+ "description": "If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "awsService": {
+ "type": "string",
+ "description": "Limits which service in AWS that the pool can be used in. \"ec2\", for example, allows users to use space for Elastic IP addresses and VPCs.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "description": {
+ "type": "string",
+ "description": "Description for the IPAM pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "id": {
+ "type": "string",
+ "description": "ID of the IPAM pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ipamPoolId": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ipamScopeId": {
+ "type": "string",
+ "description": "ID of the scope the pool belongs to.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ipamScopeType": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "locale": {
+ "type": "string",
+ "description": "Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "poolDepth": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "publiclyAdvertisable": {
+ "type": "boolean",
+ "description": "Defines whether or not IPv6 pool space is publicly ∂advertisable over the internet.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "sourceIpamPoolId": {
+ "type": "string",
+ "description": "ID of the source IPAM pool.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "state": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of tags to assigned to the resource.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "addressFamily",
+ "allocationDefaultNetmaskLength",
+ "allocationMaxNetmaskLength",
+ "allocationMinNetmaskLength",
+ "allocationResourceTags",
+ "arn",
+ "autoImport",
+ "awsService",
+ "description",
+ "ipamPoolId",
+ "ipamScopeId",
+ "ipamScopeType",
+ "locale",
+ "poolDepth",
+ "publiclyAdvertisable",
+ "sourceIpamPoolId",
+ "state",
+ "tags"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
"aws:ec2/getVpcPeeringConnectionCidrBlockSet:getVpcPeeringConnectionCidrBlockSet": {
"properties": {
"cidrBlock": {
@@ -76760,7 +77399,7 @@
"items": {
"type": "string"
},
- "description": "A list of IP addresses in the IP address set.\n",
+ "description": "The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.\n",
"language": {
"python": {
"mapCase": false
@@ -81074,7 +81713,7 @@
"aws:identitystore/UserExternalId:UserExternalId": {
"properties": {
"id": {
- "type": "boolean",
+ "type": "string",
"description": "The identifier issued to this resource by an external identity provider.\n",
"language": {
"python": {
@@ -81438,7 +82077,7 @@
"aws:identitystore/getUserExternalId:getUserExternalId": {
"properties": {
"id": {
- "type": "boolean",
+ "type": "string",
"description": "The identifier issued to this resource by an external identity provider.\n",
"language": {
"python": {
@@ -111619,114 +112258,108 @@
"size"
]
},
- "aws:opsworks/EcsClusterLayerCloudwatchConfiguration:EcsClusterLayerCloudwatchConfiguration": {
+ "aws:opsworks/CustomLayerLoadBasedAutoScaling:CustomLayerLoadBasedAutoScaling": {
"properties": {
- "enabled": {
- "type": "boolean",
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/CustomLayerLoadBasedAutoScalingDownscaling:CustomLayerLoadBasedAutoScalingDownscaling",
+ "description": "The downscaling settings, as defined below, used for load-based autoscaling\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "logStreams": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:opsworks/EcsClusterLayerCloudwatchConfigurationLogStream:EcsClusterLayerCloudwatchConfigurationLogStream"
- },
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object"
- },
- "aws:opsworks/EcsClusterLayerCloudwatchConfigurationLogStream:EcsClusterLayerCloudwatchConfigurationLogStream": {
- "properties": {
- "batchCount": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "batchSize": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "bufferDuration": {
- "type": "integer",
+ "enable": {
+ "type": "boolean",
+ "description": "Whether load-based auto scaling is enabled for the layer.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "datetimeFormat": {
- "type": "string",
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/CustomLayerLoadBasedAutoScalingUpscaling:CustomLayerLoadBasedAutoScalingUpscaling",
+ "description": "The upscaling settings, as defined below, used for load-based autoscaling\n",
"language": {
"python": {
"mapCase": false
}
}
- },
- "encoding": {
- "type": "string",
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/CustomLayerLoadBasedAutoScalingDownscaling:CustomLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "file": {
- "type": "string",
+ "cpuThreshold": {
+ "type": "number",
+ "description": "The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "fileFingerprintLines": {
- "type": "string",
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "description": "The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "initialPosition": {
- "type": "string",
+ "instanceCount": {
+ "type": "integer",
+ "description": "The number of instances to add or remove when the load exceeds a threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "logGroupName": {
- "type": "string",
+ "loadThreshold": {
+ "type": "number",
+ "description": "The load threshold. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "multilineStartPattern": {
- "type": "string",
+ "memoryThreshold": {
+ "type": "number",
+ "description": "The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "timeZone": {
- "type": "string",
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "description": "The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.\n",
"language": {
"python": {
"mapCase": false
@@ -111734,70 +112367,70 @@
}
}
},
- "type": "object",
- "required": [
- "file",
- "logGroupName"
- ]
+ "type": "object"
},
- "aws:opsworks/EcsClusterLayerEbsVolume:EcsClusterLayerEbsVolume": {
+ "aws:opsworks/CustomLayerLoadBasedAutoScalingUpscaling:CustomLayerLoadBasedAutoScalingUpscaling": {
"properties": {
- "encrypted": {
- "type": "boolean",
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "iops": {
- "type": "integer",
- "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "cpuThreshold": {
+ "type": "number",
+ "description": "The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "mountPoint": {
- "type": "string",
- "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "description": "The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "numberOfDisks": {
+ "instanceCount": {
"type": "integer",
- "description": "The number of disks to use for the EBS volume.\n",
+ "description": "The number of instances to add or remove when the load exceeds a threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "raidLevel": {
- "type": "string",
- "description": "The RAID level to use for the volume.\n",
+ "loadThreshold": {
+ "type": "number",
+ "description": "The load threshold. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "size": {
- "type": "integer",
- "description": "The size of the volume in gigabytes.\n",
+ "memoryThreshold": {
+ "type": "number",
+ "description": "The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "type": {
- "type": "string",
- "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "description": "The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.\n",
"language": {
"python": {
"mapCase": false
@@ -111805,14 +112438,9 @@
}
}
},
- "type": "object",
- "required": [
- "mountPoint",
- "numberOfDisks",
- "size"
- ]
+ "type": "object"
},
- "aws:opsworks/GangliaLayerCloudwatchConfiguration:GangliaLayerCloudwatchConfiguration": {
+ "aws:opsworks/EcsClusterLayerCloudwatchConfiguration:EcsClusterLayerCloudwatchConfiguration": {
"properties": {
"enabled": {
"type": "boolean",
@@ -111825,7 +112453,7 @@
"logStreams": {
"type": "array",
"items": {
- "$ref": "#/types/aws:opsworks/GangliaLayerCloudwatchConfigurationLogStream:GangliaLayerCloudwatchConfigurationLogStream"
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerCloudwatchConfigurationLogStream:EcsClusterLayerCloudwatchConfigurationLogStream"
},
"language": {
"python": {
@@ -111836,7 +112464,365 @@
},
"type": "object"
},
- "aws:opsworks/GangliaLayerCloudwatchConfigurationLogStream:GangliaLayerCloudwatchConfigurationLogStream": {
+ "aws:opsworks/EcsClusterLayerCloudwatchConfigurationLogStream:EcsClusterLayerCloudwatchConfigurationLogStream": {
+ "properties": {
+ "batchCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "batchSize": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "bufferDuration": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "datetimeFormat": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "encoding": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "file": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "fileFingerprintLines": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "initialPosition": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logGroupName": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "multilineStartPattern": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "timeZone": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "file",
+ "logGroupName"
+ ]
+ },
+ "aws:opsworks/EcsClusterLayerEbsVolume:EcsClusterLayerEbsVolume": {
+ "properties": {
+ "encrypted": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "iops": {
+ "type": "integer",
+ "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "mountPoint": {
+ "type": "string",
+ "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "numberOfDisks": {
+ "type": "integer",
+ "description": "The number of disks to use for the EBS volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "raidLevel": {
+ "type": "string",
+ "description": "The RAID level to use for the volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the volume in gigabytes.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "mountPoint",
+ "numberOfDisks",
+ "size"
+ ]
+ },
+ "aws:opsworks/EcsClusterLayerLoadBasedAutoScaling:EcsClusterLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerLoadBasedAutoScalingDownscaling:EcsClusterLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerLoadBasedAutoScalingUpscaling:EcsClusterLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/EcsClusterLayerLoadBasedAutoScalingDownscaling:EcsClusterLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/EcsClusterLayerLoadBasedAutoScalingUpscaling:EcsClusterLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/GangliaLayerCloudwatchConfiguration:GangliaLayerCloudwatchConfiguration": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logStreams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerCloudwatchConfigurationLogStream:GangliaLayerCloudwatchConfigurationLogStream"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/GangliaLayerCloudwatchConfigurationLogStream:GangliaLayerCloudwatchConfigurationLogStream": {
"properties": {
"batchCount": {
"type": "integer",
@@ -112005,6 +112991,171 @@
"size"
]
},
+ "aws:opsworks/GangliaLayerLoadBasedAutoScaling:GangliaLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerLoadBasedAutoScalingDownscaling:GangliaLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerLoadBasedAutoScalingUpscaling:GangliaLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/GangliaLayerLoadBasedAutoScalingDownscaling:GangliaLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/GangliaLayerLoadBasedAutoScalingUpscaling:GangliaLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"aws:opsworks/HaproxyLayerCloudwatchConfiguration:HaproxyLayerCloudwatchConfiguration": {
"properties": {
"enabled": {
@@ -112198,6 +113349,171 @@
"size"
]
},
+ "aws:opsworks/HaproxyLayerLoadBasedAutoScaling:HaproxyLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/HaproxyLayerLoadBasedAutoScalingDownscaling:HaproxyLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/HaproxyLayerLoadBasedAutoScalingUpscaling:HaproxyLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/HaproxyLayerLoadBasedAutoScalingDownscaling:HaproxyLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/HaproxyLayerLoadBasedAutoScalingUpscaling:HaproxyLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"aws:opsworks/InstanceEbsBlockDevice:InstanceEbsBlockDevice": {
"properties": {
"deleteOnTermination": {
@@ -112539,114 +113855,1172 @@
"size"
]
},
- "aws:opsworks/MemcachedLayerCloudwatchConfiguration:MemcachedLayerCloudwatchConfiguration": {
+ "aws:opsworks/JavaAppLayerLoadBasedAutoScaling:JavaAppLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/JavaAppLayerLoadBasedAutoScalingDownscaling:JavaAppLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/JavaAppLayerLoadBasedAutoScalingUpscaling:JavaAppLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/JavaAppLayerLoadBasedAutoScalingDownscaling:JavaAppLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/JavaAppLayerLoadBasedAutoScalingUpscaling:JavaAppLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MemcachedLayerCloudwatchConfiguration:MemcachedLayerCloudwatchConfiguration": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logStreams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerCloudwatchConfigurationLogStream:MemcachedLayerCloudwatchConfigurationLogStream"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MemcachedLayerCloudwatchConfigurationLogStream:MemcachedLayerCloudwatchConfigurationLogStream": {
+ "properties": {
+ "batchCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "batchSize": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "bufferDuration": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "datetimeFormat": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "encoding": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "file": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "fileFingerprintLines": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "initialPosition": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logGroupName": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "multilineStartPattern": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "timeZone": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "file",
+ "logGroupName"
+ ]
+ },
+ "aws:opsworks/MemcachedLayerEbsVolume:MemcachedLayerEbsVolume": {
+ "properties": {
+ "encrypted": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "iops": {
+ "type": "integer",
+ "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "mountPoint": {
+ "type": "string",
+ "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "numberOfDisks": {
+ "type": "integer",
+ "description": "The number of disks to use for the EBS volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "raidLevel": {
+ "type": "string",
+ "description": "The RAID level to use for the volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the volume in gigabytes.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "mountPoint",
+ "numberOfDisks",
+ "size"
+ ]
+ },
+ "aws:opsworks/MemcachedLayerLoadBasedAutoScaling:MemcachedLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerLoadBasedAutoScalingDownscaling:MemcachedLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerLoadBasedAutoScalingUpscaling:MemcachedLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/MemcachedLayerLoadBasedAutoScalingDownscaling:MemcachedLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MemcachedLayerLoadBasedAutoScalingUpscaling:MemcachedLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MysqlLayerCloudwatchConfiguration:MysqlLayerCloudwatchConfiguration": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logStreams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerCloudwatchConfigurationLogStream:MysqlLayerCloudwatchConfigurationLogStream"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MysqlLayerCloudwatchConfigurationLogStream:MysqlLayerCloudwatchConfigurationLogStream": {
+ "properties": {
+ "batchCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "batchSize": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "bufferDuration": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "datetimeFormat": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "encoding": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "file": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "fileFingerprintLines": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "initialPosition": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logGroupName": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "multilineStartPattern": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "timeZone": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "file",
+ "logGroupName"
+ ]
+ },
+ "aws:opsworks/MysqlLayerEbsVolume:MysqlLayerEbsVolume": {
+ "properties": {
+ "encrypted": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "iops": {
+ "type": "integer",
+ "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "mountPoint": {
+ "type": "string",
+ "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "numberOfDisks": {
+ "type": "integer",
+ "description": "The number of disks to use for the EBS volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "raidLevel": {
+ "type": "string",
+ "description": "The RAID level to use for the volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the volume in gigabytes.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "mountPoint",
+ "numberOfDisks",
+ "size"
+ ]
+ },
+ "aws:opsworks/MysqlLayerLoadBasedAutoScaling:MysqlLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerLoadBasedAutoScalingDownscaling:MysqlLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerLoadBasedAutoScalingUpscaling:MysqlLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/MysqlLayerLoadBasedAutoScalingDownscaling:MysqlLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/MysqlLayerLoadBasedAutoScalingUpscaling:MysqlLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/NodejsAppLayerCloudwatchConfiguration:NodejsAppLayerCloudwatchConfiguration": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logStreams": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerCloudwatchConfigurationLogStream:NodejsAppLayerCloudwatchConfigurationLogStream"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/NodejsAppLayerCloudwatchConfigurationLogStream:NodejsAppLayerCloudwatchConfigurationLogStream": {
+ "properties": {
+ "batchCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "batchSize": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "bufferDuration": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "datetimeFormat": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "encoding": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "file": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "fileFingerprintLines": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "initialPosition": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "logGroupName": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "multilineStartPattern": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "timeZone": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "file",
+ "logGroupName"
+ ]
+ },
+ "aws:opsworks/NodejsAppLayerEbsVolume:NodejsAppLayerEbsVolume": {
+ "properties": {
+ "encrypted": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "iops": {
+ "type": "integer",
+ "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "mountPoint": {
+ "type": "string",
+ "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "numberOfDisks": {
+ "type": "integer",
+ "description": "The number of disks to use for the EBS volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "raidLevel": {
+ "type": "string",
+ "description": "The RAID level to use for the volume.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "size": {
+ "type": "integer",
+ "description": "The size of the volume in gigabytes.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "type": {
+ "type": "string",
+ "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "mountPoint",
+ "numberOfDisks",
+ "size"
+ ]
+ },
+ "aws:opsworks/NodejsAppLayerLoadBasedAutoScaling:NodejsAppLayerLoadBasedAutoScaling": {
"properties": {
- "enabled": {
- "type": "boolean",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "logStreams": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:opsworks/MemcachedLayerCloudwatchConfigurationLogStream:MemcachedLayerCloudwatchConfigurationLogStream"
- },
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object"
- },
- "aws:opsworks/MemcachedLayerCloudwatchConfigurationLogStream:MemcachedLayerCloudwatchConfigurationLogStream": {
- "properties": {
- "batchCount": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "batchSize": {
- "type": "integer",
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerLoadBasedAutoScalingDownscaling:NodejsAppLayerLoadBasedAutoScalingDownscaling",
"language": {
"python": {
"mapCase": false
}
}
},
- "bufferDuration": {
- "type": "integer",
+ "enable": {
+ "type": "boolean",
"language": {
"python": {
"mapCase": false
}
}
},
- "datetimeFormat": {
- "type": "string",
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerLoadBasedAutoScalingUpscaling:NodejsAppLayerLoadBasedAutoScalingUpscaling",
"language": {
"python": {
"mapCase": false
}
}
- },
- "encoding": {
- "type": "string",
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/NodejsAppLayerLoadBasedAutoScalingDownscaling:NodejsAppLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "file": {
- "type": "string",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "fileFingerprintLines": {
- "type": "string",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "initialPosition": {
- "type": "string",
+ "instanceCount": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "logGroupName": {
- "type": "string",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "multilineStartPattern": {
- "type": "string",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "timeZone": {
- "type": "string",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -112654,70 +115028,63 @@
}
}
},
- "type": "object",
- "required": [
- "file",
- "logGroupName"
- ]
+ "type": "object"
},
- "aws:opsworks/MemcachedLayerEbsVolume:MemcachedLayerEbsVolume": {
+ "aws:opsworks/NodejsAppLayerLoadBasedAutoScalingUpscaling:NodejsAppLayerLoadBasedAutoScalingUpscaling": {
"properties": {
- "encrypted": {
- "type": "boolean",
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "iops": {
- "type": "integer",
- "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "mountPoint": {
- "type": "string",
- "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "numberOfDisks": {
+ "instanceCount": {
"type": "integer",
- "description": "The number of disks to use for the EBS volume.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "raidLevel": {
- "type": "string",
- "description": "The RAID level to use for the volume.\n",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "size": {
- "type": "integer",
- "description": "The size of the volume in gigabytes.\n",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "type": {
- "type": "string",
- "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -112725,14 +115092,9 @@
}
}
},
- "type": "object",
- "required": [
- "mountPoint",
- "numberOfDisks",
- "size"
- ]
+ "type": "object"
},
- "aws:opsworks/MysqlLayerCloudwatchConfiguration:MysqlLayerCloudwatchConfiguration": {
+ "aws:opsworks/PhpAppLayerCloudwatchConfiguration:PhpAppLayerCloudwatchConfiguration": {
"properties": {
"enabled": {
"type": "boolean",
@@ -112745,7 +115107,7 @@
"logStreams": {
"type": "array",
"items": {
- "$ref": "#/types/aws:opsworks/MysqlLayerCloudwatchConfigurationLogStream:MysqlLayerCloudwatchConfigurationLogStream"
+ "$ref": "#/types/aws:opsworks/PhpAppLayerCloudwatchConfigurationLogStream:PhpAppLayerCloudwatchConfigurationLogStream"
},
"language": {
"python": {
@@ -112756,7 +115118,7 @@
},
"type": "object"
},
- "aws:opsworks/MysqlLayerCloudwatchConfigurationLogStream:MysqlLayerCloudwatchConfigurationLogStream": {
+ "aws:opsworks/PhpAppLayerCloudwatchConfigurationLogStream:PhpAppLayerCloudwatchConfigurationLogStream": {
"properties": {
"batchCount": {
"type": "integer",
@@ -112853,7 +115215,7 @@
"logGroupName"
]
},
- "aws:opsworks/MysqlLayerEbsVolume:MysqlLayerEbsVolume": {
+ "aws:opsworks/PhpAppLayerEbsVolume:PhpAppLayerEbsVolume": {
"properties": {
"encrypted": {
"type": "boolean",
@@ -112925,114 +115287,98 @@
"size"
]
},
- "aws:opsworks/NodejsAppLayerCloudwatchConfiguration:NodejsAppLayerCloudwatchConfiguration": {
+ "aws:opsworks/PhpAppLayerLoadBasedAutoScaling:PhpAppLayerLoadBasedAutoScaling": {
"properties": {
- "enabled": {
- "type": "boolean",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "logStreams": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:opsworks/NodejsAppLayerCloudwatchConfigurationLogStream:NodejsAppLayerCloudwatchConfigurationLogStream"
- },
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object"
- },
- "aws:opsworks/NodejsAppLayerCloudwatchConfigurationLogStream:NodejsAppLayerCloudwatchConfigurationLogStream": {
- "properties": {
- "batchCount": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "batchSize": {
- "type": "integer",
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/PhpAppLayerLoadBasedAutoScalingDownscaling:PhpAppLayerLoadBasedAutoScalingDownscaling",
"language": {
"python": {
"mapCase": false
}
}
},
- "bufferDuration": {
- "type": "integer",
+ "enable": {
+ "type": "boolean",
"language": {
"python": {
"mapCase": false
}
}
},
- "datetimeFormat": {
- "type": "string",
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/PhpAppLayerLoadBasedAutoScalingUpscaling:PhpAppLayerLoadBasedAutoScalingUpscaling",
"language": {
"python": {
"mapCase": false
}
}
- },
- "encoding": {
- "type": "string",
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/PhpAppLayerLoadBasedAutoScalingDownscaling:PhpAppLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "file": {
- "type": "string",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "fileFingerprintLines": {
- "type": "string",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "initialPosition": {
- "type": "string",
+ "instanceCount": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "logGroupName": {
- "type": "string",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "multilineStartPattern": {
- "type": "string",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "timeZone": {
- "type": "string",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -113040,70 +115386,63 @@
}
}
},
- "type": "object",
- "required": [
- "file",
- "logGroupName"
- ]
+ "type": "object"
},
- "aws:opsworks/NodejsAppLayerEbsVolume:NodejsAppLayerEbsVolume": {
+ "aws:opsworks/PhpAppLayerLoadBasedAutoScalingUpscaling:PhpAppLayerLoadBasedAutoScalingUpscaling": {
"properties": {
- "encrypted": {
- "type": "boolean",
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "iops": {
- "type": "integer",
- "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "mountPoint": {
- "type": "string",
- "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "numberOfDisks": {
+ "instanceCount": {
"type": "integer",
- "description": "The number of disks to use for the EBS volume.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "raidLevel": {
- "type": "string",
- "description": "The RAID level to use for the volume.\n",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "size": {
- "type": "integer",
- "description": "The size of the volume in gigabytes.\n",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "type": {
- "type": "string",
- "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -113111,14 +115450,9 @@
}
}
},
- "type": "object",
- "required": [
- "mountPoint",
- "numberOfDisks",
- "size"
- ]
+ "type": "object"
},
- "aws:opsworks/PhpAppLayerCloudwatchConfiguration:PhpAppLayerCloudwatchConfiguration": {
+ "aws:opsworks/RailsAppLayerCloudwatchConfiguration:RailsAppLayerCloudwatchConfiguration": {
"properties": {
"enabled": {
"type": "boolean",
@@ -113131,7 +115465,7 @@
"logStreams": {
"type": "array",
"items": {
- "$ref": "#/types/aws:opsworks/PhpAppLayerCloudwatchConfigurationLogStream:PhpAppLayerCloudwatchConfigurationLogStream"
+ "$ref": "#/types/aws:opsworks/RailsAppLayerCloudwatchConfigurationLogStream:RailsAppLayerCloudwatchConfigurationLogStream"
},
"language": {
"python": {
@@ -113142,7 +115476,7 @@
},
"type": "object"
},
- "aws:opsworks/PhpAppLayerCloudwatchConfigurationLogStream:PhpAppLayerCloudwatchConfigurationLogStream": {
+ "aws:opsworks/RailsAppLayerCloudwatchConfigurationLogStream:RailsAppLayerCloudwatchConfigurationLogStream": {
"properties": {
"batchCount": {
"type": "integer",
@@ -113239,7 +115573,7 @@
"logGroupName"
]
},
- "aws:opsworks/PhpAppLayerEbsVolume:PhpAppLayerEbsVolume": {
+ "aws:opsworks/RailsAppLayerEbsVolume:RailsAppLayerEbsVolume": {
"properties": {
"encrypted": {
"type": "boolean",
@@ -113311,114 +115645,98 @@
"size"
]
},
- "aws:opsworks/RailsAppLayerCloudwatchConfiguration:RailsAppLayerCloudwatchConfiguration": {
+ "aws:opsworks/RailsAppLayerLoadBasedAutoScaling:RailsAppLayerLoadBasedAutoScaling": {
"properties": {
- "enabled": {
- "type": "boolean",
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/RailsAppLayerLoadBasedAutoScalingDownscaling:RailsAppLayerLoadBasedAutoScalingDownscaling",
"language": {
"python": {
"mapCase": false
}
}
},
- "logStreams": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:opsworks/RailsAppLayerCloudwatchConfigurationLogStream:RailsAppLayerCloudwatchConfigurationLogStream"
- },
- "language": {
- "python": {
- "mapCase": false
- }
- }
- }
- },
- "type": "object"
- },
- "aws:opsworks/RailsAppLayerCloudwatchConfigurationLogStream:RailsAppLayerCloudwatchConfigurationLogStream": {
- "properties": {
- "batchCount": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "batchSize": {
- "type": "integer",
- "language": {
- "python": {
- "mapCase": false
- }
- }
- },
- "bufferDuration": {
- "type": "integer",
+ "enable": {
+ "type": "boolean",
"language": {
"python": {
"mapCase": false
}
}
},
- "datetimeFormat": {
- "type": "string",
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/RailsAppLayerLoadBasedAutoScalingUpscaling:RailsAppLayerLoadBasedAutoScalingUpscaling",
"language": {
"python": {
"mapCase": false
}
}
- },
- "encoding": {
- "type": "string",
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/RailsAppLayerLoadBasedAutoScalingDownscaling:RailsAppLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "file": {
- "type": "string",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "fileFingerprintLines": {
- "type": "string",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "initialPosition": {
- "type": "string",
+ "instanceCount": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "logGroupName": {
- "type": "string",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "multilineStartPattern": {
- "type": "string",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "timeZone": {
- "type": "string",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -113426,70 +115744,63 @@
}
}
},
- "type": "object",
- "required": [
- "file",
- "logGroupName"
- ]
+ "type": "object"
},
- "aws:opsworks/RailsAppLayerEbsVolume:RailsAppLayerEbsVolume": {
+ "aws:opsworks/RailsAppLayerLoadBasedAutoScalingUpscaling:RailsAppLayerLoadBasedAutoScalingUpscaling": {
"properties": {
- "encrypted": {
- "type": "boolean",
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
"language": {
"python": {
"mapCase": false
}
}
},
- "iops": {
- "type": "integer",
- "description": "For PIOPS volumes, the IOPS per disk.\n",
+ "cpuThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "mountPoint": {
- "type": "string",
- "description": "The path to mount the EBS volume on the layer's instances.\n",
+ "ignoreMetricsTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
}
}
},
- "numberOfDisks": {
+ "instanceCount": {
"type": "integer",
- "description": "The number of disks to use for the EBS volume.\n",
"language": {
"python": {
"mapCase": false
}
}
},
- "raidLevel": {
- "type": "string",
- "description": "The RAID level to use for the volume.\n",
+ "loadThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "size": {
- "type": "integer",
- "description": "The size of the volume in gigabytes.\n",
+ "memoryThreshold": {
+ "type": "number",
"language": {
"python": {
"mapCase": false
}
}
},
- "type": {
- "type": "string",
- "description": "The type of volume to create. This may be `standard` (the default), `io1` or `gp2`.\n",
+ "thresholdsWaitTime": {
+ "type": "integer",
"language": {
"python": {
"mapCase": false
@@ -113497,12 +115808,7 @@
}
}
},
- "type": "object",
- "required": [
- "mountPoint",
- "numberOfDisks",
- "size"
- ]
+ "type": "object"
},
"aws:opsworks/StackCustomCookbooksSource:StackCustomCookbooksSource": {
"properties": {
@@ -113760,6 +116066,171 @@
"size"
]
},
+ "aws:opsworks/StaticWebLayerLoadBasedAutoScaling:StaticWebLayerLoadBasedAutoScaling": {
+ "properties": {
+ "downscaling": {
+ "$ref": "#/types/aws:opsworks/StaticWebLayerLoadBasedAutoScalingDownscaling:StaticWebLayerLoadBasedAutoScalingDownscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enable": {
+ "type": "boolean",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "upscaling": {
+ "$ref": "#/types/aws:opsworks/StaticWebLayerLoadBasedAutoScalingUpscaling:StaticWebLayerLoadBasedAutoScalingUpscaling",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "downscaling",
+ "upscaling"
+ ]
+ }
+ }
+ },
+ "aws:opsworks/StaticWebLayerLoadBasedAutoScalingDownscaling:StaticWebLayerLoadBasedAutoScalingDownscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:opsworks/StaticWebLayerLoadBasedAutoScalingUpscaling:StaticWebLayerLoadBasedAutoScalingUpscaling": {
+ "properties": {
+ "alarms": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "cpuThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "ignoreMetricsTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "instanceCount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "loadThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "memoryThreshold": {
+ "type": "number",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "thresholdsWaitTime": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"aws:organizations/OrganizationAccount:OrganizationAccount": {
"properties": {
"arn": {
@@ -116454,6 +118925,35 @@
},
"type": "object"
},
+ "aws:rds/ReservedInstanceRecurringCharge:ReservedInstanceRecurringCharge": {
+ "properties": {
+ "recurringChargeAmount": {
+ "type": "integer",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "recurringChargeFrequency": {
+ "type": "string",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "recurringChargeAmount",
+ "recurringChargeFrequency"
+ ]
+ }
+ }
+ },
"aws:rds/SecurityGroupIngress:SecurityGroupIngress": {
"properties": {
"cidr": {
@@ -123434,6 +125934,444 @@
"functionArn"
]
},
+ "aws:s3control/StorageLensConfigurationStorageLensConfiguration:StorageLensConfigurationStorageLensConfiguration": {
+ "properties": {
+ "accountLevel": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevel:StorageLensConfigurationStorageLensConfigurationAccountLevel",
+ "description": "The account-level configurations of the S3 Storage Lens configuration. See Account Level below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "awsOrg": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAwsOrg:StorageLensConfigurationStorageLensConfigurationAwsOrg",
+ "description": "The Amazon Web Services organization for the S3 Storage Lens configuration. See AWS Org below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "dataExport": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExport:StorageLensConfigurationStorageLensConfigurationDataExport",
+ "description": "Properties of S3 Storage Lens metrics export including the destination, schema and format. See Data Export below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the S3 Storage Lens configuration is enabled.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "exclude": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationExclude:StorageLensConfigurationStorageLensConfigurationExclude",
+ "description": "What is excluded in this configuration. Conflicts with `include`. See Exclude below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "include": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationInclude:StorageLensConfigurationStorageLensConfigurationInclude",
+ "description": "What is included in this configuration. Conflicts with `exclude`. See Include below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "accountLevel",
+ "enabled"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevel:StorageLensConfigurationStorageLensConfigurationAccountLevel": {
+ "properties": {
+ "activityMetrics": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics",
+ "description": "S3 Storage Lens activity metrics. See Activity Metrics below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "bucketLevel": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel",
+ "description": "S3 Storage Lens bucket-level configuration. See Bucket Level below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "bucketLevel"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetrics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the activity metrics are enabled.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevel": {
+ "properties": {
+ "activityMetrics": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics",
+ "description": "S3 Storage Lens activity metrics. See Activity Metrics above for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "prefixLevel": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel",
+ "description": "Prefix-level metrics for S3 Storage Lens. See Prefix Level below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetrics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether the activity metrics are enabled.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevel": {
+ "properties": {
+ "storageMetrics": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics",
+ "description": "Prefix-level storage metrics for S3 Storage Lens. See Prefix Level Storage Metrics below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "storageMetrics"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetrics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether prefix-level storage metrics are enabled.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "selectionCriteria": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria",
+ "description": "Selection criteria. See Selection Criteria below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria:StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelPrefixLevelStorageMetricsSelectionCriteria": {
+ "properties": {
+ "delimiter": {
+ "type": "string",
+ "description": "The delimiter of the selection criteria being used.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "maxDepth": {
+ "type": "integer",
+ "description": "The max depth of the selection criteria.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "minStorageBytesPercentage": {
+ "type": "number",
+ "description": "The minimum number of storage bytes percentage whose metrics will be selected.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationAwsOrg:StorageLensConfigurationStorageLensConfigurationAwsOrg": {
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "The Amazon Resource Name (ARN) of the Amazon Web Services organization.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "arn"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExport:StorageLensConfigurationStorageLensConfigurationDataExport": {
+ "properties": {
+ "cloudWatchMetrics": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics:StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics",
+ "description": "Amazon CloudWatch publishing for S3 Storage Lens metrics. See Cloud Watch Metrics below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "s3BucketDestination": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination",
+ "description": "The bucket where the S3 Storage Lens metrics export will be located. See S3 Bucket Destination below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics:StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetrics": {
+ "properties": {
+ "enabled": {
+ "type": "boolean",
+ "description": "Whether CloudWatch publishing for S3 Storage Lens metrics is enabled.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "enabled"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestination": {
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "The account ID of the owner of the S3 Storage Lens metrics export bucket.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "arn": {
+ "type": "string",
+ "description": "The Amazon Resource Name (ARN) of the bucket.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "encryption": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption",
+ "description": "Encryption of the metrics exports in this bucket. See Encryption below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "format": {
+ "type": "string",
+ "description": "The export format. Valid values: `CSV`, `Parquet`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "outputSchemaVersion": {
+ "type": "string",
+ "description": "The schema version of the export file. Valid values: `V_1`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "prefix": {
+ "type": "string",
+ "description": "The prefix of the destination bucket where the metrics export will be delivered.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "accountId",
+ "arn",
+ "format",
+ "outputSchemaVersion"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryption": {
+ "properties": {
+ "sseKms": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms",
+ "description": "SSE-KMS encryption. See SSE KMS below for more details.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "sseS3s": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3"
+ },
+ "description": "SSE-S3 encryption. An empty configuration block `{}` should be used.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseKms": {
+ "properties": {
+ "keyId": {
+ "type": "string",
+ "description": "KMS key ARN.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "keyId"
+ ]
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3:StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3": {
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationExclude:StorageLensConfigurationStorageLensConfigurationExclude": {
+ "properties": {
+ "buckets": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of S3 bucket ARNs.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of AWS Regions.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:s3control/StorageLensConfigurationStorageLensConfigurationInclude:StorageLensConfigurationStorageLensConfigurationInclude": {
+ "properties": {
+ "buckets": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of S3 bucket ARNs.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "regions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "List of AWS Regions.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
"aws:s3outposts/EndpointNetworkInterface:EndpointNetworkInterface": {
"properties": {
"networkInterfaceId": {
@@ -131062,6 +134000,115 @@
"position"
]
},
+ "aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions": {
+ "properties": {
+ "sendingPoolName": {
+ "type": "string",
+ "description": "The name of the dedicated IP pool to associate with the configuration set.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "tlsPolicy": {
+ "type": "string",
+ "description": "Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). Valid values: `REQUIRE`, `OPTIONAL`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:sesv2/ConfigurationSetReputationOptions:ConfigurationSetReputationOptions": {
+ "properties": {
+ "lastFreshStart": {
+ "type": "string",
+ "description": "The date and time (in Unix time) when the reputation metrics were last given a fresh start. When your account is given a fresh start, your reputation metrics are calculated starting from the date of the fresh start.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ },
+ "reputationMetricsEnabled": {
+ "type": "boolean",
+ "description": "If `true`, tracking of reputation metrics is enabled for the configuration set. If `false`, tracking of reputation metrics is disabled for the configuration set.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "lastFreshStart",
+ "reputationMetricsEnabled"
+ ]
+ }
+ }
+ },
+ "aws:sesv2/ConfigurationSetSendingOptions:ConfigurationSetSendingOptions": {
+ "properties": {
+ "sendingEnabled": {
+ "type": "boolean",
+ "description": "If `true`, email sending is enabled for the configuration set. If `false`, email sending is disabled for the configuration set.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "sendingEnabled"
+ ]
+ }
+ }
+ },
+ "aws:sesv2/ConfigurationSetSuppressionOptions:ConfigurationSetSuppressionOptions": {
+ "properties": {
+ "suppressedReasons": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list that contains the reasons that email addresses are automatically added to the suppression list for your account. Valid vales: `BOUNCE`, `COMPLAINT`.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object"
+ },
+ "aws:sesv2/ConfigurationSetTrackingOptions:ConfigurationSetTrackingOptions": {
+ "properties": {
+ "customRedirectDomain": {
+ "type": "string",
+ "description": "The domain to use for tracking open and click events.\n",
+ "language": {
+ "python": {
+ "mapCase": false
+ }
+ }
+ }
+ },
+ "type": "object",
+ "required": [
+ "customRedirectDomain"
+ ]
+ },
"aws:sfn/StateMachineLoggingConfiguration:StateMachineLoggingConfiguration": {
"properties": {
"includeExecutionData": {
@@ -380839,7 +383886,7 @@
}
},
"aws:acm/certificateValidation:CertificateValidation": {
- "description": "{{% examples %}}\nThis resource represents a successful validation of an ACM certificate in concert\nwith other resources.\n\nMost commonly, this resource is used together with `aws.route53.Record` and\n`aws.acm.Certificate` to request a DNS validated certificate,\ndeploy the required validation records and wait for validation to complete.\n\n\u003e **WARNING:** This resource implements a part of the validation workflow. It does not represent a real-world entity in AWS, therefore changing or deleting this resource on its own has no immediate effect.\n\n\n## Example Usage\n\n{{% example %}}\n### DNS Validation with Route 53\n\n```typescript\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCertificate = new aws.acm.Certificate(\"exampleCertificate\", {\n domainName: \"example.com\",\n validationMethod: \"DNS\",\n});\nconst exampleZone = aws.route53.getZone({\n name: \"example.com\",\n privateZone: false,\n});\n\nconst certValidation = new aws.route53.Record(\"certValidation\", {\n name: exampleCertificate.domainValidationOptions[0].resourceRecordName,\n records: [exampleCertificate.domainValidationOptions[0].resourceRecordValue],\n ttl: 60,\n type: exampleCertificate.domainValidationOptions[0].resourceRecordType,\n zoneId: exampleZone.then(x =\u003e x.zoneId),\n});\n\nconst certCertificateValidation = new aws.acm.CertificateValidation(\"cert\", {\n certificateArn: exampleCertificate.arn,\n validationRecordFqdns: [certValidation.fqdn],\n});\n\nexport const certificateArn = certCertificateValidation.certificateArn;\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/acm\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n exampleCertificate, err := acm.NewCertificate(ctx, \"exampleCertificate\", \u0026acm.CertificateArgs{\n DomainName: pulumi.String(\"example.com\"),\n ValidationMethod: pulumi.String(\"DNS\"),\n })\n if err != nil {\n return err\n }\n \n exampleZone, err := route53.LookupZone(ctx, \u0026route53.LookupZoneArgs{\n Name: pulumi.StringRef(\"example.com\"),\n PrivateZone: pulumi.BoolRef(false),\n }, nil)\n if err != nil {\n return err\n }\n \n domainValidationOption := exampleCertificate.DomainValidationOptions.ApplyT(func(options []acm.CertificateDomainValidationOption) interface{} {\n return options[0]\n })\n \n certValidation, err := route53.NewRecord(ctx, \"certValidation\", \u0026route53.RecordArgs{\n Name: domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordName\n }).(pulumi.StringOutput),\n Type: domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordType\n }).(pulumi.StringOutput),\n Records: pulumi.StringArray{\n domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordValue\n }).(pulumi.StringOutput),\n },\n Ttl: pulumi.Int(10 * 60),\n ZoneId: pulumi.String(exampleZone.ZoneId),\n })\n if err != nil {\n return err\n }\n \n certCertificateValidation, err := acm.NewCertificateValidation(ctx, \"cert\", \u0026acm.CertificateValidationArgs{\n CertificateArn: exampleCertificate.Arn,\n ValidationRecordFqdns: pulumi.StringArray{\n certValidation.Fqdn,\n },\n })\n if err != nil {\n return err\n }\n \n ctx.Export(\"certificateArn\", certCertificateValidation.CertificateArn)\n \n return nil\n })\n}\n```\n```python\nimport pulumi_aws as aws\n\nexample_certificate = aws.acm.Certificate(\"exampleCertificate\",\n domain_name=\"example.com\",\n validation_method=\"DNS\")\n\nexample_zone = aws.route53.getZone(name=\"example.com\",\n private_zone=False)\n\ncert_validation = aws.route53.Record(\"certValidation\",\n name=example_certificate.domain_validation_options[0].resource_record_name,\n records=[example_certificate.domain_validation_options[0].resource_record_value],\n ttl=60,\n type=example_certificate.domain_validation_options[0].resource_record_type,\n zone_id=example_zone.zone_id)\n\ncert_certificate_validation = aws.route53.CertificateValidation(\"cert\",\n certificate_arn=example_certificate.arn,\n validation_record_fdqns=[cert_validation.fdqn])\n\npulumi.export(\"certificate_arn\", cert_certificate_validation.certificate_arn)\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Aws.Acm;\nusing Pulumi.Aws.Route53;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =\u003e\n{\n var exampleCertificate = new Certificate(\"exampleCertificate\", new CertificateArgs\n {\n DomainName = \"example.com\",\n ValidationMethod = \"DNS\"\n });\n\n var exampleZone = GetZone.Invoke(new GetZoneInvokeArgs\n {\n Name = \"example.com\",\n PrivateZone = false,\n });\n\n var certValidation = new Record(\"certValidation\", new RecordArgs\n {\n Name = exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordName!),\n Records =\n {\n exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordValue!),\n },\n Ttl = 60,\n Type = exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordType!),\n ZoneId = exampleZone.Apply(zone =\u003e zone.Id),\n });\n\n var certCertificateValidation = new CertificateValidation(\"cert\", new CertificateValidationArgs\n {\n CertificateArn = exampleCertificate.Arn,\n ValidationRecordFqdns =\n {\n certValidation.Fqdn,\n },\n });\n \n return new Dictionary\u003cstring, object?\u003e\n {\n [\"certificateArn\"] = certCertificateValidation.CertificateArn,\n };\n});\n```\n```yaml\nvariables:\n zoneId:\n Fn::Invoke:\n Function: aws.route53.getZone\n Arguments:\n name: \"example.com\"\n privateZone: false\n Return: id\nresources:\n exampleCertificate:\n type: aws.acm.Certificate\n properties:\n domainName: \"example.com\"\n validationMethod: \"DNS\"\n certValidation:\n type: aws.route53.Record\n properties:\n name: ${exampleCertificate.domainValidationOptions[0].resourceRecordName}\n records: [${exampleCertificate.domainValidationOptions[0].resourceRecordValue}]\n ttl: 60\n type: ${exampleCertificate.domainValidationOptions[0].resourceRecordType}\n zoneId: ${zoneId}\n certCertificateValidation:\n type: aws.acm.CertificateValidation\n properties:\n certificateArn: ${exampleCertificate.arn}\n validationRecordFqdns: [${certValidation.fqdn}]\noutputs:\n certificateArn: ${certCertificateValidation.certificateArn}\n```\n{{% /example %}}\n{{% example %}}\n### Email Validation\n\n```typescript\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCertificate = new aws.acm.Certificate(\"exampleCertificate\", {\n domainName: \"example.com\",\n validationMethod: \"EMAIL\",\n});\n\nconst exampleCertificateValidation = new aws.acm.CertificateValidation(\"exampleCertificateValidation\", {\n certificateArn: exampleCertificate.arn,\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/acm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n exampleCertificate, err := acm.NewCertificate(ctx, \"exampleCertificate\", \u0026acm.CertificateArgs{\n DomainName: pulumi.String(\"example.com\"),\n ValidationMethod: pulumi.String(\"EMAIL\"),\n })\n if err != nil {\n return err\n }\n \n _, err = acm.NewCertificateValidation(ctx, \"exampleCertificateValidation\", \u0026acm.CertificateValidationArgs{\n CertificateArn: exampleCertificate.Arn,\n })\n if err != nil {\n return err\n }\n\t\treturn nil\n\t})\n}\n```\n```python\nimport pulumi_aws as aws\n\nexample_certificate = aws.acm.Certificate(\"exampleCertificate\",\n domain_name=\"example.com\",\n validation_method=\"EMAIL\")\n\nexample_certificate_validation = aws.acm.CertificateValidation(\"exampleCertificateValidation\",\n certificate_arn=example_certificate.arn)\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Aws.Acm;\n\nreturn await Deployment.RunAsync(() =\u003e\n{\n var exampleCertificate = new Certificate(\"exampleCertificate\", new CertificateArgs\n {\n DomainName = \"example.com\",\n ValidationMethod = \"EMAIL\"\n });\n\n var certCertificateValidation = new CertificateValidation(\"cert\", new CertificateValidationArgs\n {\n CertificateArn = exampleCertificate.Arn,\n });\n});\n\n```\n```yaml\nresources:\n exampleCertificate:\n type: aws.acm.Certificate\n properties:\n domainName: \"example.com\"\n validationMethod: \"EMAIL\"\n certCertificateValidation:\n type: aws.acm.CertificateValidation\n properties:\n certificateArn: ${exampleCertificate.arn}\n```\n{{% /example %}}\n\n{{% //examples %}}",
+ "description": "{{% examples %}}\nThis resource represents a successful validation of an ACM certificate in concert\nwith other resources.\n\nMost commonly, this resource is used together with `aws.route53.Record` and\n`aws.acm.Certificate` to request a DNS validated certificate,\ndeploy the required validation records and wait for validation to complete.\n\n\u003e **WARNING:** This resource implements a part of the validation workflow. It does not represent a real-world entity in AWS, therefore changing or deleting this resource on its own has no immediate effect.\n\n## Example Usage\n\n{{% example %}}\n### DNS Validation with Route 53\n\n```typescript\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCertificate = new aws.acm.Certificate(\"exampleCertificate\", {\n domainName: \"example.com\",\n validationMethod: \"DNS\",\n});\nconst exampleZone = aws.route53.getZone({\n name: \"example.com\",\n privateZone: false,\n});\n\nconst certValidation = new aws.route53.Record(\"certValidation\", {\n name: exampleCertificate.domainValidationOptions[0].resourceRecordName,\n records: [exampleCertificate.domainValidationOptions[0].resourceRecordValue],\n ttl: 60,\n type: exampleCertificate.domainValidationOptions[0].resourceRecordType,\n zoneId: exampleZone.then(x =\u003e x.zoneId),\n});\n\nconst certCertificateValidation = new aws.acm.CertificateValidation(\"cert\", {\n certificateArn: exampleCertificate.arn,\n validationRecordFqdns: [certValidation.fqdn],\n});\n\nexport const certificateArn = certCertificateValidation.certificateArn;\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/acm\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n exampleCertificate, err := acm.NewCertificate(ctx, \"exampleCertificate\", \u0026acm.CertificateArgs{\n DomainName: pulumi.String(\"example.com\"),\n ValidationMethod: pulumi.String(\"DNS\"),\n })\n if err != nil {\n return err\n }\n \n exampleZone, err := route53.LookupZone(ctx, \u0026route53.LookupZoneArgs{\n Name: pulumi.StringRef(\"example.com\"),\n PrivateZone: pulumi.BoolRef(false),\n }, nil)\n if err != nil {\n return err\n }\n \n domainValidationOption := exampleCertificate.DomainValidationOptions.ApplyT(func(options []acm.CertificateDomainValidationOption) interface{} {\n return options[0]\n })\n \n certValidation, err := route53.NewRecord(ctx, \"certValidation\", \u0026route53.RecordArgs{\n Name: domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordName\n }).(pulumi.StringOutput),\n Type: domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordType\n }).(pulumi.StringOutput),\n Records: pulumi.StringArray{\n domainValidationOption.ApplyT(func(option interface{}) string {\n return *option.(acm.CertificateDomainValidationOption).ResourceRecordValue\n }).(pulumi.StringOutput),\n },\n Ttl: pulumi.Int(10 * 60),\n ZoneId: pulumi.String(exampleZone.ZoneId),\n })\n if err != nil {\n return err\n }\n \n certCertificateValidation, err := acm.NewCertificateValidation(ctx, \"cert\", \u0026acm.CertificateValidationArgs{\n CertificateArn: exampleCertificate.Arn,\n ValidationRecordFqdns: pulumi.StringArray{\n certValidation.Fqdn,\n },\n })\n if err != nil {\n return err\n }\n \n ctx.Export(\"certificateArn\", certCertificateValidation.CertificateArn)\n \n return nil\n })\n}\n```\n```python\nimport pulumi_aws as aws\n\nexample_certificate = aws.acm.Certificate(\"exampleCertificate\",\n domain_name=\"example.com\",\n validation_method=\"DNS\")\n\nexample_zone = aws.route53.getZone(name=\"example.com\",\n private_zone=False)\n\ncert_validation = aws.route53.Record(\"certValidation\",\n name=example_certificate.domain_validation_options[0].resource_record_name,\n records=[example_certificate.domain_validation_options[0].resource_record_value],\n ttl=60,\n type=example_certificate.domain_validation_options[0].resource_record_type,\n zone_id=example_zone.zone_id)\n\ncert_certificate_validation = aws.route53.CertificateValidation(\"cert\",\n certificate_arn=example_certificate.arn,\n validation_record_fdqns=[cert_validation.fdqn])\n\npulumi.export(\"certificate_arn\", cert_certificate_validation.certificate_arn)\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Aws.Acm;\nusing Pulumi.Aws.Route53;\nusing System.Collections.Generic;\n\nreturn await Deployment.RunAsync(() =\u003e\n{\n var exampleCertificate = new Certificate(\"exampleCertificate\", new CertificateArgs\n {\n DomainName = \"example.com\",\n ValidationMethod = \"DNS\"\n });\n\n var exampleZone = GetZone.Invoke(new GetZoneInvokeArgs\n {\n Name = \"example.com\",\n PrivateZone = false,\n });\n\n var certValidation = new Record(\"certValidation\", new RecordArgs\n {\n Name = exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordName!),\n Records =\n {\n exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordValue!),\n },\n Ttl = 60,\n Type = exampleCertificate.DomainValidationOptions.Apply(options =\u003e options[0].ResourceRecordType!),\n ZoneId = exampleZone.Apply(zone =\u003e zone.Id),\n });\n\n var certCertificateValidation = new CertificateValidation(\"cert\", new CertificateValidationArgs\n {\n CertificateArn = exampleCertificate.Arn,\n ValidationRecordFqdns =\n {\n certValidation.Fqdn,\n },\n });\n \n return new Dictionary\u003cstring, object?\u003e\n {\n [\"certificateArn\"] = certCertificateValidation.CertificateArn,\n };\n});\n```\n```yaml\nvariables:\n zoneId:\n Fn::Invoke:\n Function: aws.route53.getZone\n Arguments:\n name: \"example.com\"\n privateZone: false\n Return: id\nresources:\n exampleCertificate:\n type: aws.acm.Certificate\n properties:\n domainName: \"example.com\"\n validationMethod: \"DNS\"\n certValidation:\n type: aws.route53.Record\n properties:\n name: ${exampleCertificate.domainValidationOptions[0].resourceRecordName}\n records: [${exampleCertificate.domainValidationOptions[0].resourceRecordValue}]\n ttl: 60\n type: ${exampleCertificate.domainValidationOptions[0].resourceRecordType}\n zoneId: ${zoneId}\n certCertificateValidation:\n type: aws.acm.CertificateValidation\n properties:\n certificateArn: ${exampleCertificate.arn}\n validationRecordFqdns: [${certValidation.fqdn}]\noutputs:\n certificateArn: ${certCertificateValidation.certificateArn}\n```\n{{% /example %}}\n{{% example %}}\n### Email Validation\n\n```typescript\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleCertificate = new aws.acm.Certificate(\"exampleCertificate\", {\n domainName: \"example.com\",\n validationMethod: \"EMAIL\",\n});\n\nconst exampleCertificateValidation = new aws.acm.CertificateValidation(\"exampleCertificateValidation\", {\n certificateArn: exampleCertificate.arn,\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/acm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n exampleCertificate, err := acm.NewCertificate(ctx, \"exampleCertificate\", \u0026acm.CertificateArgs{\n DomainName: pulumi.String(\"example.com\"),\n ValidationMethod: pulumi.String(\"EMAIL\"),\n })\n if err != nil {\n return err\n }\n \n _, err = acm.NewCertificateValidation(ctx, \"exampleCertificateValidation\", \u0026acm.CertificateValidationArgs{\n CertificateArn: exampleCertificate.Arn,\n })\n if err != nil {\n return err\n }\n\t\treturn nil\n\t})\n}\n```\n```python\nimport pulumi_aws as aws\n\nexample_certificate = aws.acm.Certificate(\"exampleCertificate\",\n domain_name=\"example.com\",\n validation_method=\"EMAIL\")\n\nexample_certificate_validation = aws.acm.CertificateValidation(\"exampleCertificateValidation\",\n certificate_arn=example_certificate.arn)\n```\n```csharp\nusing Pulumi;\nusing Pulumi.Aws.Acm;\n\nreturn await Deployment.RunAsync(() =\u003e\n{\n var exampleCertificate = new Certificate(\"exampleCertificate\", new CertificateArgs\n {\n DomainName = \"example.com\",\n ValidationMethod = \"EMAIL\"\n });\n\n var certCertificateValidation = new CertificateValidation(\"cert\", new CertificateValidationArgs\n {\n CertificateArn = exampleCertificate.Arn,\n });\n});\n\n```\n```yaml\nresources:\n exampleCertificate:\n type: aws.acm.Certificate\n properties:\n domainName: \"example.com\"\n validationMethod: \"EMAIL\"\n certCertificateValidation:\n type: aws.acm.CertificateValidation\n properties:\n certificateArn: ${exampleCertificate.arn}\n```\n{{% /example %}}\n\n{{% //examples %}}",
"properties": {
"certificateArn": {
"type": "string",
@@ -382661,7 +385708,7 @@
}
},
"aws:amp/workspace:Workspace": {
- "description": "Manages an Amazon Managed Service for Prometheus (AMP) Workspace.\n\n\u003e **NOTE:** This AWS functionality is in Preview and may change before General Availability release. Backwards compatibility is not guaranteed between provider releases.\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 demo = new aws.amp.Workspace(\"demo\", {\n alias: \"prometheus-test\",\n tags: {\n Environment: \"production\",\n Owner: \"abhi\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndemo = aws.amp.Workspace(\"demo\",\n alias=\"prometheus-test\",\n tags={\n \"Environment\": \"production\",\n \"Owner\": \"abhi\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var demo = new Aws.Amp.Workspace(\"demo\", new()\n {\n Alias = \"prometheus-test\",\n Tags = \n {\n { \"Environment\", \"production\" },\n { \"Owner\", \"abhi\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/amp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := amp.NewWorkspace(ctx, \"demo\", \u0026amp.WorkspaceArgs{\n\t\t\tAlias: pulumi.String(\"prometheus-test\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"production\"),\n\t\t\t\t\"Owner\": pulumi.String(\"abhi\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.amp.Workspace;\nimport com.pulumi.aws.amp.WorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var demo = new Workspace(\"demo\", WorkspaceArgs.builder() \n .alias(\"prometheus-test\")\n .tags(Map.ofEntries(\n Map.entry(\"Environment\", \"production\"),\n Map.entry(\"Owner\", \"abhi\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n demo:\n type: aws:amp:Workspace\n properties:\n alias: prometheus-test\n tags:\n Environment: production\n Owner: abhi\n```\n{{% /example %}}\n{{% /examples %}}\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 ",
+ "description": "Manages an Amazon Managed Service for Prometheus (AMP) Workspace.\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.amp.Workspace(\"example\", {\n alias: \"example\",\n tags: {\n Environment: \"production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.amp.Workspace(\"example\",\n alias=\"example\",\n tags={\n \"Environment\": \"production\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Amp.Workspace(\"example\", new()\n {\n Alias = \"example\",\n Tags = \n {\n { \"Environment\", \"production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/amp\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := amp.NewWorkspace(ctx, \"example\", \u0026amp.WorkspaceArgs{\n\t\t\tAlias: pulumi.String(\"example\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.amp.Workspace;\nimport com.pulumi.aws.amp.WorkspaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Workspace(\"example\", WorkspaceArgs.builder() \n .alias(\"example\")\n .tags(Map.of(\"Environment\", \"production\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:amp:Workspace\n properties:\n alias: example\n tags:\n Environment: production\n```\n{{% /example %}}\n{{% example %}}\n### CloudWatch Logging\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleLogGroup = new aws.cloudwatch.LogGroup(\"example\", {});\nconst exampleWorkspace = new aws.amp.Workspace(\"example\", {\n loggingConfiguration: {\n logGroupArn: pulumi.interpolate`${exampleLogGroup.arn}:*`,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_log_group = aws.cloudwatch.LogGroup(\"exampleLogGroup\")\nexample_workspace = aws.amp.Workspace(\"exampleWorkspace\", logging_configuration=aws.amp.WorkspaceLoggingConfigurationArgs(\n log_group_arn=example_log_group.arn.apply(lambda arn: f\"{arn}:*\"),\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleLogGroup = new Aws.CloudWatch.LogGroup(\"exampleLogGroup\");\n\n var exampleWorkspace = new Aws.Amp.Workspace(\"exampleWorkspace\", new()\n {\n LoggingConfiguration = new Aws.Amp.Inputs.WorkspaceLoggingConfigurationArgs\n {\n LogGroupArn = exampleLogGroup.Arn.Apply(arn =\u003e $\"{arn}:*\"),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/amp\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleLogGroup, err := cloudwatch.NewLogGroup(ctx, \"exampleLogGroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = amp.NewWorkspace(ctx, \"exampleWorkspace\", \u0026amp.WorkspaceArgs{\n\t\t\tLoggingConfiguration: \u0026amp.WorkspaceLoggingConfigurationArgs{\n\t\t\t\tLogGroupArn: exampleLogGroup.Arn.ApplyT(func(arn string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v:*\", arn), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.LogGroup;\nimport com.pulumi.aws.amp.Workspace;\nimport com.pulumi.aws.amp.WorkspaceArgs;\nimport com.pulumi.aws.amp.inputs.WorkspaceLoggingConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleLogGroup = new LogGroup(\"exampleLogGroup\");\n\n var exampleWorkspace = new Workspace(\"exampleWorkspace\", WorkspaceArgs.builder() \n .loggingConfiguration(WorkspaceLoggingConfigurationArgs.builder()\n .logGroupArn(exampleLogGroup.arn().applyValue(arn -\u003e String.format(\"%s:*\", arn)))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleLogGroup:\n type: aws:cloudwatch:LogGroup\n exampleWorkspace:\n type: aws:amp:Workspace\n properties:\n loggingConfiguration:\n logGroupArn: ${exampleLogGroup.arn}:*\n```\n{{% /example %}}\n{{% /examples %}}\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",
@@ -382671,6 +385718,10 @@
"type": "string",
"description": "Amazon Resource Name (ARN) of the workspace.\n"
},
+ "loggingConfiguration": {
+ "$ref": "#/types/aws:amp/WorkspaceLoggingConfiguration:WorkspaceLoggingConfiguration",
+ "description": "Logging configuration for the workspace. See Logging Configuration below for details.\n"
+ },
"prometheusEndpoint": {
"type": "string",
"description": "Prometheus endpoint available for this workspace.\n"
@@ -382700,6 +385751,10 @@
"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"
},
+ "loggingConfiguration": {
+ "$ref": "#/types/aws:amp/WorkspaceLoggingConfiguration:WorkspaceLoggingConfiguration",
+ "description": "Logging configuration for the workspace. See Logging Configuration below for details.\n"
+ },
"tags": {
"type": "object",
"additionalProperties": {
@@ -382719,6 +385774,10 @@
"type": "string",
"description": "Amazon Resource Name (ARN) of the workspace.\n"
},
+ "loggingConfiguration": {
+ "$ref": "#/types/aws:amp/WorkspaceLoggingConfiguration:WorkspaceLoggingConfiguration",
+ "description": "Logging configuration for the workspace. See Logging Configuration below for details.\n"
+ },
"prometheusEndpoint": {
"type": "string",
"description": "Prometheus endpoint available for this workspace.\n"
@@ -400637,7 +403696,7 @@
}
},
"aws:cfg/rule:Rule": {
- "description": "Provides an AWS Config Rule.\n\n\u003e **Note:** Config Rule requires an existing `Configuration Recorder` to be present. Use of `depends_on` is recommended (as shown below) to avoid race conditions.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### AWS Managed Rules\n\nAWS managed rules can be used by setting the source owner to `AWS` and the source identifier to the name of the managed rule. More information about AWS managed rules can be found in the [AWS Config Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst role = new aws.iam.Role(\"role\", {assumeRolePolicy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n`});\nconst foo = new aws.cfg.Recorder(\"foo\", {roleArn: role.arn});\nconst rule = new aws.cfg.Rule(\"rule\", {source: {\n owner: \"AWS\",\n sourceIdentifier: \"S3_BUCKET_VERSIONING_ENABLED\",\n}}, {\n dependsOn: [foo],\n});\nconst rolePolicy = new aws.iam.RolePolicy(\"rolePolicy\", {\n role: role.id,\n policy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nrole = aws.iam.Role(\"role\", assume_role_policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n\"\"\")\nfoo = aws.cfg.Recorder(\"foo\", role_arn=role.arn)\nrule = aws.cfg.Rule(\"rule\", source=aws.cfg.RuleSourceArgs(\n owner=\"AWS\",\n source_identifier=\"S3_BUCKET_VERSIONING_ENABLED\",\n),\nopts=pulumi.ResourceOptions(depends_on=[foo]))\nrole_policy = aws.iam.RolePolicy(\"rolePolicy\",\n role=role.id,\n policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var role = new Aws.Iam.Role(\"role\", new()\n {\n AssumeRolePolicy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {\n \"\"Action\"\": \"\"sts:AssumeRole\"\",\n \"\"Principal\"\": {\n \"\"Service\"\": \"\"config.amazonaws.com\"\"\n },\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Sid\"\": \"\"\"\"\n }\n ]\n}\n\",\n });\n\n var foo = new Aws.Cfg.Recorder(\"foo\", new()\n {\n RoleArn = role.Arn,\n });\n\n var rule = new Aws.Cfg.Rule(\"rule\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"AWS\",\n SourceIdentifier = \"S3_BUCKET_VERSIONING_ENABLED\",\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n foo,\n },\n });\n\n var rolePolicy = new Aws.Iam.RolePolicy(\"rolePolicy\", new()\n {\n Role = role.Id,\n Policy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n \t{\n \t\t\"\"Action\"\": \"\"config:Put*\"\",\n \t\t\"\"Effect\"\": \"\"Allow\"\",\n \t\t\"\"Resource\"\": \"\"*\"\"\n\n \t}\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/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n`)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := cfg.NewRecorder(ctx, \"foo\", \u0026cfg.RecorderArgs{\n\t\t\tRoleArn: role.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRule(ctx, \"rule\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"AWS\"),\n\t\t\t\tSourceIdentifier: pulumi.String(\"S3_BUCKET_VERSIONING_ENABLED\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfoo,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"rolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: role.ID(),\n\t\t\tPolicy: pulumi.Any(fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.cfg.Recorder;\nimport com.pulumi.aws.cfg.RecorderArgs;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var role = new Role(\"role\", RoleArgs.builder() \n .assumeRolePolicy(\"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n \"\"\")\n .build());\n\n var foo = new Recorder(\"foo\", RecorderArgs.builder() \n .roleArn(role.arn())\n .build());\n\n var rule = new Rule(\"rule\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"AWS\")\n .sourceIdentifier(\"S3_BUCKET_VERSIONING_ENABLED\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(foo)\n .build());\n\n var rolePolicy = new RolePolicy(\"rolePolicy\", RolePolicyArgs.builder() \n .role(role.id())\n .policy(\"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule:\n type: aws:cfg:Rule\n properties:\n source:\n owner: AWS\n sourceIdentifier: S3_BUCKET_VERSIONING_ENABLED\n options:\n dependson:\n - ${foo}\n foo:\n type: aws:cfg:Recorder\n properties:\n roleArn: ${role.arn}\n role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n }\n rolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${role.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n }\n```\n{{% /example %}}\n{{% example %}}\n### Custom Rules\n\nCustom rules can be used by setting the source owner to `CUSTOM_LAMBDA` and the source identifier to the Amazon Resource Name (ARN) of the Lambda Function. The AWS Config service must have permissions to invoke the Lambda Function, e.g. via the `aws.lambda.Permission` resource. More information about custom rules can be found in the [AWS Config Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleRecorder = new aws.cfg.Recorder(\"exampleRecorder\", {});\n// ... other configuration ...\nconst exampleFunction = new aws.lambda.Function(\"exampleFunction\", {});\n// ... other configuration ...\nconst examplePermission = new aws.lambda.Permission(\"examplePermission\", {\n action: \"lambda:InvokeFunction\",\n \"function\": exampleFunction.arn,\n principal: \"config.amazonaws.com\",\n});\n// ... other configuration ...\nconst exampleRule = new aws.cfg.Rule(\"exampleRule\", {source: {\n owner: \"CUSTOM_LAMBDA\",\n sourceIdentifier: exampleFunction.arn,\n}}, {\n dependsOn: [\n exampleRecorder,\n examplePermission,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_recorder = aws.cfg.Recorder(\"exampleRecorder\")\n# ... other configuration ...\nexample_function = aws.lambda_.Function(\"exampleFunction\")\n# ... other configuration ...\nexample_permission = aws.lambda_.Permission(\"examplePermission\",\n action=\"lambda:InvokeFunction\",\n function=example_function.arn,\n principal=\"config.amazonaws.com\")\n# ... other configuration ...\nexample_rule = aws.cfg.Rule(\"exampleRule\", source=aws.cfg.RuleSourceArgs(\n owner=\"CUSTOM_LAMBDA\",\n source_identifier=example_function.arn,\n),\nopts=pulumi.ResourceOptions(depends_on=[\n example_recorder,\n example_permission,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleRecorder = new Aws.Cfg.Recorder(\"exampleRecorder\");\n\n // ... other configuration ...\n var exampleFunction = new Aws.Lambda.Function(\"exampleFunction\");\n\n // ... other configuration ...\n var examplePermission = new Aws.Lambda.Permission(\"examplePermission\", new()\n {\n Action = \"lambda:InvokeFunction\",\n Function = exampleFunction.Arn,\n Principal = \"config.amazonaws.com\",\n });\n\n // ... other configuration ...\n var exampleRule = new Aws.Cfg.Rule(\"exampleRule\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"CUSTOM_LAMBDA\",\n SourceIdentifier = exampleFunction.Arn,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n exampleRecorder,\n examplePermission,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleRecorder, err := cfg.NewRecorder(ctx, \"exampleRecorder\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFunction, err := lambda.NewFunction(ctx, \"exampleFunction\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePermission, err := lambda.NewPermission(ctx, \"examplePermission\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: exampleFunction.Arn,\n\t\t\tPrincipal: pulumi.String(\"config.amazonaws.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRule(ctx, \"exampleRule\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"CUSTOM_LAMBDA\"),\n\t\t\t\tSourceIdentifier: exampleFunction.Arn,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleRecorder,\n\t\t\texamplePermission,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cfg.Recorder;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleRecorder = new Recorder(\"exampleRecorder\");\n\n var exampleFunction = new Function(\"exampleFunction\");\n\n var examplePermission = new Permission(\"examplePermission\", PermissionArgs.builder() \n .action(\"lambda:InvokeFunction\")\n .function(exampleFunction.arn())\n .principal(\"config.amazonaws.com\")\n .build());\n\n var exampleRule = new Rule(\"exampleRule\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"CUSTOM_LAMBDA\")\n .sourceIdentifier(exampleFunction.arn())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n exampleRecorder,\n examplePermission)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRecorder:\n type: aws:cfg:Recorder\n exampleFunction:\n type: aws:lambda:Function\n examplePermission:\n type: aws:lambda:Permission\n properties:\n action: lambda:InvokeFunction\n function: ${exampleFunction.arn}\n principal: config.amazonaws.com\n exampleRule:\n type: aws:cfg:Rule\n properties:\n source:\n owner: CUSTOM_LAMBDA\n sourceIdentifier: ${exampleFunction.arn}\n options:\n dependson:\n - ${exampleRecorder}\n - ${examplePermission}\n```\n\n{{% /example %}}\n{{% example %}}\n### Custom Policies\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cfg.Rule(\"example\", {source: {\n owner: \"CUSTOM_POLICY\",\n sourceDetails: [{\n messageType: \"ConfigurationItemChangeNotification\",\n }],\n customPolicyDetails: {\n policyRuntime: \"guard-2.x.x\",\n policyText: `\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n`,\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cfg.Rule(\"example\", source=aws.cfg.RuleSourceArgs(\n owner=\"CUSTOM_POLICY\",\n source_details=[aws.cfg.RuleSourceSourceDetailArgs(\n message_type=\"ConfigurationItemChangeNotification\",\n )],\n custom_policy_details=aws.cfg.RuleSourceCustomPolicyDetailsArgs(\n policy_runtime=\"guard-2.x.x\",\n policy_text=\"\"\"\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n\"\"\",\n ),\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Cfg.Rule(\"example\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"CUSTOM_POLICY\",\n SourceDetails = new[]\n {\n new Aws.Cfg.Inputs.RuleSourceSourceDetailArgs\n {\n MessageType = \"ConfigurationItemChangeNotification\",\n },\n },\n CustomPolicyDetails = new Aws.Cfg.Inputs.RuleSourceCustomPolicyDetailsArgs\n {\n PolicyRuntime = \"guard-2.x.x\",\n PolicyText = @\"\t rule tableisactive when\n\t\t resourceType == \"\"AWS::DynamoDB::Table\"\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"\"AWS::DynamoDB::Table\"\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"\"ENABLED\"\"\n\t }\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/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cfg.NewRule(ctx, \"example\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"CUSTOM_POLICY\"),\n\t\t\t\tSourceDetails: cfg.RuleSourceSourceDetailArray{\n\t\t\t\t\t\u0026cfg.RuleSourceSourceDetailArgs{\n\t\t\t\t\t\tMessageType: pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCustomPolicyDetails: \u0026cfg.RuleSourceCustomPolicyDetailsArgs{\n\t\t\t\t\tPolicyRuntime: pulumi.String(\"guard-2.x.x\"),\n\t\t\t\t\tPolicyText: pulumi.String(fmt.Sprintf(`\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n`)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceCustomPolicyDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Rule(\"example\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"CUSTOM_POLICY\")\n .sourceDetails(RuleSourceSourceDetailArgs.builder()\n .messageType(\"ConfigurationItemChangeNotification\")\n .build())\n .customPolicyDetails(RuleSourceCustomPolicyDetailsArgs.builder()\n .policyRuntime(\"guard-2.x.x\")\n .policyText(\"\"\"\n\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n \"\"\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cfg:Rule\n properties:\n source:\n owner: CUSTOM_POLICY\n sourceDetails:\n - messageType: ConfigurationItemChangeNotification\n customPolicyDetails:\n policyRuntime: guard-2.x.x\n policyText: \"\\t rule tableisactive when\\n\\t\\t resourceType == \\\"AWS::DynamoDB::Table\\\" {\\n\\t\\t configuration.tableStatus == ['ACTIVE']\\n\\t }\\n\\t \\n\\t rule checkcompliance when\\n\\t\\t resourceType == \\\"AWS::DynamoDB::Table\\\"\\n\\t\\t tableisactive {\\n\\t\\t\\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \\\"ENABLED\\\"\\n\\t }\\n\"\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nConfig Rule can be imported using the name, e.g.,\n\n```sh\n $ pulumi import aws:cfg/rule:Rule foo example\n```\n\n ",
+ "description": "Provides an AWS Config Rule.\n\n\u003e **Note:** Config Rule requires an existing `Configuration Recorder` to be present. Use of `depends_on` is recommended (as shown below) to avoid race conditions.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### AWS Managed Rules\n\nAWS managed rules can be used by setting the source owner to `AWS` and the source identifier to the name of the managed rule. More information about AWS managed rules can be found in the [AWS Config Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst role = new aws.iam.Role(\"role\", {assumeRolePolicy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n`});\nconst foo = new aws.cfg.Recorder(\"foo\", {roleArn: role.arn});\nconst rule = new aws.cfg.Rule(\"rule\", {source: {\n owner: \"AWS\",\n sourceIdentifier: \"S3_BUCKET_VERSIONING_ENABLED\",\n}}, {\n dependsOn: [foo],\n});\nconst rolePolicy = new aws.iam.RolePolicy(\"rolePolicy\", {\n role: role.id,\n policy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nrole = aws.iam.Role(\"role\", assume_role_policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n\"\"\")\nfoo = aws.cfg.Recorder(\"foo\", role_arn=role.arn)\nrule = aws.cfg.Rule(\"rule\", source=aws.cfg.RuleSourceArgs(\n owner=\"AWS\",\n source_identifier=\"S3_BUCKET_VERSIONING_ENABLED\",\n),\nopts=pulumi.ResourceOptions(depends_on=[foo]))\nrole_policy = aws.iam.RolePolicy(\"rolePolicy\",\n role=role.id,\n policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var role = new Aws.Iam.Role(\"role\", new()\n {\n AssumeRolePolicy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {\n \"\"Action\"\": \"\"sts:AssumeRole\"\",\n \"\"Principal\"\": {\n \"\"Service\"\": \"\"config.amazonaws.com\"\"\n },\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Sid\"\": \"\"\"\"\n }\n ]\n}\n\",\n });\n\n var foo = new Aws.Cfg.Recorder(\"foo\", new()\n {\n RoleArn = role.Arn,\n });\n\n var rule = new Aws.Cfg.Rule(\"rule\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"AWS\",\n SourceIdentifier = \"S3_BUCKET_VERSIONING_ENABLED\",\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n foo,\n },\n });\n\n var rolePolicy = new Aws.Iam.RolePolicy(\"rolePolicy\", new()\n {\n Role = role.Id,\n Policy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n \t{\n \t\t\"\"Action\"\": \"\"config:Put*\"\",\n \t\t\"\"Effect\"\": \"\"Allow\"\",\n \t\t\"\"Resource\"\": \"\"*\"\"\n\n \t}\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/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trole, err := iam.NewRole(ctx, \"role\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n`)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := cfg.NewRecorder(ctx, \"foo\", \u0026cfg.RecorderArgs{\n\t\t\tRoleArn: role.Arn,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRule(ctx, \"rule\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"AWS\"),\n\t\t\t\tSourceIdentifier: pulumi.String(\"S3_BUCKET_VERSIONING_ENABLED\"),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tfoo,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"rolePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: role.ID(),\n\t\t\tPolicy: pulumi.Any(fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.cfg.Recorder;\nimport com.pulumi.aws.cfg.RecorderArgs;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var role = new Role(\"role\", RoleArgs.builder() \n .assumeRolePolicy(\"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n}\n \"\"\")\n .build());\n\n var foo = new Recorder(\"foo\", RecorderArgs.builder() \n .roleArn(role.arn())\n .build());\n\n var rule = new Rule(\"rule\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"AWS\")\n .sourceIdentifier(\"S3_BUCKET_VERSIONING_ENABLED\")\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(foo)\n .build());\n\n var rolePolicy = new RolePolicy(\"rolePolicy\", RolePolicyArgs.builder() \n .role(role.id())\n .policy(\"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n rule:\n type: aws:cfg:Rule\n properties:\n source:\n owner: AWS\n sourceIdentifier: S3_BUCKET_VERSIONING_ENABLED\n options:\n dependson:\n - ${foo}\n foo:\n type: aws:cfg:Recorder\n properties:\n roleArn: ${role.arn}\n role:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"config.amazonaws.com\"\n },\n \"Effect\": \"Allow\",\n \"Sid\": \"\"\n }\n ]\n }\n rolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${role.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n \t{\n \t\t\"Action\": \"config:Put*\",\n \t\t\"Effect\": \"Allow\",\n \t\t\"Resource\": \"*\"\n\n \t}\n ]\n }\n```\n{{% /example %}}\n{{% example %}}\n### Custom Rules\n\nCustom rules can be used by setting the source owner to `CUSTOM_LAMBDA` and the source identifier to the Amazon Resource Name (ARN) of the Lambda Function. The AWS Config service must have permissions to invoke the Lambda Function, e.g. via the `aws.lambda.Permission` resource. More information about custom rules can be found in the [AWS Config Developer Guide](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleRecorder = new aws.cfg.Recorder(\"exampleRecorder\", {});\n// ... other configuration ...\nconst exampleFunction = new aws.lambda.Function(\"exampleFunction\", {});\n// ... other configuration ...\nconst examplePermission = new aws.lambda.Permission(\"examplePermission\", {\n action: \"lambda:InvokeFunction\",\n \"function\": exampleFunction.arn,\n principal: \"config.amazonaws.com\",\n});\n// ... other configuration ...\nconst exampleRule = new aws.cfg.Rule(\"exampleRule\", {source: {\n owner: \"CUSTOM_LAMBDA\",\n sourceIdentifier: exampleFunction.arn,\n}}, {\n dependsOn: [\n exampleRecorder,\n examplePermission,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_recorder = aws.cfg.Recorder(\"exampleRecorder\")\n# ... other configuration ...\nexample_function = aws.lambda_.Function(\"exampleFunction\")\n# ... other configuration ...\nexample_permission = aws.lambda_.Permission(\"examplePermission\",\n action=\"lambda:InvokeFunction\",\n function=example_function.arn,\n principal=\"config.amazonaws.com\")\n# ... other configuration ...\nexample_rule = aws.cfg.Rule(\"exampleRule\", source=aws.cfg.RuleSourceArgs(\n owner=\"CUSTOM_LAMBDA\",\n source_identifier=example_function.arn,\n),\nopts=pulumi.ResourceOptions(depends_on=[\n example_recorder,\n example_permission,\n ]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleRecorder = new Aws.Cfg.Recorder(\"exampleRecorder\");\n\n // ... other configuration ...\n var exampleFunction = new Aws.Lambda.Function(\"exampleFunction\");\n\n // ... other configuration ...\n var examplePermission = new Aws.Lambda.Permission(\"examplePermission\", new()\n {\n Action = \"lambda:InvokeFunction\",\n Function = exampleFunction.Arn,\n Principal = \"config.amazonaws.com\",\n });\n\n // ... other configuration ...\n var exampleRule = new Aws.Cfg.Rule(\"exampleRule\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"CUSTOM_LAMBDA\",\n SourceIdentifier = exampleFunction.Arn,\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n exampleRecorder,\n examplePermission,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/lambda\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleRecorder, err := cfg.NewRecorder(ctx, \"exampleRecorder\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFunction, err := lambda.NewFunction(ctx, \"exampleFunction\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePermission, err := lambda.NewPermission(ctx, \"examplePermission\", \u0026lambda.PermissionArgs{\n\t\t\tAction: pulumi.String(\"lambda:InvokeFunction\"),\n\t\t\tFunction: exampleFunction.Arn,\n\t\t\tPrincipal: pulumi.String(\"config.amazonaws.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cfg.NewRule(ctx, \"exampleRule\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"CUSTOM_LAMBDA\"),\n\t\t\t\tSourceIdentifier: exampleFunction.Arn,\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleRecorder,\n\t\t\texamplePermission,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cfg.Recorder;\nimport com.pulumi.aws.lambda.Function;\nimport com.pulumi.aws.lambda.Permission;\nimport com.pulumi.aws.lambda.PermissionArgs;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleRecorder = new Recorder(\"exampleRecorder\");\n\n var exampleFunction = new Function(\"exampleFunction\");\n\n var examplePermission = new Permission(\"examplePermission\", PermissionArgs.builder() \n .action(\"lambda:InvokeFunction\")\n .function(exampleFunction.arn())\n .principal(\"config.amazonaws.com\")\n .build());\n\n var exampleRule = new Rule(\"exampleRule\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"CUSTOM_LAMBDA\")\n .sourceIdentifier(exampleFunction.arn())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn( \n exampleRecorder,\n examplePermission)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleRecorder:\n type: aws:cfg:Recorder\n exampleFunction:\n type: aws:lambda:Function\n examplePermission:\n type: aws:lambda:Permission\n properties:\n action: lambda:InvokeFunction\n function: ${exampleFunction.arn}\n principal: config.amazonaws.com\n exampleRule:\n type: aws:cfg:Rule\n properties:\n source:\n owner: CUSTOM_LAMBDA\n sourceIdentifier: ${exampleFunction.arn}\n options:\n dependson:\n - ${exampleRecorder}\n - ${examplePermission}\n```\n{{% /example %}}\n{{% example %}}\n### Custom Policies\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.cfg.Rule(\"example\", {source: {\n owner: \"CUSTOM_POLICY\",\n sourceDetails: [{\n messageType: \"ConfigurationItemChangeNotification\",\n }],\n customPolicyDetails: {\n policyRuntime: \"guard-2.x.x\",\n policyText: `\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n`,\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.cfg.Rule(\"example\", source=aws.cfg.RuleSourceArgs(\n owner=\"CUSTOM_POLICY\",\n source_details=[aws.cfg.RuleSourceSourceDetailArgs(\n message_type=\"ConfigurationItemChangeNotification\",\n )],\n custom_policy_details=aws.cfg.RuleSourceCustomPolicyDetailsArgs(\n policy_runtime=\"guard-2.x.x\",\n policy_text=\"\"\"\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n\"\"\",\n ),\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Cfg.Rule(\"example\", new()\n {\n Source = new Aws.Cfg.Inputs.RuleSourceArgs\n {\n Owner = \"CUSTOM_POLICY\",\n SourceDetails = new[]\n {\n new Aws.Cfg.Inputs.RuleSourceSourceDetailArgs\n {\n MessageType = \"ConfigurationItemChangeNotification\",\n },\n },\n CustomPolicyDetails = new Aws.Cfg.Inputs.RuleSourceCustomPolicyDetailsArgs\n {\n PolicyRuntime = \"guard-2.x.x\",\n PolicyText = @\"\t rule tableisactive when\n\t\t resourceType == \"\"AWS::DynamoDB::Table\"\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"\"AWS::DynamoDB::Table\"\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"\"ENABLED\"\"\n\t }\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/v5/go/aws/cfg\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cfg.NewRule(ctx, \"example\", \u0026cfg.RuleArgs{\n\t\t\tSource: \u0026cfg.RuleSourceArgs{\n\t\t\t\tOwner: pulumi.String(\"CUSTOM_POLICY\"),\n\t\t\t\tSourceDetails: cfg.RuleSourceSourceDetailArray{\n\t\t\t\t\t\u0026cfg.RuleSourceSourceDetailArgs{\n\t\t\t\t\t\tMessageType: pulumi.String(\"ConfigurationItemChangeNotification\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tCustomPolicyDetails: \u0026cfg.RuleSourceCustomPolicyDetailsArgs{\n\t\t\t\t\tPolicyRuntime: pulumi.String(\"guard-2.x.x\"),\n\t\t\t\t\tPolicyText: pulumi.String(fmt.Sprintf(`\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n`)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cfg.Rule;\nimport com.pulumi.aws.cfg.RuleArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceArgs;\nimport com.pulumi.aws.cfg.inputs.RuleSourceCustomPolicyDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Rule(\"example\", RuleArgs.builder() \n .source(RuleSourceArgs.builder()\n .owner(\"CUSTOM_POLICY\")\n .sourceDetails(RuleSourceSourceDetailArgs.builder()\n .messageType(\"ConfigurationItemChangeNotification\")\n .build())\n .customPolicyDetails(RuleSourceCustomPolicyDetailsArgs.builder()\n .policyRuntime(\"guard-2.x.x\")\n .policyText(\"\"\"\n\t rule tableisactive when\n\t\t resourceType == \"AWS::DynamoDB::Table\" {\n\t\t configuration.tableStatus == ['ACTIVE']\n\t }\n\t \n\t rule checkcompliance when\n\t\t resourceType == \"AWS::DynamoDB::Table\"\n\t\t tableisactive {\n\t\t\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \"ENABLED\"\n\t }\n \"\"\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:cfg:Rule\n properties:\n source:\n owner: CUSTOM_POLICY\n sourceDetails:\n - messageType: ConfigurationItemChangeNotification\n customPolicyDetails:\n policyRuntime: guard-2.x.x\n policyText: \"\\t rule tableisactive when\\n\\t\\t resourceType == \\\"AWS::DynamoDB::Table\\\" {\\n\\t\\t configuration.tableStatus == ['ACTIVE']\\n\\t }\\n\\t \\n\\t rule checkcompliance when\\n\\t\\t resourceType == \\\"AWS::DynamoDB::Table\\\"\\n\\t\\t tableisactive {\\n\\t\\t\\t supplementaryConfiguration.ContinuousBackupsDescription.pointInTimeRecoveryDescription.pointInTimeRecoveryStatus == \\\"ENABLED\\\"\\n\\t }\\n\"\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nConfig Rule can be imported using the name, e.g.,\n\n```sh\n $ pulumi import aws:cfg/rule:Rule foo example\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -402556,7 +405615,7 @@
}
},
"aws:cloudfront/distribution:Distribution": {
- "description": "Creates an Amazon CloudFront web distribution.\n\nFor information about CloudFront distributions, see the\n[Amazon CloudFront Developer Guide](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). For specific information about creating\nCloudFront web distributions, see the [POST Distribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) page in the Amazon\nCloudFront API Reference.\n\n\u003e **NOTE:** CloudFront distributions take about 15 minutes to reach a deployed\nstate after creation or modification. During this time, deletes to resources will\nbe blocked. If you need to delete a distribution that is enabled and you do not\nwant to wait, you need to use the `retain_on_delete` flag.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example below creates a CloudFront distribution with an S3 origin.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucketV2 = new aws.s3.BucketV2(\"bucketV2\", {tags: {\n Name: \"My bucket\",\n}});\nconst bAcl = new aws.s3.BucketAclV2(\"bAcl\", {\n bucket: bucketV2.id,\n acl: \"private\",\n});\nconst s3OriginId = \"myS3Origin\";\nconst s3Distribution = new aws.cloudfront.Distribution(\"s3Distribution\", {\n origins: [{\n domainName: bucketV2.bucketRegionalDomainName,\n originId: s3OriginId,\n s3OriginConfig: {\n originAccessIdentity: \"origin-access-identity/cloudfront/ABCDEFG1234567\",\n },\n }],\n enabled: true,\n isIpv6Enabled: true,\n comment: \"Some comment\",\n defaultRootObject: \"index.html\",\n loggingConfig: {\n includeCookies: false,\n bucket: \"mylogs.s3.amazonaws.com\",\n prefix: \"myprefix\",\n },\n aliases: [\n \"mysite.example.com\",\n \"yoursite.example.com\",\n ],\n defaultCacheBehavior: {\n allowedMethods: [\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n cookies: {\n forward: \"none\",\n },\n },\n viewerProtocolPolicy: \"allow-all\",\n minTtl: 0,\n defaultTtl: 3600,\n maxTtl: 86400,\n },\n orderedCacheBehaviors: [\n {\n pathPattern: \"/content/immutable/*\",\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n headers: [\"Origin\"],\n cookies: {\n forward: \"none\",\n },\n },\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n compress: true,\n viewerProtocolPolicy: \"redirect-to-https\",\n },\n {\n pathPattern: \"/content/*\",\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n cookies: {\n forward: \"none\",\n },\n },\n minTtl: 0,\n defaultTtl: 3600,\n maxTtl: 86400,\n compress: true,\n viewerProtocolPolicy: \"redirect-to-https\",\n },\n ],\n priceClass: \"PriceClass_200\",\n restrictions: {\n geoRestriction: {\n restrictionType: \"whitelist\",\n locations: [\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n ],\n },\n },\n tags: {\n Environment: \"production\",\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket_v2 = aws.s3.BucketV2(\"bucketV2\", tags={\n \"Name\": \"My bucket\",\n})\nb_acl = aws.s3.BucketAclV2(\"bAcl\",\n bucket=bucket_v2.id,\n acl=\"private\")\ns3_origin_id = \"myS3Origin\"\ns3_distribution = aws.cloudfront.Distribution(\"s3Distribution\",\n origins=[aws.cloudfront.DistributionOriginArgs(\n domain_name=bucket_v2.bucket_regional_domain_name,\n origin_id=s3_origin_id,\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=\"origin-access-identity/cloudfront/ABCDEFG1234567\",\n ),\n )],\n enabled=True,\n is_ipv6_enabled=True,\n comment=\"Some comment\",\n default_root_object=\"index.html\",\n logging_config=aws.cloudfront.DistributionLoggingConfigArgs(\n include_cookies=False,\n bucket=\"mylogs.s3.amazonaws.com\",\n prefix=\"myprefix\",\n ),\n aliases=[\n \"mysite.example.com\",\n \"yoursite.example.com\",\n ],\n default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(\n allowed_methods=[\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs(\n query_string=False,\n cookies=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n viewer_protocol_policy=\"allow-all\",\n min_ttl=0,\n default_ttl=3600,\n max_ttl=86400,\n ),\n ordered_cache_behaviors=[\n aws.cloudfront.DistributionOrderedCacheBehaviorArgs(\n path_pattern=\"/content/immutable/*\",\n allowed_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(\n query_string=False,\n headers=[\"Origin\"],\n cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n min_ttl=0,\n default_ttl=86400,\n max_ttl=31536000,\n compress=True,\n viewer_protocol_policy=\"redirect-to-https\",\n ),\n aws.cloudfront.DistributionOrderedCacheBehaviorArgs(\n path_pattern=\"/content/*\",\n allowed_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(\n query_string=False,\n cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n min_ttl=0,\n default_ttl=3600,\n max_ttl=86400,\n compress=True,\n viewer_protocol_policy=\"redirect-to-https\",\n ),\n ],\n price_class=\"PriceClass_200\",\n restrictions=aws.cloudfront.DistributionRestrictionsArgs(\n geo_restriction=aws.cloudfront.DistributionRestrictionsGeoRestrictionArgs(\n restriction_type=\"whitelist\",\n locations=[\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n ],\n ),\n ),\n tags={\n \"Environment\": \"production\",\n },\n viewer_certificate=aws.cloudfront.DistributionViewerCertificateArgs(\n cloudfront_default_certificate=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bucketV2 = new Aws.S3.BucketV2(\"bucketV2\", new()\n {\n Tags = \n {\n { \"Name\", \"My bucket\" },\n },\n });\n\n var bAcl = new Aws.S3.BucketAclV2(\"bAcl\", new()\n {\n Bucket = bucketV2.Id,\n Acl = \"private\",\n });\n\n var s3OriginId = \"myS3Origin\";\n\n var s3Distribution = new Aws.CloudFront.Distribution(\"s3Distribution\", new()\n {\n Origins = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = bucketV2.BucketRegionalDomainName,\n OriginId = s3OriginId,\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = \"origin-access-identity/cloudfront/ABCDEFG1234567\",\n },\n },\n },\n Enabled = true,\n IsIpv6Enabled = true,\n Comment = \"Some comment\",\n DefaultRootObject = \"index.html\",\n LoggingConfig = new Aws.CloudFront.Inputs.DistributionLoggingConfigArgs\n {\n IncludeCookies = false,\n Bucket = \"mylogs.s3.amazonaws.com\",\n Prefix = \"myprefix\",\n },\n Aliases = new[]\n {\n \"mysite.example.com\",\n \"yoursite.example.com\",\n },\n DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs\n {\n AllowedMethods = new[]\n {\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Cookies = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n ViewerProtocolPolicy = \"allow-all\",\n MinTtl = 0,\n DefaultTtl = 3600,\n MaxTtl = 86400,\n },\n OrderedCacheBehaviors = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs\n {\n PathPattern = \"/content/immutable/*\",\n AllowedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Headers = new[]\n {\n \"Origin\",\n },\n Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n MinTtl = 0,\n DefaultTtl = 86400,\n MaxTtl = 31536000,\n Compress = true,\n ViewerProtocolPolicy = \"redirect-to-https\",\n },\n new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs\n {\n PathPattern = \"/content/*\",\n AllowedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n MinTtl = 0,\n DefaultTtl = 3600,\n MaxTtl = 86400,\n Compress = true,\n ViewerProtocolPolicy = \"redirect-to-https\",\n },\n },\n PriceClass = \"PriceClass_200\",\n Restrictions = new Aws.CloudFront.Inputs.DistributionRestrictionsArgs\n {\n GeoRestriction = new Aws.CloudFront.Inputs.DistributionRestrictionsGeoRestrictionArgs\n {\n RestrictionType = \"whitelist\",\n Locations = new[]\n {\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n },\n },\n },\n Tags = \n {\n { \"Environment\", \"production\" },\n },\n ViewerCertificate = new Aws.CloudFront.Inputs.DistributionViewerCertificateArgs\n {\n CloudfrontDefaultCertificate = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucketV2, err := s3.NewBucketV2(ctx, \"bucketV2\", \u0026s3.BucketV2Args{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"My bucket\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bAcl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucketV2.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts3OriginId := \"myS3Origin\"\n\t\t_, err = cloudfront.NewDistribution(ctx, \"s3Distribution\", \u0026cloudfront.DistributionArgs{\n\t\t\tOrigins: cloudfront.DistributionOriginArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: bucketV2.BucketRegionalDomainName,\n\t\t\t\t\tOriginId: pulumi.String(s3OriginId),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.String(\"origin-access-identity/cloudfront/ABCDEFG1234567\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tIsIpv6Enabled: pulumi.Bool(true),\n\t\t\tComment: pulumi.String(\"Some comment\"),\n\t\t\tDefaultRootObject: pulumi.String(\"index.html\"),\n\t\t\tLoggingConfig: \u0026cloudfront.DistributionLoggingConfigArgs{\n\t\t\t\tIncludeCookies: pulumi.Bool(false),\n\t\t\t\tBucket: pulumi.String(\"mylogs.s3.amazonaws.com\"),\n\t\t\t\tPrefix: pulumi.String(\"myprefix\"),\n\t\t\t},\n\t\t\tAliases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mysite.example.com\"),\n\t\t\t\tpulumi.String(\"yoursite.example.com\"),\n\t\t\t},\n\t\t\tDefaultCacheBehavior: \u0026cloudfront.DistributionDefaultCacheBehaviorArgs{\n\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"DELETE\"),\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\tpulumi.String(\"PATCH\"),\n\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t},\n\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\tForwardedValues: \u0026cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\tCookies: \u0026cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tViewerProtocolPolicy: pulumi.String(\"allow-all\"),\n\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tMaxTtl: pulumi.Int(86400),\n\t\t\t},\n\t\t\tOrderedCacheBehaviors: cloudfront.DistributionOrderedCacheBehaviorArray{\n\t\t\t\t\u0026cloudfront.DistributionOrderedCacheBehaviorArgs{\n\t\t\t\t\tPathPattern: pulumi.String(\"/content/immutable/*\"),\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\t\tForwardedValues: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\t\tHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Origin\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCookies: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\t\tDefaultTtl: pulumi.Int(86400),\n\t\t\t\t\tMaxTtl: pulumi.Int(31536000),\n\t\t\t\t\tCompress: pulumi.Bool(true),\n\t\t\t\t\tViewerProtocolPolicy: pulumi.String(\"redirect-to-https\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudfront.DistributionOrderedCacheBehaviorArgs{\n\t\t\t\t\tPathPattern: pulumi.String(\"/content/*\"),\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\t\tForwardedValues: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\t\tCookies: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\t\tMaxTtl: pulumi.Int(86400),\n\t\t\t\t\tCompress: pulumi.Bool(true),\n\t\t\t\t\tViewerProtocolPolicy: pulumi.String(\"redirect-to-https\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPriceClass: pulumi.String(\"PriceClass_200\"),\n\t\t\tRestrictions: \u0026cloudfront.DistributionRestrictionsArgs{\n\t\t\t\tGeoRestriction: \u0026cloudfront.DistributionRestrictionsGeoRestrictionArgs{\n\t\t\t\t\tRestrictionType: pulumi.String(\"whitelist\"),\n\t\t\t\t\tLocations: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"US\"),\n\t\t\t\t\t\tpulumi.String(\"CA\"),\n\t\t\t\t\t\tpulumi.String(\"GB\"),\n\t\t\t\t\t\tpulumi.String(\"DE\"),\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\"Environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t\tViewerCertificate: \u0026cloudfront.DistributionViewerCertificateArgs{\n\t\t\t\tCloudfrontDefaultCertificate: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.aws.cloudfront.Distribution;\nimport com.pulumi.aws.cloudfront.DistributionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionLoggingConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var bucketV2 = new BucketV2(\"bucketV2\", BucketV2Args.builder() \n .tags(Map.of(\"Name\", \"My bucket\"))\n .build());\n\n var bAcl = new BucketAclV2(\"bAcl\", BucketAclV2Args.builder() \n .bucket(bucketV2.id())\n .acl(\"private\")\n .build());\n\n final var s3OriginId = \"myS3Origin\";\n\n var s3Distribution = new Distribution(\"s3Distribution\", DistributionArgs.builder() \n .origins(DistributionOriginArgs.builder()\n .domainName(bucketV2.bucketRegionalDomainName())\n .originId(s3OriginId)\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(\"origin-access-identity/cloudfront/ABCDEFG1234567\")\n .build())\n .build())\n .enabled(true)\n .isIpv6Enabled(true)\n .comment(\"Some comment\")\n .defaultRootObject(\"index.html\")\n .loggingConfig(DistributionLoggingConfigArgs.builder()\n .includeCookies(false)\n .bucket(\"mylogs.s3.amazonaws.com\")\n .prefix(\"myprefix\")\n .build())\n .aliases( \n \"mysite.example.com\",\n \"yoursite.example.com\")\n .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()\n .allowedMethods( \n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\")\n .cachedMethods( \n \"GET\",\n \"HEAD\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionDefaultCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .cookies(DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .viewerProtocolPolicy(\"allow-all\")\n .minTtl(0)\n .defaultTtl(3600)\n .maxTtl(86400)\n .build())\n .orderedCacheBehaviors( \n DistributionOrderedCacheBehaviorArgs.builder()\n .pathPattern(\"/content/immutable/*\")\n .allowedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .cachedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .headers(\"Origin\")\n .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .minTtl(0)\n .defaultTtl(86400)\n .maxTtl(31536000)\n .compress(true)\n .viewerProtocolPolicy(\"redirect-to-https\")\n .build(),\n DistributionOrderedCacheBehaviorArgs.builder()\n .pathPattern(\"/content/*\")\n .allowedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .cachedMethods( \n \"GET\",\n \"HEAD\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .minTtl(0)\n .defaultTtl(3600)\n .maxTtl(86400)\n .compress(true)\n .viewerProtocolPolicy(\"redirect-to-https\")\n .build())\n .priceClass(\"PriceClass_200\")\n .restrictions(DistributionRestrictionsArgs.builder()\n .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder()\n .restrictionType(\"whitelist\")\n .locations( \n \"US\",\n \"CA\",\n \"GB\",\n \"DE\")\n .build())\n .build())\n .tags(Map.of(\"Environment\", \"production\"))\n .viewerCertificate(DistributionViewerCertificateArgs.builder()\n .cloudfrontDefaultCertificate(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucketV2:\n type: aws:s3:BucketV2\n properties:\n tags:\n Name: My bucket\n bAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucketV2.id}\n acl: private\n s3Distribution:\n type: aws:cloudfront:Distribution\n properties:\n origins:\n - domainName: ${bucketV2.bucketRegionalDomainName}\n originId: ${s3OriginId}\n s3OriginConfig:\n originAccessIdentity: origin-access-identity/cloudfront/ABCDEFG1234567\n enabled: true\n isIpv6Enabled: true\n comment: Some comment\n defaultRootObject: index.html\n loggingConfig:\n includeCookies: false\n bucket: mylogs.s3.amazonaws.com\n prefix: myprefix\n aliases:\n - mysite.example.com\n - yoursite.example.com\n defaultCacheBehavior:\n allowedMethods:\n - DELETE\n - GET\n - HEAD\n - OPTIONS\n - PATCH\n - POST\n - PUT\n cachedMethods:\n - GET\n - HEAD\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n cookies:\n forward: none\n viewerProtocolPolicy: allow-all\n minTtl: 0\n defaultTtl: 3600\n maxTtl: 86400\n # Cache behavior with precedence 0\n orderedCacheBehaviors:\n - pathPattern: /content/immutable/*\n allowedMethods:\n - GET\n - HEAD\n - OPTIONS\n cachedMethods:\n - GET\n - HEAD\n - OPTIONS\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n headers:\n - Origin\n cookies:\n forward: none\n minTtl: 0\n defaultTtl: 86400\n maxTtl: 3.1536e+07\n compress: true\n viewerProtocolPolicy: redirect-to-https\n - pathPattern: /content/*\n allowedMethods:\n - GET\n - HEAD\n - OPTIONS\n cachedMethods:\n - GET\n - HEAD\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n cookies:\n forward: none\n minTtl: 0\n defaultTtl: 3600\n maxTtl: 86400\n compress: true\n viewerProtocolPolicy: redirect-to-https\n priceClass: PriceClass_200\n restrictions:\n geoRestriction:\n restrictionType: whitelist\n locations:\n - US\n - CA\n - GB\n - DE\n tags:\n Environment: production\n viewerCertificate:\n cloudfrontDefaultCertificate: true\nvariables:\n s3OriginId: myS3Origin\n```\n\nThe following example below creates a Cloudfront distribution with an origin group for failover routing:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3Distribution = new aws.cloudfront.Distribution(\"s3Distribution\", {\n originGroups: [{\n originId: \"groupS3\",\n failoverCriteria: {\n statusCodes: [\n 403,\n 404,\n 500,\n 502,\n ],\n },\n members: [\n {\n originId: \"primaryS3\",\n },\n {\n originId: \"failoverS3\",\n },\n ],\n }],\n origins: [\n {\n domainName: aws_s3_bucket.primary.bucket_regional_domain_name,\n originId: \"primaryS3\",\n s3OriginConfig: {\n originAccessIdentity: aws_cloudfront_origin_access_identity[\"default\"].cloudfront_access_identity_path,\n },\n },\n {\n domainName: aws_s3_bucket.failover.bucket_regional_domain_name,\n originId: \"failoverS3\",\n s3OriginConfig: {\n originAccessIdentity: aws_cloudfront_origin_access_identity[\"default\"].cloudfront_access_identity_path,\n },\n },\n ],\n defaultCacheBehavior: {\n targetOriginId: \"groupS3\",\n },\n});\n// ... other configuration ...\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3_distribution = aws.cloudfront.Distribution(\"s3Distribution\",\n origin_groups=[aws.cloudfront.DistributionOriginGroupArgs(\n origin_id=\"groupS3\",\n failover_criteria=aws.cloudfront.DistributionOriginGroupFailoverCriteriaArgs(\n status_codes=[\n 403,\n 404,\n 500,\n 502,\n ],\n ),\n members=[\n aws.cloudfront.DistributionOriginGroupMemberArgs(\n origin_id=\"primaryS3\",\n ),\n aws.cloudfront.DistributionOriginGroupMemberArgs(\n origin_id=\"failoverS3\",\n ),\n ],\n )],\n origins=[\n aws.cloudfront.DistributionOriginArgs(\n domain_name=aws_s3_bucket[\"primary\"][\"bucket_regional_domain_name\"],\n origin_id=\"primaryS3\",\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=aws_cloudfront_origin_access_identity[\"default\"][\"cloudfront_access_identity_path\"],\n ),\n ),\n aws.cloudfront.DistributionOriginArgs(\n domain_name=aws_s3_bucket[\"failover\"][\"bucket_regional_domain_name\"],\n origin_id=\"failoverS3\",\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=aws_cloudfront_origin_access_identity[\"default\"][\"cloudfront_access_identity_path\"],\n ),\n ),\n ],\n default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(\n target_origin_id=\"groupS3\",\n ))\n# ... other configuration ...\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var s3Distribution = new Aws.CloudFront.Distribution(\"s3Distribution\", new()\n {\n OriginGroups = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginGroupArgs\n {\n OriginId = \"groupS3\",\n FailoverCriteria = new Aws.CloudFront.Inputs.DistributionOriginGroupFailoverCriteriaArgs\n {\n StatusCodes = new[]\n {\n 403,\n 404,\n 500,\n 502,\n },\n },\n Members = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs\n {\n OriginId = \"primaryS3\",\n },\n new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs\n {\n OriginId = \"failoverS3\",\n },\n },\n },\n },\n Origins = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = aws_s3_bucket.Primary.Bucket_regional_domain_name,\n OriginId = \"primaryS3\",\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path,\n },\n },\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = aws_s3_bucket.Failover.Bucket_regional_domain_name,\n OriginId = \"failoverS3\",\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path,\n },\n },\n },\n DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs\n {\n TargetOriginId = \"groupS3\",\n },\n });\n\n // ... other configuration ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.NewDistribution(ctx, \"s3Distribution\", \u0026cloudfront.DistributionArgs{\n\t\t\tOriginGroups: cloudfront.DistributionOriginGroupArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginGroupArgs{\n\t\t\t\t\tOriginId: pulumi.String(\"groupS3\"),\n\t\t\t\t\tFailoverCriteria: \u0026cloudfront.DistributionOriginGroupFailoverCriteriaArgs{\n\t\t\t\t\t\tStatusCodes: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(403),\n\t\t\t\t\t\t\tpulumi.Int(404),\n\t\t\t\t\t\t\tpulumi.Int(500),\n\t\t\t\t\t\t\tpulumi.Int(502),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMembers: cloudfront.DistributionOriginGroupMemberArray{\n\t\t\t\t\t\t\u0026cloudfront.DistributionOriginGroupMemberArgs{\n\t\t\t\t\t\t\tOriginId: pulumi.String(\"primaryS3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudfront.DistributionOriginGroupMemberArgs{\n\t\t\t\t\t\t\tOriginId: pulumi.String(\"failoverS3\"),\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\tOrigins: cloudfront.DistributionOriginArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: pulumi.Any(aws_s3_bucket.Primary.Bucket_regional_domain_name),\n\t\t\t\t\tOriginId: pulumi.String(\"primaryS3\"),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.Any(aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: pulumi.Any(aws_s3_bucket.Failover.Bucket_regional_domain_name),\n\t\t\t\t\tOriginId: pulumi.String(\"failoverS3\"),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.Any(aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefaultCacheBehavior: \u0026cloudfront.DistributionDefaultCacheBehaviorArgs{\n\t\t\t\tTargetOriginId: pulumi.String(\"groupS3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.Distribution;\nimport com.pulumi.aws.cloudfront.DistributionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupFailoverCriteriaArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3Distribution = new Distribution(\"s3Distribution\", DistributionArgs.builder() \n .originGroups(DistributionOriginGroupArgs.builder()\n .originId(\"groupS3\")\n .failoverCriteria(DistributionOriginGroupFailoverCriteriaArgs.builder()\n .statusCodes( \n 403,\n 404,\n 500,\n 502)\n .build())\n .members( \n DistributionOriginGroupMemberArgs.builder()\n .originId(\"primaryS3\")\n .build(),\n DistributionOriginGroupMemberArgs.builder()\n .originId(\"failoverS3\")\n .build())\n .build())\n .origins( \n DistributionOriginArgs.builder()\n .domainName(aws_s3_bucket.primary().bucket_regional_domain_name())\n .originId(\"primaryS3\")\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(aws_cloudfront_origin_access_identity.default().cloudfront_access_identity_path())\n .build())\n .build(),\n DistributionOriginArgs.builder()\n .domainName(aws_s3_bucket.failover().bucket_regional_domain_name())\n .originId(\"failoverS3\")\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(aws_cloudfront_origin_access_identity.default().cloudfront_access_identity_path())\n .build())\n .build())\n .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()\n .targetOriginId(\"groupS3\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3Distribution:\n type: aws:cloudfront:Distribution\n properties:\n originGroups:\n - originId: groupS3\n failoverCriteria:\n statusCodes:\n - 403\n - 404\n - 500\n - 502\n members:\n - originId: primaryS3\n - originId: failoverS3\n origins:\n - domainName: ${aws_s3_bucket.primary.bucket_regional_domain_name}\n originId: primaryS3\n s3OriginConfig:\n originAccessIdentity: ${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}\n - domainName: ${aws_s3_bucket.failover.bucket_regional_domain_name}\n originId: failoverS3\n s3OriginConfig:\n originAccessIdentity: ${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}\n defaultCacheBehavior:\n targetOriginId: groupS3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCloudfront Distributions can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:cloudfront/distribution:Distribution distribution E74FTE3EXAMPLE\n```\n\n ",
+ "description": "Creates an Amazon CloudFront web distribution.\n\nFor information about CloudFront distributions, see the\n[Amazon CloudFront Developer Guide](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html). For specific information about creating\nCloudFront web distributions, see the [POST Distribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html) page in the Amazon\nCloudFront API Reference.\n\n\u003e **NOTE:** CloudFront distributions take about 15 minutes to reach a deployed\nstate after creation or modification. During this time, deletes to resources will\nbe blocked. If you need to delete a distribution that is enabled and you do not\nwant to wait, you need to use the `retain_on_delete` flag.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example below creates a CloudFront distribution with an S3 origin.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst bucketV2 = new aws.s3.BucketV2(\"bucketV2\", {tags: {\n Name: \"My bucket\",\n}});\nconst bAcl = new aws.s3.BucketAclV2(\"bAcl\", {\n bucket: bucketV2.id,\n acl: \"private\",\n});\nconst s3OriginId = \"myS3Origin\";\nconst s3Distribution = new aws.cloudfront.Distribution(\"s3Distribution\", {\n origins: [{\n domainName: bucketV2.bucketRegionalDomainName,\n originId: locals.s3_origin_id,\n s3OriginConfig: {\n originAccessIdentity: \"origin-access-identity/cloudfront/ABCDEFG1234567\",\n },\n }],\n enabled: true,\n isIpv6Enabled: true,\n comment: \"Some comment\",\n defaultRootObject: \"index.html\",\n loggingConfig: {\n includeCookies: false,\n bucket: \"mylogs.s3.amazonaws.com\",\n prefix: \"myprefix\",\n },\n aliases: [\n \"mysite.example.com\",\n \"yoursite.example.com\",\n ],\n defaultCacheBehavior: {\n allowedMethods: [\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n cookies: {\n forward: \"none\",\n },\n },\n viewerProtocolPolicy: \"allow-all\",\n minTtl: 0,\n defaultTtl: 3600,\n maxTtl: 86400,\n },\n orderedCacheBehaviors: [\n {\n pathPattern: \"/content/immutable/*\",\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n headers: [\"Origin\"],\n cookies: {\n forward: \"none\",\n },\n },\n minTtl: 0,\n defaultTtl: 86400,\n maxTtl: 31536000,\n compress: true,\n viewerProtocolPolicy: \"redirect-to-https\",\n },\n {\n pathPattern: \"/content/*\",\n allowedMethods: [\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cachedMethods: [\n \"GET\",\n \"HEAD\",\n ],\n targetOriginId: s3OriginId,\n forwardedValues: {\n queryString: false,\n cookies: {\n forward: \"none\",\n },\n },\n minTtl: 0,\n defaultTtl: 3600,\n maxTtl: 86400,\n compress: true,\n viewerProtocolPolicy: \"redirect-to-https\",\n },\n ],\n priceClass: \"PriceClass_200\",\n restrictions: {\n geoRestriction: {\n restrictionType: \"whitelist\",\n locations: [\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n ],\n },\n },\n tags: {\n Environment: \"production\",\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbucket_v2 = aws.s3.BucketV2(\"bucketV2\", tags={\n \"Name\": \"My bucket\",\n})\nb_acl = aws.s3.BucketAclV2(\"bAcl\",\n bucket=bucket_v2.id,\n acl=\"private\")\ns3_origin_id = \"myS3Origin\"\ns3_distribution = aws.cloudfront.Distribution(\"s3Distribution\",\n origins=[aws.cloudfront.DistributionOriginArgs(\n domain_name=bucket_v2.bucket_regional_domain_name,\n origin_id=locals[\"s3_origin_id\"],\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=\"origin-access-identity/cloudfront/ABCDEFG1234567\",\n ),\n )],\n enabled=True,\n is_ipv6_enabled=True,\n comment=\"Some comment\",\n default_root_object=\"index.html\",\n logging_config=aws.cloudfront.DistributionLoggingConfigArgs(\n include_cookies=False,\n bucket=\"mylogs.s3.amazonaws.com\",\n prefix=\"myprefix\",\n ),\n aliases=[\n \"mysite.example.com\",\n \"yoursite.example.com\",\n ],\n default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(\n allowed_methods=[\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs(\n query_string=False,\n cookies=aws.cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n viewer_protocol_policy=\"allow-all\",\n min_ttl=0,\n default_ttl=3600,\n max_ttl=86400,\n ),\n ordered_cache_behaviors=[\n aws.cloudfront.DistributionOrderedCacheBehaviorArgs(\n path_pattern=\"/content/immutable/*\",\n allowed_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(\n query_string=False,\n headers=[\"Origin\"],\n cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n min_ttl=0,\n default_ttl=86400,\n max_ttl=31536000,\n compress=True,\n viewer_protocol_policy=\"redirect-to-https\",\n ),\n aws.cloudfront.DistributionOrderedCacheBehaviorArgs(\n path_pattern=\"/content/*\",\n allowed_methods=[\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n ],\n cached_methods=[\n \"GET\",\n \"HEAD\",\n ],\n target_origin_id=s3_origin_id,\n forwarded_values=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs(\n query_string=False,\n cookies=aws.cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs(\n forward=\"none\",\n ),\n ),\n min_ttl=0,\n default_ttl=3600,\n max_ttl=86400,\n compress=True,\n viewer_protocol_policy=\"redirect-to-https\",\n ),\n ],\n price_class=\"PriceClass_200\",\n restrictions=aws.cloudfront.DistributionRestrictionsArgs(\n geo_restriction=aws.cloudfront.DistributionRestrictionsGeoRestrictionArgs(\n restriction_type=\"whitelist\",\n locations=[\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n ],\n ),\n ),\n tags={\n \"Environment\": \"production\",\n },\n viewer_certificate=aws.cloudfront.DistributionViewerCertificateArgs(\n cloudfront_default_certificate=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bucketV2 = new Aws.S3.BucketV2(\"bucketV2\", new()\n {\n Tags = \n {\n { \"Name\", \"My bucket\" },\n },\n });\n\n var bAcl = new Aws.S3.BucketAclV2(\"bAcl\", new()\n {\n Bucket = bucketV2.Id,\n Acl = \"private\",\n });\n\n var s3OriginId = \"myS3Origin\";\n\n var s3Distribution = new Aws.CloudFront.Distribution(\"s3Distribution\", new()\n {\n Origins = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = bucketV2.BucketRegionalDomainName,\n OriginId = locals.S3_origin_id,\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = \"origin-access-identity/cloudfront/ABCDEFG1234567\",\n },\n },\n },\n Enabled = true,\n IsIpv6Enabled = true,\n Comment = \"Some comment\",\n DefaultRootObject = \"index.html\",\n LoggingConfig = new Aws.CloudFront.Inputs.DistributionLoggingConfigArgs\n {\n IncludeCookies = false,\n Bucket = \"mylogs.s3.amazonaws.com\",\n Prefix = \"myprefix\",\n },\n Aliases = new[]\n {\n \"mysite.example.com\",\n \"yoursite.example.com\",\n },\n DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs\n {\n AllowedMethods = new[]\n {\n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Cookies = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n ViewerProtocolPolicy = \"allow-all\",\n MinTtl = 0,\n DefaultTtl = 3600,\n MaxTtl = 86400,\n },\n OrderedCacheBehaviors = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs\n {\n PathPattern = \"/content/immutable/*\",\n AllowedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Headers = new[]\n {\n \"Origin\",\n },\n Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n MinTtl = 0,\n DefaultTtl = 86400,\n MaxTtl = 31536000,\n Compress = true,\n ViewerProtocolPolicy = \"redirect-to-https\",\n },\n new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorArgs\n {\n PathPattern = \"/content/*\",\n AllowedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n },\n CachedMethods = new[]\n {\n \"GET\",\n \"HEAD\",\n },\n TargetOriginId = s3OriginId,\n ForwardedValues = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs\n {\n QueryString = false,\n Cookies = new Aws.CloudFront.Inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs\n {\n Forward = \"none\",\n },\n },\n MinTtl = 0,\n DefaultTtl = 3600,\n MaxTtl = 86400,\n Compress = true,\n ViewerProtocolPolicy = \"redirect-to-https\",\n },\n },\n PriceClass = \"PriceClass_200\",\n Restrictions = new Aws.CloudFront.Inputs.DistributionRestrictionsArgs\n {\n GeoRestriction = new Aws.CloudFront.Inputs.DistributionRestrictionsGeoRestrictionArgs\n {\n RestrictionType = \"whitelist\",\n Locations = new[]\n {\n \"US\",\n \"CA\",\n \"GB\",\n \"DE\",\n },\n },\n },\n Tags = \n {\n { \"Environment\", \"production\" },\n },\n ViewerCertificate = new Aws.CloudFront.Inputs.DistributionViewerCertificateArgs\n {\n CloudfrontDefaultCertificate = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbucketV2, err := s3.NewBucketV2(ctx, \"bucketV2\", \u0026s3.BucketV2Args{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"My bucket\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"bAcl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: bucketV2.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts3OriginId := \"myS3Origin\"\n\t\t_, err = cloudfront.NewDistribution(ctx, \"s3Distribution\", \u0026cloudfront.DistributionArgs{\n\t\t\tOrigins: cloudfront.DistributionOriginArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: bucketV2.BucketRegionalDomainName,\n\t\t\t\t\tOriginId: pulumi.Any(locals.S3_origin_id),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.String(\"origin-access-identity/cloudfront/ABCDEFG1234567\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tIsIpv6Enabled: pulumi.Bool(true),\n\t\t\tComment: pulumi.String(\"Some comment\"),\n\t\t\tDefaultRootObject: pulumi.String(\"index.html\"),\n\t\t\tLoggingConfig: \u0026cloudfront.DistributionLoggingConfigArgs{\n\t\t\t\tIncludeCookies: pulumi.Bool(false),\n\t\t\t\tBucket: pulumi.String(\"mylogs.s3.amazonaws.com\"),\n\t\t\t\tPrefix: pulumi.String(\"myprefix\"),\n\t\t\t},\n\t\t\tAliases: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"mysite.example.com\"),\n\t\t\t\tpulumi.String(\"yoursite.example.com\"),\n\t\t\t},\n\t\t\tDefaultCacheBehavior: \u0026cloudfront.DistributionDefaultCacheBehaviorArgs{\n\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"DELETE\"),\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\tpulumi.String(\"PATCH\"),\n\t\t\t\t\tpulumi.String(\"POST\"),\n\t\t\t\t\tpulumi.String(\"PUT\"),\n\t\t\t\t},\n\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t},\n\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\tForwardedValues: \u0026cloudfront.DistributionDefaultCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\tCookies: \u0026cloudfront.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tViewerProtocolPolicy: pulumi.String(\"allow-all\"),\n\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\tMaxTtl: pulumi.Int(86400),\n\t\t\t},\n\t\t\tOrderedCacheBehaviors: cloudfront.DistributionOrderedCacheBehaviorArray{\n\t\t\t\t\u0026cloudfront.DistributionOrderedCacheBehaviorArgs{\n\t\t\t\t\tPathPattern: pulumi.String(\"/content/immutable/*\"),\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\t\tForwardedValues: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\t\tHeaders: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Origin\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tCookies: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\t\tDefaultTtl: pulumi.Int(86400),\n\t\t\t\t\tMaxTtl: pulumi.Int(31536000),\n\t\t\t\t\tCompress: pulumi.Bool(true),\n\t\t\t\t\tViewerProtocolPolicy: pulumi.String(\"redirect-to-https\"),\n\t\t\t\t},\n\t\t\t\t\u0026cloudfront.DistributionOrderedCacheBehaviorArgs{\n\t\t\t\t\tPathPattern: pulumi.String(\"/content/*\"),\n\t\t\t\t\tAllowedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t\tpulumi.String(\"OPTIONS\"),\n\t\t\t\t\t},\n\t\t\t\t\tCachedMethods: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"GET\"),\n\t\t\t\t\t\tpulumi.String(\"HEAD\"),\n\t\t\t\t\t},\n\t\t\t\t\tTargetOriginId: pulumi.String(s3OriginId),\n\t\t\t\t\tForwardedValues: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesArgs{\n\t\t\t\t\t\tQueryString: pulumi.Bool(false),\n\t\t\t\t\t\tCookies: \u0026cloudfront.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs{\n\t\t\t\t\t\t\tForward: pulumi.String(\"none\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMinTtl: pulumi.Int(0),\n\t\t\t\t\tDefaultTtl: pulumi.Int(3600),\n\t\t\t\t\tMaxTtl: pulumi.Int(86400),\n\t\t\t\t\tCompress: pulumi.Bool(true),\n\t\t\t\t\tViewerProtocolPolicy: pulumi.String(\"redirect-to-https\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tPriceClass: pulumi.String(\"PriceClass_200\"),\n\t\t\tRestrictions: \u0026cloudfront.DistributionRestrictionsArgs{\n\t\t\t\tGeoRestriction: \u0026cloudfront.DistributionRestrictionsGeoRestrictionArgs{\n\t\t\t\t\tRestrictionType: pulumi.String(\"whitelist\"),\n\t\t\t\t\tLocations: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"US\"),\n\t\t\t\t\t\tpulumi.String(\"CA\"),\n\t\t\t\t\t\tpulumi.String(\"GB\"),\n\t\t\t\t\t\tpulumi.String(\"DE\"),\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\"Environment\": pulumi.String(\"production\"),\n\t\t\t},\n\t\t\tViewerCertificate: \u0026cloudfront.DistributionViewerCertificateArgs{\n\t\t\t\tCloudfrontDefaultCertificate: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.s3.BucketV2Args;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.aws.cloudfront.Distribution;\nimport com.pulumi.aws.cloudfront.DistributionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionLoggingConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionRestrictionsGeoRestrictionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionViewerCertificateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var bucketV2 = new BucketV2(\"bucketV2\", BucketV2Args.builder() \n .tags(Map.of(\"Name\", \"My bucket\"))\n .build());\n\n var bAcl = new BucketAclV2(\"bAcl\", BucketAclV2Args.builder() \n .bucket(bucketV2.id())\n .acl(\"private\")\n .build());\n\n final var s3OriginId = \"myS3Origin\";\n\n var s3Distribution = new Distribution(\"s3Distribution\", DistributionArgs.builder() \n .origins(DistributionOriginArgs.builder()\n .domainName(bucketV2.bucketRegionalDomainName())\n .originId(locals.s3_origin_id())\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(\"origin-access-identity/cloudfront/ABCDEFG1234567\")\n .build())\n .build())\n .enabled(true)\n .isIpv6Enabled(true)\n .comment(\"Some comment\")\n .defaultRootObject(\"index.html\")\n .loggingConfig(DistributionLoggingConfigArgs.builder()\n .includeCookies(false)\n .bucket(\"mylogs.s3.amazonaws.com\")\n .prefix(\"myprefix\")\n .build())\n .aliases( \n \"mysite.example.com\",\n \"yoursite.example.com\")\n .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()\n .allowedMethods( \n \"DELETE\",\n \"GET\",\n \"HEAD\",\n \"OPTIONS\",\n \"PATCH\",\n \"POST\",\n \"PUT\")\n .cachedMethods( \n \"GET\",\n \"HEAD\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionDefaultCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .cookies(DistributionDefaultCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .viewerProtocolPolicy(\"allow-all\")\n .minTtl(0)\n .defaultTtl(3600)\n .maxTtl(86400)\n .build())\n .orderedCacheBehaviors( \n DistributionOrderedCacheBehaviorArgs.builder()\n .pathPattern(\"/content/immutable/*\")\n .allowedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .cachedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .headers(\"Origin\")\n .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .minTtl(0)\n .defaultTtl(86400)\n .maxTtl(31536000)\n .compress(true)\n .viewerProtocolPolicy(\"redirect-to-https\")\n .build(),\n DistributionOrderedCacheBehaviorArgs.builder()\n .pathPattern(\"/content/*\")\n .allowedMethods( \n \"GET\",\n \"HEAD\",\n \"OPTIONS\")\n .cachedMethods( \n \"GET\",\n \"HEAD\")\n .targetOriginId(s3OriginId)\n .forwardedValues(DistributionOrderedCacheBehaviorForwardedValuesArgs.builder()\n .queryString(false)\n .cookies(DistributionOrderedCacheBehaviorForwardedValuesCookiesArgs.builder()\n .forward(\"none\")\n .build())\n .build())\n .minTtl(0)\n .defaultTtl(3600)\n .maxTtl(86400)\n .compress(true)\n .viewerProtocolPolicy(\"redirect-to-https\")\n .build())\n .priceClass(\"PriceClass_200\")\n .restrictions(DistributionRestrictionsArgs.builder()\n .geoRestriction(DistributionRestrictionsGeoRestrictionArgs.builder()\n .restrictionType(\"whitelist\")\n .locations( \n \"US\",\n \"CA\",\n \"GB\",\n \"DE\")\n .build())\n .build())\n .tags(Map.of(\"Environment\", \"production\"))\n .viewerCertificate(DistributionViewerCertificateArgs.builder()\n .cloudfrontDefaultCertificate(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n bucketV2:\n type: aws:s3:BucketV2\n properties:\n tags:\n Name: My bucket\n bAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${bucketV2.id}\n acl: private\n s3Distribution:\n type: aws:cloudfront:Distribution\n properties:\n origins:\n - domainName: ${bucketV2.bucketRegionalDomainName}\n originId: ${locals.s3_origin_id}\n s3OriginConfig:\n originAccessIdentity: origin-access-identity/cloudfront/ABCDEFG1234567\n enabled: true\n isIpv6Enabled: true\n comment: Some comment\n defaultRootObject: index.html\n loggingConfig:\n includeCookies: false\n bucket: mylogs.s3.amazonaws.com\n prefix: myprefix\n aliases:\n - mysite.example.com\n - yoursite.example.com\n defaultCacheBehavior:\n allowedMethods:\n - DELETE\n - GET\n - HEAD\n - OPTIONS\n - PATCH\n - POST\n - PUT\n cachedMethods:\n - GET\n - HEAD\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n cookies:\n forward: none\n viewerProtocolPolicy: allow-all\n minTtl: 0\n defaultTtl: 3600\n maxTtl: 86400\n # Cache behavior with precedence 0\n orderedCacheBehaviors:\n - pathPattern: /content/immutable/*\n allowedMethods:\n - GET\n - HEAD\n - OPTIONS\n cachedMethods:\n - GET\n - HEAD\n - OPTIONS\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n headers:\n - Origin\n cookies:\n forward: none\n minTtl: 0\n defaultTtl: 86400\n maxTtl: 3.1536e+07\n compress: true\n viewerProtocolPolicy: redirect-to-https\n - pathPattern: /content/*\n allowedMethods:\n - GET\n - HEAD\n - OPTIONS\n cachedMethods:\n - GET\n - HEAD\n targetOriginId: ${s3OriginId}\n forwardedValues:\n queryString: false\n cookies:\n forward: none\n minTtl: 0\n defaultTtl: 3600\n maxTtl: 86400\n compress: true\n viewerProtocolPolicy: redirect-to-https\n priceClass: PriceClass_200\n restrictions:\n geoRestriction:\n restrictionType: whitelist\n locations:\n - US\n - CA\n - GB\n - DE\n tags:\n Environment: production\n viewerCertificate:\n cloudfrontDefaultCertificate: true\nvariables:\n s3OriginId: myS3Origin\n```\n\nThe following example below creates a Cloudfront distribution with an origin group for failover routing:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst s3Distribution = new aws.cloudfront.Distribution(\"s3Distribution\", {\n originGroups: [{\n originId: \"groupS3\",\n failoverCriteria: {\n statusCodes: [\n 403,\n 404,\n 500,\n 502,\n ],\n },\n members: [\n {\n originId: \"primaryS3\",\n },\n {\n originId: \"failoverS3\",\n },\n ],\n }],\n origins: [\n {\n domainName: aws_s3_bucket.primary.bucket_regional_domain_name,\n originId: \"primaryS3\",\n s3OriginConfig: {\n originAccessIdentity: aws_cloudfront_origin_access_identity[\"default\"].cloudfront_access_identity_path,\n },\n },\n {\n domainName: aws_s3_bucket.failover.bucket_regional_domain_name,\n originId: \"failoverS3\",\n s3OriginConfig: {\n originAccessIdentity: aws_cloudfront_origin_access_identity[\"default\"].cloudfront_access_identity_path,\n },\n },\n ],\n defaultCacheBehavior: {\n targetOriginId: \"groupS3\",\n },\n});\n// ... other configuration ...\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ns3_distribution = aws.cloudfront.Distribution(\"s3Distribution\",\n origin_groups=[aws.cloudfront.DistributionOriginGroupArgs(\n origin_id=\"groupS3\",\n failover_criteria=aws.cloudfront.DistributionOriginGroupFailoverCriteriaArgs(\n status_codes=[\n 403,\n 404,\n 500,\n 502,\n ],\n ),\n members=[\n aws.cloudfront.DistributionOriginGroupMemberArgs(\n origin_id=\"primaryS3\",\n ),\n aws.cloudfront.DistributionOriginGroupMemberArgs(\n origin_id=\"failoverS3\",\n ),\n ],\n )],\n origins=[\n aws.cloudfront.DistributionOriginArgs(\n domain_name=aws_s3_bucket[\"primary\"][\"bucket_regional_domain_name\"],\n origin_id=\"primaryS3\",\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=aws_cloudfront_origin_access_identity[\"default\"][\"cloudfront_access_identity_path\"],\n ),\n ),\n aws.cloudfront.DistributionOriginArgs(\n domain_name=aws_s3_bucket[\"failover\"][\"bucket_regional_domain_name\"],\n origin_id=\"failoverS3\",\n s3_origin_config=aws.cloudfront.DistributionOriginS3OriginConfigArgs(\n origin_access_identity=aws_cloudfront_origin_access_identity[\"default\"][\"cloudfront_access_identity_path\"],\n ),\n ),\n ],\n default_cache_behavior=aws.cloudfront.DistributionDefaultCacheBehaviorArgs(\n target_origin_id=\"groupS3\",\n ))\n# ... other configuration ...\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var s3Distribution = new Aws.CloudFront.Distribution(\"s3Distribution\", new()\n {\n OriginGroups = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginGroupArgs\n {\n OriginId = \"groupS3\",\n FailoverCriteria = new Aws.CloudFront.Inputs.DistributionOriginGroupFailoverCriteriaArgs\n {\n StatusCodes = new[]\n {\n 403,\n 404,\n 500,\n 502,\n },\n },\n Members = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs\n {\n OriginId = \"primaryS3\",\n },\n new Aws.CloudFront.Inputs.DistributionOriginGroupMemberArgs\n {\n OriginId = \"failoverS3\",\n },\n },\n },\n },\n Origins = new[]\n {\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = aws_s3_bucket.Primary.Bucket_regional_domain_name,\n OriginId = \"primaryS3\",\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path,\n },\n },\n new Aws.CloudFront.Inputs.DistributionOriginArgs\n {\n DomainName = aws_s3_bucket.Failover.Bucket_regional_domain_name,\n OriginId = \"failoverS3\",\n S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs\n {\n OriginAccessIdentity = aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path,\n },\n },\n },\n DefaultCacheBehavior = new Aws.CloudFront.Inputs.DistributionDefaultCacheBehaviorArgs\n {\n TargetOriginId = \"groupS3\",\n },\n });\n\n // ... other configuration ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudfront\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudfront.NewDistribution(ctx, \"s3Distribution\", \u0026cloudfront.DistributionArgs{\n\t\t\tOriginGroups: cloudfront.DistributionOriginGroupArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginGroupArgs{\n\t\t\t\t\tOriginId: pulumi.String(\"groupS3\"),\n\t\t\t\t\tFailoverCriteria: \u0026cloudfront.DistributionOriginGroupFailoverCriteriaArgs{\n\t\t\t\t\t\tStatusCodes: pulumi.IntArray{\n\t\t\t\t\t\t\tpulumi.Int(403),\n\t\t\t\t\t\t\tpulumi.Int(404),\n\t\t\t\t\t\t\tpulumi.Int(500),\n\t\t\t\t\t\t\tpulumi.Int(502),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMembers: cloudfront.DistributionOriginGroupMemberArray{\n\t\t\t\t\t\t\u0026cloudfront.DistributionOriginGroupMemberArgs{\n\t\t\t\t\t\t\tOriginId: pulumi.String(\"primaryS3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026cloudfront.DistributionOriginGroupMemberArgs{\n\t\t\t\t\t\t\tOriginId: pulumi.String(\"failoverS3\"),\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\tOrigins: cloudfront.DistributionOriginArray{\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: pulumi.Any(aws_s3_bucket.Primary.Bucket_regional_domain_name),\n\t\t\t\t\tOriginId: pulumi.String(\"primaryS3\"),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.Any(aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026cloudfront.DistributionOriginArgs{\n\t\t\t\t\tDomainName: pulumi.Any(aws_s3_bucket.Failover.Bucket_regional_domain_name),\n\t\t\t\t\tOriginId: pulumi.String(\"failoverS3\"),\n\t\t\t\t\tS3OriginConfig: \u0026cloudfront.DistributionOriginS3OriginConfigArgs{\n\t\t\t\t\t\tOriginAccessIdentity: pulumi.Any(aws_cloudfront_origin_access_identity.Default.Cloudfront_access_identity_path),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tDefaultCacheBehavior: \u0026cloudfront.DistributionDefaultCacheBehaviorArgs{\n\t\t\t\tTargetOriginId: pulumi.String(\"groupS3\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudfront.Distribution;\nimport com.pulumi.aws.cloudfront.DistributionArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginGroupFailoverCriteriaArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionOriginS3OriginConfigArgs;\nimport com.pulumi.aws.cloudfront.inputs.DistributionDefaultCacheBehaviorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var s3Distribution = new Distribution(\"s3Distribution\", DistributionArgs.builder() \n .originGroups(DistributionOriginGroupArgs.builder()\n .originId(\"groupS3\")\n .failoverCriteria(DistributionOriginGroupFailoverCriteriaArgs.builder()\n .statusCodes( \n 403,\n 404,\n 500,\n 502)\n .build())\n .members( \n DistributionOriginGroupMemberArgs.builder()\n .originId(\"primaryS3\")\n .build(),\n DistributionOriginGroupMemberArgs.builder()\n .originId(\"failoverS3\")\n .build())\n .build())\n .origins( \n DistributionOriginArgs.builder()\n .domainName(aws_s3_bucket.primary().bucket_regional_domain_name())\n .originId(\"primaryS3\")\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(aws_cloudfront_origin_access_identity.default().cloudfront_access_identity_path())\n .build())\n .build(),\n DistributionOriginArgs.builder()\n .domainName(aws_s3_bucket.failover().bucket_regional_domain_name())\n .originId(\"failoverS3\")\n .s3OriginConfig(DistributionOriginS3OriginConfigArgs.builder()\n .originAccessIdentity(aws_cloudfront_origin_access_identity.default().cloudfront_access_identity_path())\n .build())\n .build())\n .defaultCacheBehavior(DistributionDefaultCacheBehaviorArgs.builder()\n .targetOriginId(\"groupS3\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3Distribution:\n type: aws:cloudfront:Distribution\n properties:\n originGroups:\n - originId: groupS3\n failoverCriteria:\n statusCodes:\n - 403\n - 404\n - 500\n - 502\n members:\n - originId: primaryS3\n - originId: failoverS3\n origins:\n - domainName: ${aws_s3_bucket.primary.bucket_regional_domain_name}\n originId: primaryS3\n s3OriginConfig:\n originAccessIdentity: ${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}\n - domainName: ${aws_s3_bucket.failover.bucket_regional_domain_name}\n originId: failoverS3\n s3OriginConfig:\n originAccessIdentity: ${aws_cloudfront_origin_access_identity.default.cloudfront_access_identity_path}\n defaultCacheBehavior:\n targetOriginId: groupS3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCloudfront Distributions can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:cloudfront/distribution:Distribution distribution E74FTE3EXAMPLE\n```\n\n ",
"properties": {
"aliases": {
"type": "array",
@@ -405049,7 +408108,7 @@
}
},
"aws:cloudwatch/eventApiDestination:EventApiDestination": {
- "description": "Provides an EventBridge event API Destination resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 test = new aws.cloudwatch.EventApiDestination(\"test\", {\n description: \"An API Destination\",\n invocationEndpoint: \"https://api.destination.com/endpoint\",\n httpMethod: \"POST\",\n invocationRateLimitPerSecond: 20,\n connectionArn: aws_cloudwatch_event_connection.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventApiDestination(\"test\",\n description=\"An API Destination\",\n invocation_endpoint=\"https://api.destination.com/endpoint\",\n http_method=\"POST\",\n invocation_rate_limit_per_second=20,\n connection_arn=aws_cloudwatch_event_connection[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventApiDestination(\"test\", new()\n {\n Description = \"An API Destination\",\n InvocationEndpoint = \"https://api.destination.com/endpoint\",\n HttpMethod = \"POST\",\n InvocationRateLimitPerSecond = 20,\n ConnectionArn = aws_cloudwatch_event_connection.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventApiDestination(ctx, \"test\", \u0026cloudwatch.EventApiDestinationArgs{\n\t\t\tDescription: pulumi.String(\"An API Destination\"),\n\t\t\tInvocationEndpoint: pulumi.String(\"https://api.destination.com/endpoint\"),\n\t\t\tHttpMethod: pulumi.String(\"POST\"),\n\t\t\tInvocationRateLimitPerSecond: pulumi.Int(20),\n\t\t\tConnectionArn: pulumi.Any(aws_cloudwatch_event_connection.Test.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventApiDestination;\nimport com.pulumi.aws.cloudwatch.EventApiDestinationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventApiDestination(\"test\", EventApiDestinationArgs.builder() \n .description(\"An API Destination\")\n .invocationEndpoint(\"https://api.destination.com/endpoint\")\n .httpMethod(\"POST\")\n .invocationRateLimitPerSecond(20)\n .connectionArn(aws_cloudwatch_event_connection.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventApiDestination\n properties:\n description: An API Destination\n invocationEndpoint: https://api.destination.com/endpoint\n httpMethod: POST\n invocationRateLimitPerSecond: 20\n connectionArn: ${aws_cloudwatch_event_connection.test.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge API Destinations can be imported using the `name`, e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventApiDestination:EventApiDestination test api-destination\n```\n\n ",
+ "description": "Provides an EventBridge event API Destination resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 test = new aws.cloudwatch.EventApiDestination(\"test\", {\n description: \"An API Destination\",\n invocationEndpoint: \"https://api.destination.com/endpoint\",\n httpMethod: \"POST\",\n invocationRateLimitPerSecond: 20,\n connectionArn: aws_cloudwatch_event_connection.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventApiDestination(\"test\",\n description=\"An API Destination\",\n invocation_endpoint=\"https://api.destination.com/endpoint\",\n http_method=\"POST\",\n invocation_rate_limit_per_second=20,\n connection_arn=aws_cloudwatch_event_connection[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventApiDestination(\"test\", new()\n {\n Description = \"An API Destination\",\n InvocationEndpoint = \"https://api.destination.com/endpoint\",\n HttpMethod = \"POST\",\n InvocationRateLimitPerSecond = 20,\n ConnectionArn = aws_cloudwatch_event_connection.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventApiDestination(ctx, \"test\", \u0026cloudwatch.EventApiDestinationArgs{\n\t\t\tDescription: pulumi.String(\"An API Destination\"),\n\t\t\tInvocationEndpoint: pulumi.String(\"https://api.destination.com/endpoint\"),\n\t\t\tHttpMethod: pulumi.String(\"POST\"),\n\t\t\tInvocationRateLimitPerSecond: pulumi.Int(20),\n\t\t\tConnectionArn: pulumi.Any(aws_cloudwatch_event_connection.Test.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventApiDestination;\nimport com.pulumi.aws.cloudwatch.EventApiDestinationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventApiDestination(\"test\", EventApiDestinationArgs.builder() \n .description(\"An API Destination\")\n .invocationEndpoint(\"https://api.destination.com/endpoint\")\n .httpMethod(\"POST\")\n .invocationRateLimitPerSecond(20)\n .connectionArn(aws_cloudwatch_event_connection.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventApiDestination\n properties:\n description: An API Destination\n invocationEndpoint: https://api.destination.com/endpoint\n httpMethod: POST\n invocationRateLimitPerSecond: 20\n connectionArn: ${aws_cloudwatch_event_connection.test.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge API Destinations can be imported using the `name`, e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventApiDestination:EventApiDestination test api-destination\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -405156,7 +408215,7 @@
}
},
"aws:cloudwatch/eventArchive:EventArchive": {
- "description": "Provides an EventBridge event archive resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 orderEventBus = new aws.cloudwatch.EventBus(\"orderEventBus\", {});\nconst orderEventArchive = new aws.cloudwatch.EventArchive(\"orderEventArchive\", {eventSourceArn: orderEventBus.arn});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\norder_event_bus = aws.cloudwatch.EventBus(\"orderEventBus\")\norder_event_archive = aws.cloudwatch.EventArchive(\"orderEventArchive\", event_source_arn=order_event_bus.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var orderEventBus = new Aws.CloudWatch.EventBus(\"orderEventBus\");\n\n var orderEventArchive = new Aws.CloudWatch.EventArchive(\"orderEventArchive\", new()\n {\n EventSourceArn = orderEventBus.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torderEventBus, err := cloudwatch.NewEventBus(ctx, \"orderEventBus\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventArchive(ctx, \"orderEventArchive\", \u0026cloudwatch.EventArchiveArgs{\n\t\t\tEventSourceArn: orderEventBus.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventArchive;\nimport com.pulumi.aws.cloudwatch.EventArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var orderEventBus = new EventBus(\"orderEventBus\");\n\n var orderEventArchive = new EventArchive(\"orderEventArchive\", EventArchiveArgs.builder() \n .eventSourceArn(orderEventBus.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n orderEventBus:\n type: aws:cloudwatch:EventBus\n orderEventArchive:\n type: aws:cloudwatch:EventArchive\n properties:\n eventSourceArn: ${orderEventBus.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n## Example all optional arguments\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst orderEventBus = new aws.cloudwatch.EventBus(\"orderEventBus\", {});\nconst orderEventArchive = new aws.cloudwatch.EventArchive(\"orderEventArchive\", {\n description: \"Archived events from order service\",\n eventSourceArn: orderEventBus.arn,\n retentionDays: 7,\n eventPattern: `{\n \"source\": [\"company.team.order\"]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\norder_event_bus = aws.cloudwatch.EventBus(\"orderEventBus\")\norder_event_archive = aws.cloudwatch.EventArchive(\"orderEventArchive\",\n description=\"Archived events from order service\",\n event_source_arn=order_event_bus.arn,\n retention_days=7,\n event_pattern=\"\"\"{\n \"source\": [\"company.team.order\"]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var orderEventBus = new Aws.CloudWatch.EventBus(\"orderEventBus\");\n\n var orderEventArchive = new Aws.CloudWatch.EventArchive(\"orderEventArchive\", new()\n {\n Description = \"Archived events from order service\",\n EventSourceArn = orderEventBus.Arn,\n RetentionDays = 7,\n EventPattern = @\"{\n \"\"source\"\": [\"\"company.team.order\"\"]\n}\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torderEventBus, err := cloudwatch.NewEventBus(ctx, \"orderEventBus\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventArchive(ctx, \"orderEventArchive\", \u0026cloudwatch.EventArchiveArgs{\n\t\t\tDescription: pulumi.String(\"Archived events from order service\"),\n\t\t\tEventSourceArn: orderEventBus.Arn,\n\t\t\tRetentionDays: pulumi.Int(7),\n\t\t\tEventPattern: pulumi.String(fmt.Sprintf(\"{\\n \\\"source\\\": [\\\"company.team.order\\\"]\\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventArchive;\nimport com.pulumi.aws.cloudwatch.EventArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var orderEventBus = new EventBus(\"orderEventBus\");\n\n var orderEventArchive = new EventArchive(\"orderEventArchive\", EventArchiveArgs.builder() \n .description(\"Archived events from order service\")\n .eventSourceArn(orderEventBus.arn())\n .retentionDays(7)\n .eventPattern(\"\"\"\n{\n \"source\": [\"company.team.order\"]\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n orderEventBus:\n type: aws:cloudwatch:EventBus\n orderEventArchive:\n type: aws:cloudwatch:EventArchive\n properties:\n description: Archived events from order service\n eventSourceArn: ${orderEventBus.arn}\n retentionDays: 7\n eventPattern: |\n {\n \"source\": [\"company.team.order\"]\n }\n```\n\n\n## Import\n\nEvent Archive can be imported using their name, for example console\n\n```sh\n $ pulumi import aws:cloudwatch/eventArchive:EventArchive imported_event_archive order-archive\n```\n\n ",
+ "description": "Provides an EventBridge event archive resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 orderEventBus = new aws.cloudwatch.EventBus(\"orderEventBus\", {});\nconst orderEventArchive = new aws.cloudwatch.EventArchive(\"orderEventArchive\", {eventSourceArn: orderEventBus.arn});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\norder_event_bus = aws.cloudwatch.EventBus(\"orderEventBus\")\norder_event_archive = aws.cloudwatch.EventArchive(\"orderEventArchive\", event_source_arn=order_event_bus.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var orderEventBus = new Aws.CloudWatch.EventBus(\"orderEventBus\");\n\n var orderEventArchive = new Aws.CloudWatch.EventArchive(\"orderEventArchive\", new()\n {\n EventSourceArn = orderEventBus.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torderEventBus, err := cloudwatch.NewEventBus(ctx, \"orderEventBus\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventArchive(ctx, \"orderEventArchive\", \u0026cloudwatch.EventArchiveArgs{\n\t\t\tEventSourceArn: orderEventBus.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventArchive;\nimport com.pulumi.aws.cloudwatch.EventArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var orderEventBus = new EventBus(\"orderEventBus\");\n\n var orderEventArchive = new EventArchive(\"orderEventArchive\", EventArchiveArgs.builder() \n .eventSourceArn(orderEventBus.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n orderEventBus:\n type: aws:cloudwatch:EventBus\n orderEventArchive:\n type: aws:cloudwatch:EventArchive\n properties:\n eventSourceArn: ${orderEventBus.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n## Example all optional arguments\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst orderEventBus = new aws.cloudwatch.EventBus(\"orderEventBus\", {});\nconst orderEventArchive = new aws.cloudwatch.EventArchive(\"orderEventArchive\", {\n description: \"Archived events from order service\",\n eventSourceArn: orderEventBus.arn,\n retentionDays: 7,\n eventPattern: `{\n \"source\": [\"company.team.order\"]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\norder_event_bus = aws.cloudwatch.EventBus(\"orderEventBus\")\norder_event_archive = aws.cloudwatch.EventArchive(\"orderEventArchive\",\n description=\"Archived events from order service\",\n event_source_arn=order_event_bus.arn,\n retention_days=7,\n event_pattern=\"\"\"{\n \"source\": [\"company.team.order\"]\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var orderEventBus = new Aws.CloudWatch.EventBus(\"orderEventBus\");\n\n var orderEventArchive = new Aws.CloudWatch.EventArchive(\"orderEventArchive\", new()\n {\n Description = \"Archived events from order service\",\n EventSourceArn = orderEventBus.Arn,\n RetentionDays = 7,\n EventPattern = @\"{\n \"\"source\"\": [\"\"company.team.order\"\"]\n}\n\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\torderEventBus, err := cloudwatch.NewEventBus(ctx, \"orderEventBus\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventArchive(ctx, \"orderEventArchive\", \u0026cloudwatch.EventArchiveArgs{\n\t\t\tDescription: pulumi.String(\"Archived events from order service\"),\n\t\t\tEventSourceArn: orderEventBus.Arn,\n\t\t\tRetentionDays: pulumi.Int(7),\n\t\t\tEventPattern: pulumi.String(fmt.Sprintf(\"{\\n \\\"source\\\": [\\\"company.team.order\\\"]\\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventArchive;\nimport com.pulumi.aws.cloudwatch.EventArchiveArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var orderEventBus = new EventBus(\"orderEventBus\");\n\n var orderEventArchive = new EventArchive(\"orderEventArchive\", EventArchiveArgs.builder() \n .description(\"Archived events from order service\")\n .eventSourceArn(orderEventBus.arn())\n .retentionDays(7)\n .eventPattern(\"\"\"\n{\n \"source\": [\"company.team.order\"]\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n orderEventBus:\n type: aws:cloudwatch:EventBus\n orderEventArchive:\n type: aws:cloudwatch:EventArchive\n properties:\n description: Archived events from order service\n eventSourceArn: ${orderEventBus.arn}\n retentionDays: 7\n eventPattern: |\n {\n \"source\": [\"company.team.order\"]\n }\n```\n\n\n## Import\n\nEvent Archive can be imported using their name, for example console\n\n```sh\n $ pulumi import aws:cloudwatch/eventArchive:EventArchive imported_event_archive order-archive\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -405249,7 +408308,7 @@
}
},
"aws:cloudwatch/eventBus:EventBus": {
- "description": "Provides an EventBridge event bus resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 messenger = new aws.cloudwatch.EventBus(\"messenger\", {});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmessenger = aws.cloudwatch.EventBus(\"messenger\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var messenger = new Aws.CloudWatch.EventBus(\"messenger\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventBus(ctx, \"messenger\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var messenger = new EventBus(\"messenger\");\n\n }\n}\n```\n```yaml\nresources:\n messenger:\n type: aws:cloudwatch:EventBus\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst examplepartnerEventSource = aws.cloudwatch.getEventSource({\n namePrefix: \"aws.partner/examplepartner.com\",\n});\nconst examplepartnerEventBus = new aws.cloudwatch.EventBus(\"examplepartnerEventBus\", {eventSourceName: examplepartnerEventSource.then(examplepartnerEventSource =\u003e examplepartnerEventSource.name)});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexamplepartner_event_source = aws.cloudwatch.get_event_source(name_prefix=\"aws.partner/examplepartner.com\")\nexamplepartner_event_bus = aws.cloudwatch.EventBus(\"examplepartnerEventBus\", event_source_name=examplepartner_event_source.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplepartnerEventSource = Aws.CloudWatch.GetEventSource.Invoke(new()\n {\n NamePrefix = \"aws.partner/examplepartner.com\",\n });\n\n var examplepartnerEventBus = new Aws.CloudWatch.EventBus(\"examplepartnerEventBus\", new()\n {\n EventSourceName = examplepartnerEventSource.Apply(getEventSourceResult =\u003e getEventSourceResult.Name),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplepartnerEventSource, err := cloudwatch.GetEventSource(ctx, \u0026cloudwatch.GetEventSourceArgs{\n\t\t\tNamePrefix: pulumi.StringRef(\"aws.partner/examplepartner.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventBus(ctx, \"examplepartnerEventBus\", \u0026cloudwatch.EventBusArgs{\n\t\t\tEventSourceName: pulumi.String(examplepartnerEventSource.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.CloudwatchFunctions;\nimport com.pulumi.aws.cloudwatch.inputs.GetEventSourceArgs;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventBusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var examplepartnerEventSource = CloudwatchFunctions.getEventSource(GetEventSourceArgs.builder()\n .namePrefix(\"aws.partner/examplepartner.com\")\n .build());\n\n var examplepartnerEventBus = new EventBus(\"examplepartnerEventBus\", EventBusArgs.builder() \n .eventSourceName(examplepartnerEventSource.applyValue(getEventSourceResult -\u003e getEventSourceResult.name()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplepartnerEventBus:\n type: aws:cloudwatch:EventBus\n properties:\n eventSourceName: ${examplepartnerEventSource.name}\nvariables:\n examplepartnerEventSource:\n Fn::Invoke:\n Function: aws:cloudwatch:getEventSource\n Arguments:\n namePrefix: aws.partner/examplepartner.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge event buses can be imported using the `name` (which can also be a partner event source name), e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventBus:EventBus messenger chat-messages\n```\n\n ",
+ "description": "Provides an EventBridge event bus resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 messenger = new aws.cloudwatch.EventBus(\"messenger\", {});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmessenger = aws.cloudwatch.EventBus(\"messenger\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var messenger = new Aws.CloudWatch.EventBus(\"messenger\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventBus(ctx, \"messenger\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var messenger = new EventBus(\"messenger\");\n\n }\n}\n```\n```yaml\nresources:\n messenger:\n type: aws:cloudwatch:EventBus\n```\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst examplepartnerEventSource = aws.cloudwatch.getEventSource({\n namePrefix: \"aws.partner/examplepartner.com\",\n});\nconst examplepartnerEventBus = new aws.cloudwatch.EventBus(\"examplepartnerEventBus\", {eventSourceName: examplepartnerEventSource.then(examplepartnerEventSource =\u003e examplepartnerEventSource.name)});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexamplepartner_event_source = aws.cloudwatch.get_event_source(name_prefix=\"aws.partner/examplepartner.com\")\nexamplepartner_event_bus = aws.cloudwatch.EventBus(\"examplepartnerEventBus\", event_source_name=examplepartner_event_source.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var examplepartnerEventSource = Aws.CloudWatch.GetEventSource.Invoke(new()\n {\n NamePrefix = \"aws.partner/examplepartner.com\",\n });\n\n var examplepartnerEventBus = new Aws.CloudWatch.EventBus(\"examplepartnerEventBus\", new()\n {\n EventSourceName = examplepartnerEventSource.Apply(getEventSourceResult =\u003e getEventSourceResult.Name),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texamplepartnerEventSource, err := cloudwatch.GetEventSource(ctx, \u0026cloudwatch.GetEventSourceArgs{\n\t\t\tNamePrefix: pulumi.StringRef(\"aws.partner/examplepartner.com\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = cloudwatch.NewEventBus(ctx, \"examplepartnerEventBus\", \u0026cloudwatch.EventBusArgs{\n\t\t\tEventSourceName: pulumi.String(examplepartnerEventSource.Name),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.CloudwatchFunctions;\nimport com.pulumi.aws.cloudwatch.inputs.GetEventSourceArgs;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.cloudwatch.EventBusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var examplepartnerEventSource = CloudwatchFunctions.getEventSource(GetEventSourceArgs.builder()\n .namePrefix(\"aws.partner/examplepartner.com\")\n .build());\n\n var examplepartnerEventBus = new EventBus(\"examplepartnerEventBus\", EventBusArgs.builder() \n .eventSourceName(examplepartnerEventSource.applyValue(getEventSourceResult -\u003e getEventSourceResult.name()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n examplepartnerEventBus:\n type: aws:cloudwatch:EventBus\n properties:\n eventSourceName: ${examplepartnerEventSource.name}\nvariables:\n examplepartnerEventSource:\n Fn::Invoke:\n Function: aws:cloudwatch:getEventSource\n Arguments:\n namePrefix: aws.partner/examplepartner.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge event buses can be imported using the `name` (which can also be a partner event source name), e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventBus:EventBus messenger chat-messages\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -405380,7 +408439,7 @@
}
},
"aws:cloudwatch/eventConnection:EventConnection": {
- "description": "Provides an EventBridge connection resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n apiKey: {\n key: \"x-signature\",\n value: \"1234\",\n },\n },\n authorizationType: \"API_KEY\",\n description: \"A connection description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventConnection(\"test\",\n auth_parameters=aws.cloudwatch.EventConnectionAuthParametersArgs(\n api_key=aws.cloudwatch.EventConnectionAuthParametersApiKeyArgs(\n key=\"x-signature\",\n value=\"1234\",\n ),\n ),\n authorization_type=\"API_KEY\",\n description=\"A connection description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventConnection(\"test\", new()\n {\n AuthParameters = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersArgs\n {\n ApiKey = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersApiKeyArgs\n {\n Key = \"x-signature\",\n Value = \"1234\",\n },\n },\n AuthorizationType = \"API_KEY\",\n Description = \"A connection description\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventConnection(ctx, \"test\", \u0026cloudwatch.EventConnectionArgs{\n\t\t\tAuthParameters: \u0026cloudwatch.EventConnectionAuthParametersArgs{\n\t\t\t\tApiKey: \u0026cloudwatch.EventConnectionAuthParametersApiKeyArgs{\n\t\t\t\t\tKey: pulumi.String(\"x-signature\"),\n\t\t\t\t\tValue: pulumi.String(\"1234\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizationType: pulumi.String(\"API_KEY\"),\n\t\t\tDescription: pulumi.String(\"A connection description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .apiKey(EventConnectionAuthParametersApiKeyArgs.builder()\n .key(\"x-signature\")\n .value(\"1234\")\n .build())\n .build())\n .authorizationType(\"API_KEY\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n apiKey:\n key: x-signature\n value: 1234\n authorizationType: API_KEY\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### Basic Authorization\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n basic: {\n password: \"Pass1234!\",\n username: \"user\",\n },\n },\n authorizationType: \"BASIC\",\n description: \"A connection description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventConnection(\"test\",\n auth_parameters=aws.cloudwatch.EventConnectionAuthParametersArgs(\n basic=aws.cloudwatch.EventConnectionAuthParametersBasicArgs(\n password=\"Pass1234!\",\n username=\"user\",\n ),\n ),\n authorization_type=\"BASIC\",\n description=\"A connection description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventConnection(\"test\", new()\n {\n AuthParameters = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersArgs\n {\n Basic = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersBasicArgs\n {\n Password = \"Pass1234!\",\n Username = \"user\",\n },\n },\n AuthorizationType = \"BASIC\",\n Description = \"A connection description\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventConnection(ctx, \"test\", \u0026cloudwatch.EventConnectionArgs{\n\t\t\tAuthParameters: \u0026cloudwatch.EventConnectionAuthParametersArgs{\n\t\t\t\tBasic: \u0026cloudwatch.EventConnectionAuthParametersBasicArgs{\n\t\t\t\t\tPassword: pulumi.String(\"Pass1234!\"),\n\t\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizationType: pulumi.String(\"BASIC\"),\n\t\t\tDescription: pulumi.String(\"A connection description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .basic(EventConnectionAuthParametersBasicArgs.builder()\n .password(\"Pass1234!\")\n .username(\"user\")\n .build())\n .build())\n .authorizationType(\"BASIC\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n basic:\n password: Pass1234!\n username: user\n authorizationType: BASIC\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### OAuth Authorization\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n oauth: {\n authorizationEndpoint: \"https://auth.url.com/endpoint\",\n clientParameters: {\n clientId: \"1234567890\",\n clientSecret: \"Pass1234!\",\n },\n httpMethod: \"GET\",\n oauthHttpParameters: {\n bodies: [{\n isValueSecret: false,\n key: \"body-parameter-key\",\n value: \"body-parameter-value\",\n }],\n headers: [{\n isValueSecret: false,\n key: \"header-parameter-key\",\n value: \"header-parameter-value\",\n }],\n queryStrings: [{\n isValueSecret: false,\n key: \"query-string-parameter-key\",\n value: \"query-string-parameter-value\",\n }],\n },\n },\n },\n authorizationType: \"OAUTH_CLIENT_CREDENTIALS\",\n description: \"A connection description\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthClientParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthOauthHttpParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .oauth(EventConnectionAuthParametersOauthArgs.builder()\n .authorizationEndpoint(\"https://auth.url.com/endpoint\")\n .clientParameters(EventConnectionAuthParametersOauthClientParametersArgs.builder()\n .clientId(\"1234567890\")\n .clientSecret(\"Pass1234!\")\n .build())\n .httpMethod(\"GET\")\n .oauthHttpParameters(EventConnectionAuthParametersOauthOauthHttpParametersArgs.builder()\n .body(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .header(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .queryString(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .build())\n .authorizationType(\"OAUTH_CLIENT_CREDENTIALS\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n oauth:\n authorizationEndpoint: https://auth.url.com/endpoint\n clientParameters:\n clientId: 1234567890\n clientSecret: Pass1234!\n httpMethod: GET\n oauthHttpParameters:\n body:\n - isValueSecret: false\n key: body-parameter-key\n value: body-parameter-value\n header:\n - isValueSecret: false\n key: header-parameter-key\n value: header-parameter-value\n queryString:\n - isValueSecret: false\n key: query-string-parameter-key\n value: query-string-parameter-value\n authorizationType: OAUTH_CLIENT_CREDENTIALS\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### Invocation Http Parameters\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n basic: {\n password: \"Pass1234!\",\n username: \"user\",\n },\n invocationHttpParameters: {\n bodies: [\n {\n isValueSecret: false,\n key: \"body-parameter-key\",\n value: \"body-parameter-value\",\n },\n {\n isValueSecret: true,\n key: \"body-parameter-key2\",\n value: \"body-parameter-value2\",\n },\n ],\n headers: [{\n isValueSecret: false,\n key: \"header-parameter-key\",\n value: \"header-parameter-value\",\n }],\n queryStrings: [{\n isValueSecret: false,\n key: \"query-string-parameter-key\",\n value: \"query-string-parameter-value\",\n }],\n },\n },\n authorizationType: \"BASIC\",\n description: \"A connection description\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersBasicArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersInvocationHttpParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .basic(EventConnectionAuthParametersBasicArgs.builder()\n .password(\"Pass1234!\")\n .username(\"user\")\n .build())\n .invocationHttpParameters(EventConnectionAuthParametersInvocationHttpParametersArgs.builder()\n .body( \n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .header(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .queryString(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .authorizationType(\"BASIC\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n basic:\n password: Pass1234!\n username: user\n invocationHttpParameters:\n body:\n - isValueSecret: false\n key: body-parameter-key\n value: body-parameter-value\n - isValueSecret: true\n key: body-parameter-key2\n value: body-parameter-value2\n header:\n - isValueSecret: false\n key: header-parameter-key\n value: header-parameter-value\n queryString:\n - isValueSecret: false\n key: query-string-parameter-key\n value: query-string-parameter-value\n authorizationType: BASIC\n description: A connection description\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge Connection can be imported using the `name`, e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventConnection:EventConnection test ngrok-connection\n```\n\n ",
+ "description": "Provides an EventBridge connection resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n apiKey: {\n key: \"x-signature\",\n value: \"1234\",\n },\n },\n authorizationType: \"API_KEY\",\n description: \"A connection description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventConnection(\"test\",\n auth_parameters=aws.cloudwatch.EventConnectionAuthParametersArgs(\n api_key=aws.cloudwatch.EventConnectionAuthParametersApiKeyArgs(\n key=\"x-signature\",\n value=\"1234\",\n ),\n ),\n authorization_type=\"API_KEY\",\n description=\"A connection description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventConnection(\"test\", new()\n {\n AuthParameters = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersArgs\n {\n ApiKey = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersApiKeyArgs\n {\n Key = \"x-signature\",\n Value = \"1234\",\n },\n },\n AuthorizationType = \"API_KEY\",\n Description = \"A connection description\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventConnection(ctx, \"test\", \u0026cloudwatch.EventConnectionArgs{\n\t\t\tAuthParameters: \u0026cloudwatch.EventConnectionAuthParametersArgs{\n\t\t\t\tApiKey: \u0026cloudwatch.EventConnectionAuthParametersApiKeyArgs{\n\t\t\t\t\tKey: pulumi.String(\"x-signature\"),\n\t\t\t\t\tValue: pulumi.String(\"1234\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizationType: pulumi.String(\"API_KEY\"),\n\t\t\tDescription: pulumi.String(\"A connection description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersApiKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .apiKey(EventConnectionAuthParametersApiKeyArgs.builder()\n .key(\"x-signature\")\n .value(\"1234\")\n .build())\n .build())\n .authorizationType(\"API_KEY\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n apiKey:\n key: x-signature\n value: 1234\n authorizationType: API_KEY\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### Basic Authorization\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n basic: {\n password: \"Pass1234!\",\n username: \"user\",\n },\n },\n authorizationType: \"BASIC\",\n description: \"A connection description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.EventConnection(\"test\",\n auth_parameters=aws.cloudwatch.EventConnectionAuthParametersArgs(\n basic=aws.cloudwatch.EventConnectionAuthParametersBasicArgs(\n password=\"Pass1234!\",\n username=\"user\",\n ),\n ),\n authorization_type=\"BASIC\",\n description=\"A connection description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.CloudWatch.EventConnection(\"test\", new()\n {\n AuthParameters = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersArgs\n {\n Basic = new Aws.CloudWatch.Inputs.EventConnectionAuthParametersBasicArgs\n {\n Password = \"Pass1234!\",\n Username = \"user\",\n },\n },\n AuthorizationType = \"BASIC\",\n Description = \"A connection description\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewEventConnection(ctx, \"test\", \u0026cloudwatch.EventConnectionArgs{\n\t\t\tAuthParameters: \u0026cloudwatch.EventConnectionAuthParametersArgs{\n\t\t\t\tBasic: \u0026cloudwatch.EventConnectionAuthParametersBasicArgs{\n\t\t\t\t\tPassword: pulumi.String(\"Pass1234!\"),\n\t\t\t\t\tUsername: pulumi.String(\"user\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAuthorizationType: pulumi.String(\"BASIC\"),\n\t\t\tDescription: pulumi.String(\"A connection description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .basic(EventConnectionAuthParametersBasicArgs.builder()\n .password(\"Pass1234!\")\n .username(\"user\")\n .build())\n .build())\n .authorizationType(\"BASIC\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n basic:\n password: Pass1234!\n username: user\n authorizationType: BASIC\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### OAuth Authorization\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n oauth: {\n authorizationEndpoint: \"https://auth.url.com/endpoint\",\n clientParameters: {\n clientId: \"1234567890\",\n clientSecret: \"Pass1234!\",\n },\n httpMethod: \"GET\",\n oauthHttpParameters: {\n bodies: [{\n isValueSecret: false,\n key: \"body-parameter-key\",\n value: \"body-parameter-value\",\n }],\n headers: [{\n isValueSecret: false,\n key: \"header-parameter-key\",\n value: \"header-parameter-value\",\n }],\n queryStrings: [{\n isValueSecret: false,\n key: \"query-string-parameter-key\",\n value: \"query-string-parameter-value\",\n }],\n },\n },\n },\n authorizationType: \"OAUTH_CLIENT_CREDENTIALS\",\n description: \"A connection description\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthClientParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersOauthOauthHttpParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .oauth(EventConnectionAuthParametersOauthArgs.builder()\n .authorizationEndpoint(\"https://auth.url.com/endpoint\")\n .clientParameters(EventConnectionAuthParametersOauthClientParametersArgs.builder()\n .clientId(\"1234567890\")\n .clientSecret(\"Pass1234!\")\n .build())\n .httpMethod(\"GET\")\n .oauthHttpParameters(EventConnectionAuthParametersOauthOauthHttpParametersArgs.builder()\n .body(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .header(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .queryString(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .build())\n .authorizationType(\"OAUTH_CLIENT_CREDENTIALS\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n oauth:\n authorizationEndpoint: https://auth.url.com/endpoint\n clientParameters:\n clientId: 1234567890\n clientSecret: Pass1234!\n httpMethod: GET\n oauthHttpParameters:\n body:\n - isValueSecret: false\n key: body-parameter-key\n value: body-parameter-value\n header:\n - isValueSecret: false\n key: header-parameter-key\n value: header-parameter-value\n queryString:\n - isValueSecret: false\n key: query-string-parameter-key\n value: query-string-parameter-value\n authorizationType: OAUTH_CLIENT_CREDENTIALS\n description: A connection description\n```\n\n{{% /example %}}\n{{% example %}}\n### Invocation Http Parameters\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.cloudwatch.EventConnection(\"test\", {\n authParameters: {\n basic: {\n password: \"Pass1234!\",\n username: \"user\",\n },\n invocationHttpParameters: {\n bodies: [\n {\n isValueSecret: false,\n key: \"body-parameter-key\",\n value: \"body-parameter-value\",\n },\n {\n isValueSecret: true,\n key: \"body-parameter-key2\",\n value: \"body-parameter-value2\",\n },\n ],\n headers: [{\n isValueSecret: false,\n key: \"header-parameter-key\",\n value: \"header-parameter-value\",\n }],\n queryStrings: [{\n isValueSecret: false,\n key: \"query-string-parameter-key\",\n value: \"query-string-parameter-value\",\n }],\n },\n },\n authorizationType: \"BASIC\",\n description: \"A connection description\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventConnection;\nimport com.pulumi.aws.cloudwatch.EventConnectionArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersBasicArgs;\nimport com.pulumi.aws.cloudwatch.inputs.EventConnectionAuthParametersInvocationHttpParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new EventConnection(\"test\", EventConnectionArgs.builder() \n .authParameters(EventConnectionAuthParametersArgs.builder()\n .basic(EventConnectionAuthParametersBasicArgs.builder()\n .password(\"Pass1234!\")\n .username(\"user\")\n .build())\n .invocationHttpParameters(EventConnectionAuthParametersInvocationHttpParametersArgs.builder()\n .body( \n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .header(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .queryString(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .build())\n .build())\n .authorizationType(\"BASIC\")\n .description(\"A connection description\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:cloudwatch:EventConnection\n properties:\n authParameters:\n basic:\n password: Pass1234!\n username: user\n invocationHttpParameters:\n body:\n - isValueSecret: false\n key: body-parameter-key\n value: body-parameter-value\n - isValueSecret: true\n key: body-parameter-key2\n value: body-parameter-value2\n header:\n - isValueSecret: false\n key: header-parameter-key\n value: header-parameter-value\n queryString:\n - isValueSecret: false\n key: query-string-parameter-key\n value: query-string-parameter-value\n authorizationType: BASIC\n description: A connection description\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge Connection can be imported using the `name`, e.g., console\n\n```sh\n $ pulumi import aws:cloudwatch/eventConnection:EventConnection test ngrok-connection\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -409334,6 +412393,195 @@
"type": "object"
}
},
+ "aws:codepipeline/customActionType:CustomActionType": {
+ "description": "Provides a CodeDeploy CustomActionType\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.codepipeline.CustomActionType(\"example\", {\n category: \"Build\",\n inputArtifactDetails: {\n maximumCount: 1,\n minimumCount: 0,\n },\n outputArtifactDetails: {\n maximumCount: 1,\n minimumCount: 0,\n },\n providerName: \"example\",\n version: \"1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.codepipeline.CustomActionType(\"example\",\n category=\"Build\",\n input_artifact_details=aws.codepipeline.CustomActionTypeInputArtifactDetailsArgs(\n maximum_count=1,\n minimum_count=0,\n ),\n output_artifact_details=aws.codepipeline.CustomActionTypeOutputArtifactDetailsArgs(\n maximum_count=1,\n minimum_count=0,\n ),\n provider_name=\"example\",\n version=\"1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CodePipeline.CustomActionType(\"example\", new()\n {\n Category = \"Build\",\n InputArtifactDetails = new Aws.CodePipeline.Inputs.CustomActionTypeInputArtifactDetailsArgs\n {\n MaximumCount = 1,\n MinimumCount = 0,\n },\n OutputArtifactDetails = new Aws.CodePipeline.Inputs.CustomActionTypeOutputArtifactDetailsArgs\n {\n MaximumCount = 1,\n MinimumCount = 0,\n },\n ProviderName = \"example\",\n Version = \"1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/codepipeline\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := codepipeline.NewCustomActionType(ctx, \"example\", \u0026codepipeline.CustomActionTypeArgs{\n\t\t\tCategory: pulumi.String(\"Build\"),\n\t\t\tInputArtifactDetails: \u0026codepipeline.CustomActionTypeInputArtifactDetailsArgs{\n\t\t\t\tMaximumCount: pulumi.Int(1),\n\t\t\t\tMinimumCount: pulumi.Int(0),\n\t\t\t},\n\t\t\tOutputArtifactDetails: \u0026codepipeline.CustomActionTypeOutputArtifactDetailsArgs{\n\t\t\t\tMaximumCount: pulumi.Int(1),\n\t\t\t\tMinimumCount: pulumi.Int(0),\n\t\t\t},\n\t\t\tProviderName: pulumi.String(\"example\"),\n\t\t\tVersion: pulumi.String(\"1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.codepipeline.CustomActionType;\nimport com.pulumi.aws.codepipeline.CustomActionTypeArgs;\nimport com.pulumi.aws.codepipeline.inputs.CustomActionTypeInputArtifactDetailsArgs;\nimport com.pulumi.aws.codepipeline.inputs.CustomActionTypeOutputArtifactDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new CustomActionType(\"example\", CustomActionTypeArgs.builder() \n .category(\"Build\")\n .inputArtifactDetails(CustomActionTypeInputArtifactDetailsArgs.builder()\n .maximumCount(1)\n .minimumCount(0)\n .build())\n .outputArtifactDetails(CustomActionTypeOutputArtifactDetailsArgs.builder()\n .maximumCount(1)\n .minimumCount(0)\n .build())\n .providerName(\"example\")\n .version(\"1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:codepipeline:CustomActionType\n properties:\n category: Build\n inputArtifactDetails:\n maximumCount: 1\n minimumCount: 0\n outputArtifactDetails:\n maximumCount: 1\n minimumCount: 0\n providerName: example\n version: 1\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodeDeploy CustomActionType can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:codepipeline/customActionType:CustomActionType example Build:terraform:1\n```\n\n ",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "The action ARN.\n"
+ },
+ "category": {
+ "type": "string",
+ "description": "The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`\n"
+ },
+ "configurationProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeConfigurationProperty:CustomActionTypeConfigurationProperty"
+ },
+ "description": "The configuration properties for the custom action. Max 10 items.\n"
+ },
+ "inputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeInputArtifactDetails:CustomActionTypeInputArtifactDetails",
+ "description": "The details of the input artifact for the action.\n"
+ },
+ "outputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeOutputArtifactDetails:CustomActionTypeOutputArtifactDetails",
+ "description": "The details of the output artifact of the action.\n"
+ },
+ "owner": {
+ "type": "string",
+ "description": "The creator of the action being called.\n"
+ },
+ "providerName": {
+ "type": "string",
+ "description": "The provider of the service used in the custom action\n"
+ },
+ "settings": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeSettings:CustomActionTypeSettings",
+ "description": "The settings for an action type.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "version": {
+ "type": "string",
+ "description": "The version identifier of the custom action.\n"
+ }
+ },
+ "required": [
+ "arn",
+ "category",
+ "inputArtifactDetails",
+ "outputArtifactDetails",
+ "owner",
+ "providerName",
+ "tagsAll",
+ "version"
+ ],
+ "inputProperties": {
+ "category": {
+ "type": "string",
+ "description": "The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`\n",
+ "willReplaceOnChanges": true
+ },
+ "configurationProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeConfigurationProperty:CustomActionTypeConfigurationProperty"
+ },
+ "description": "The configuration properties for the custom action. Max 10 items.\n",
+ "willReplaceOnChanges": true
+ },
+ "inputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeInputArtifactDetails:CustomActionTypeInputArtifactDetails",
+ "description": "The details of the input artifact for the action.\n",
+ "willReplaceOnChanges": true
+ },
+ "outputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeOutputArtifactDetails:CustomActionTypeOutputArtifactDetails",
+ "description": "The details of the output artifact of the action.\n",
+ "willReplaceOnChanges": true
+ },
+ "providerName": {
+ "type": "string",
+ "description": "The provider of the service used in the custom action\n",
+ "willReplaceOnChanges": true
+ },
+ "settings": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeSettings:CustomActionTypeSettings",
+ "description": "The settings for an action type.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "version": {
+ "type": "string",
+ "description": "The version identifier of the custom action.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "category",
+ "inputArtifactDetails",
+ "outputArtifactDetails",
+ "providerName",
+ "version"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering CustomActionType resources.\n",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "The action ARN.\n"
+ },
+ "category": {
+ "type": "string",
+ "description": "The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`\n",
+ "willReplaceOnChanges": true
+ },
+ "configurationProperties": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeConfigurationProperty:CustomActionTypeConfigurationProperty"
+ },
+ "description": "The configuration properties for the custom action. Max 10 items.\n",
+ "willReplaceOnChanges": true
+ },
+ "inputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeInputArtifactDetails:CustomActionTypeInputArtifactDetails",
+ "description": "The details of the input artifact for the action.\n",
+ "willReplaceOnChanges": true
+ },
+ "outputArtifactDetails": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeOutputArtifactDetails:CustomActionTypeOutputArtifactDetails",
+ "description": "The details of the output artifact of the action.\n",
+ "willReplaceOnChanges": true
+ },
+ "owner": {
+ "type": "string",
+ "description": "The creator of the action being called.\n"
+ },
+ "providerName": {
+ "type": "string",
+ "description": "The provider of the service used in the custom action\n",
+ "willReplaceOnChanges": true
+ },
+ "settings": {
+ "$ref": "#/types/aws:codepipeline/CustomActionTypeSettings:CustomActionTypeSettings",
+ "description": "The settings for an action type.\n",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "version": {
+ "type": "string",
+ "description": "The version identifier of the custom action.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:codepipeline/pipeline:Pipeline": {
"description": "Provides a CodePipeline.\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.codestarconnections.Connection(\"example\", {providerType: \"GitHub\"});\nconst codepipelineBucket = new aws.s3.BucketV2(\"codepipelineBucket\", {});\nconst codepipelineRole = new aws.iam.Role(\"codepipelineRole\", {assumeRolePolicy: `{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"codepipeline.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}\n`});\nconst s3kmskey = aws.kms.getAlias({\n name: \"alias/myKmsKey\",\n});\nconst codepipeline = new aws.codepipeline.Pipeline(\"codepipeline\", {\n roleArn: codepipelineRole.arn,\n artifactStores: [{\n location: codepipelineBucket.bucket,\n type: \"S3\",\n encryptionKey: {\n id: s3kmskey.then(s3kmskey =\u003e s3kmskey.arn),\n type: \"KMS\",\n },\n }],\n stages: [\n {\n name: \"Source\",\n actions: [{\n name: \"Source\",\n category: \"Source\",\n owner: \"AWS\",\n provider: \"CodeStarSourceConnection\",\n version: \"1\",\n outputArtifacts: [\"source_output\"],\n configuration: {\n ConnectionArn: example.arn,\n FullRepositoryId: \"my-organization/example\",\n BranchName: \"main\",\n },\n }],\n },\n {\n name: \"Build\",\n actions: [{\n name: \"Build\",\n category: \"Build\",\n owner: \"AWS\",\n provider: \"CodeBuild\",\n inputArtifacts: [\"source_output\"],\n outputArtifacts: [\"build_output\"],\n version: \"1\",\n configuration: {\n ProjectName: \"test\",\n },\n }],\n },\n {\n name: \"Deploy\",\n actions: [{\n name: \"Deploy\",\n category: \"Deploy\",\n owner: \"AWS\",\n provider: \"CloudFormation\",\n inputArtifacts: [\"build_output\"],\n version: \"1\",\n configuration: {\n ActionMode: \"REPLACE_ON_FAILURE\",\n Capabilities: \"CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\",\n OutputFileName: \"CreateStackOutput.json\",\n StackName: \"MyStack\",\n TemplatePath: \"build_output::sam-templated.yaml\",\n },\n }],\n },\n ],\n});\nconst codepipelineBucketAcl = new aws.s3.BucketAclV2(\"codepipelineBucketAcl\", {\n bucket: codepipelineBucket.id,\n acl: \"private\",\n});\nconst codepipelinePolicy = new aws.iam.RolePolicy(\"codepipelinePolicy\", {\n role: codepipelineRole.id,\n policy: pulumi.interpolate`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\":\"Allow\",\n \"Action\": [\n \"s3:GetObject\",\n \"s3:GetObjectVersion\",\n \"s3:GetBucketVersioning\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\"\n ],\n \"Resource\": [\n \"${codepipelineBucket.arn}\",\n \"${codepipelineBucket.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codestar-connections:UseConnection\"\n ],\n \"Resource\": \"${example.arn}\"\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.codestarconnections.Connection(\"example\", provider_type=\"GitHub\")\ncodepipeline_bucket = aws.s3.BucketV2(\"codepipelineBucket\")\ncodepipeline_role = aws.iam.Role(\"codepipelineRole\", assume_role_policy=\"\"\"{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"codepipeline.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}\n\"\"\")\ns3kmskey = aws.kms.get_alias(name=\"alias/myKmsKey\")\ncodepipeline = aws.codepipeline.Pipeline(\"codepipeline\",\n role_arn=codepipeline_role.arn,\n artifact_stores=[aws.codepipeline.PipelineArtifactStoreArgs(\n location=codepipeline_bucket.bucket,\n type=\"S3\",\n encryption_key=aws.codepipeline.PipelineArtifactStoreEncryptionKeyArgs(\n id=s3kmskey.arn,\n type=\"KMS\",\n ),\n )],\n stages=[\n aws.codepipeline.PipelineStageArgs(\n name=\"Source\",\n actions=[aws.codepipeline.PipelineStageActionArgs(\n name=\"Source\",\n category=\"Source\",\n owner=\"AWS\",\n provider=\"CodeStarSourceConnection\",\n version=\"1\",\n output_artifacts=[\"source_output\"],\n configuration={\n \"ConnectionArn\": example.arn,\n \"FullRepositoryId\": \"my-organization/example\",\n \"BranchName\": \"main\",\n },\n )],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Build\",\n actions=[aws.codepipeline.PipelineStageActionArgs(\n name=\"Build\",\n category=\"Build\",\n owner=\"AWS\",\n provider=\"CodeBuild\",\n input_artifacts=[\"source_output\"],\n output_artifacts=[\"build_output\"],\n version=\"1\",\n configuration={\n \"ProjectName\": \"test\",\n },\n )],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Deploy\",\n actions=[aws.codepipeline.PipelineStageActionArgs(\n name=\"Deploy\",\n category=\"Deploy\",\n owner=\"AWS\",\n provider=\"CloudFormation\",\n input_artifacts=[\"build_output\"],\n version=\"1\",\n configuration={\n \"ActionMode\": \"REPLACE_ON_FAILURE\",\n \"Capabilities\": \"CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\",\n \"OutputFileName\": \"CreateStackOutput.json\",\n \"StackName\": \"MyStack\",\n \"TemplatePath\": \"build_output::sam-templated.yaml\",\n },\n )],\n ),\n ])\ncodepipeline_bucket_acl = aws.s3.BucketAclV2(\"codepipelineBucketAcl\",\n bucket=codepipeline_bucket.id,\n acl=\"private\")\ncodepipeline_policy = aws.iam.RolePolicy(\"codepipelinePolicy\",\n role=codepipeline_role.id,\n policy=pulumi.Output.all(codepipeline_bucket.arn, codepipeline_bucket.arn, example.arn).apply(lambda codepipelineBucketArn, codepipelineBucketArn1, exampleArn: f\"\"\"{{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {{\n \"Effect\":\"Allow\",\n \"Action\": [\n \"s3:GetObject\",\n \"s3:GetObjectVersion\",\n \"s3:GetBucketVersioning\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\"\n ],\n \"Resource\": [\n \"{codepipeline_bucket_arn}\",\n \"{codepipeline_bucket_arn1}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codestar-connections:UseConnection\"\n ],\n \"Resource\": \"{example_arn}\"\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }}\n ]\n}}\n\"\"\"))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.CodeStarConnections.Connection(\"example\", new()\n {\n ProviderType = \"GitHub\",\n });\n\n var codepipelineBucket = new Aws.S3.BucketV2(\"codepipelineBucket\");\n\n var codepipelineRole = new Aws.Iam.Role(\"codepipelineRole\", new()\n {\n AssumeRolePolicy = @\"{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Principal\"\": {\n \"\"Service\"\": \"\"codepipeline.amazonaws.com\"\"\n },\n \"\"Action\"\": \"\"sts:AssumeRole\"\"\n }\n ]\n}\n\",\n });\n\n var s3kmskey = Aws.Kms.GetAlias.Invoke(new()\n {\n Name = \"alias/myKmsKey\",\n });\n\n var codepipeline = new Aws.CodePipeline.Pipeline(\"codepipeline\", new()\n {\n RoleArn = codepipelineRole.Arn,\n ArtifactStores = new[]\n {\n new Aws.CodePipeline.Inputs.PipelineArtifactStoreArgs\n {\n Location = codepipelineBucket.Bucket,\n Type = \"S3\",\n EncryptionKey = new Aws.CodePipeline.Inputs.PipelineArtifactStoreEncryptionKeyArgs\n {\n Id = s3kmskey.Apply(getAliasResult =\u003e getAliasResult.Arn),\n Type = \"KMS\",\n },\n },\n },\n Stages = new[]\n {\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Source\",\n Actions = new[]\n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Source\",\n Category = \"Source\",\n Owner = \"AWS\",\n Provider = \"CodeStarSourceConnection\",\n Version = \"1\",\n OutputArtifacts = new[]\n {\n \"source_output\",\n },\n Configuration = \n {\n { \"ConnectionArn\", example.Arn },\n { \"FullRepositoryId\", \"my-organization/example\" },\n { \"BranchName\", \"main\" },\n },\n },\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Build\",\n Actions = new[]\n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Build\",\n Category = \"Build\",\n Owner = \"AWS\",\n Provider = \"CodeBuild\",\n InputArtifacts = new[]\n {\n \"source_output\",\n },\n OutputArtifacts = new[]\n {\n \"build_output\",\n },\n Version = \"1\",\n Configuration = \n {\n { \"ProjectName\", \"test\" },\n },\n },\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Deploy\",\n Actions = new[]\n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Deploy\",\n Category = \"Deploy\",\n Owner = \"AWS\",\n Provider = \"CloudFormation\",\n InputArtifacts = new[]\n {\n \"build_output\",\n },\n Version = \"1\",\n Configuration = \n {\n { \"ActionMode\", \"REPLACE_ON_FAILURE\" },\n { \"Capabilities\", \"CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\" },\n { \"OutputFileName\", \"CreateStackOutput.json\" },\n { \"StackName\", \"MyStack\" },\n { \"TemplatePath\", \"build_output::sam-templated.yaml\" },\n },\n },\n },\n },\n },\n });\n\n var codepipelineBucketAcl = new Aws.S3.BucketAclV2(\"codepipelineBucketAcl\", new()\n {\n Bucket = codepipelineBucket.Id,\n Acl = \"private\",\n });\n\n var codepipelinePolicy = new Aws.Iam.RolePolicy(\"codepipelinePolicy\", new()\n {\n Role = codepipelineRole.Id,\n Policy = Output.Tuple(codepipelineBucket.Arn, codepipelineBucket.Arn, example.Arn).Apply(values =\u003e\n {\n var codepipelineBucketArn = values.Item1;\n var codepipelineBucketArn1 = values.Item2;\n var exampleArn = values.Item3;\n return @$\"{{\n \"\"Version\"\": \"\"2012-10-17\"\",\n \"\"Statement\"\": [\n {{\n \"\"Effect\"\":\"\"Allow\"\",\n \"\"Action\"\": [\n \"\"s3:GetObject\"\",\n \"\"s3:GetObjectVersion\"\",\n \"\"s3:GetBucketVersioning\"\",\n \"\"s3:PutObjectAcl\"\",\n \"\"s3:PutObject\"\"\n ],\n \"\"Resource\"\": [\n \"\"{codepipelineBucketArn}\"\",\n \"\"{codepipelineBucketArn1}/*\"\"\n ]\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"codestar-connections:UseConnection\"\"\n ],\n \"\"Resource\"\": \"\"{exampleArn}\"\"\n }},\n {{\n \"\"Effect\"\": \"\"Allow\"\",\n \"\"Action\"\": [\n \"\"codebuild:BatchGetBuilds\"\",\n \"\"codebuild:StartBuild\"\"\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/v5/go/aws/codepipeline\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/codestarconnections\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := codestarconnections.NewConnection(ctx, \"example\", \u0026codestarconnections.ConnectionArgs{\n\t\t\tProviderType: pulumi.String(\"GitHub\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcodepipelineBucket, err := s3.NewBucketV2(ctx, \"codepipelineBucket\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcodepipelineRole, err := iam.NewRole(ctx, \"codepipelineRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"codepipeline.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\ts3kmskey, err := kms.LookupAlias(ctx, \u0026kms.LookupAliasArgs{\n\t\t\tName: \"alias/myKmsKey\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = codepipeline.NewPipeline(ctx, \"codepipeline\", \u0026codepipeline.PipelineArgs{\n\t\t\tRoleArn: codepipelineRole.Arn,\n\t\t\tArtifactStores: codepipeline.PipelineArtifactStoreArray{\n\t\t\t\t\u0026codepipeline.PipelineArtifactStoreArgs{\n\t\t\t\t\tLocation: codepipelineBucket.Bucket,\n\t\t\t\t\tType: pulumi.String(\"S3\"),\n\t\t\t\t\tEncryptionKey: \u0026codepipeline.PipelineArtifactStoreEncryptionKeyArgs{\n\t\t\t\t\t\tId: pulumi.String(s3kmskey.Arn),\n\t\t\t\t\t\tType: pulumi.String(\"KMS\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tStages: codepipeline.PipelineStageArray{\n\t\t\t\t\u0026codepipeline.PipelineStageArgs{\n\t\t\t\t\tName: pulumi.String(\"Source\"),\n\t\t\t\t\tActions: codepipeline.PipelineStageActionArray{\n\t\t\t\t\t\t\u0026codepipeline.PipelineStageActionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Source\"),\n\t\t\t\t\t\t\tCategory: pulumi.String(\"Source\"),\n\t\t\t\t\t\t\tOwner: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tProvider: pulumi.String(\"CodeStarSourceConnection\"),\n\t\t\t\t\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\t\t\t\t\tOutputArtifacts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"source_output\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"ConnectionArn\": example.Arn,\n\t\t\t\t\t\t\t\t\"FullRepositoryId\": pulumi.String(\"my-organization/example\"),\n\t\t\t\t\t\t\t\t\"BranchName\": pulumi.String(\"main\"),\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\t\u0026codepipeline.PipelineStageArgs{\n\t\t\t\t\tName: pulumi.String(\"Build\"),\n\t\t\t\t\tActions: codepipeline.PipelineStageActionArray{\n\t\t\t\t\t\t\u0026codepipeline.PipelineStageActionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Build\"),\n\t\t\t\t\t\t\tCategory: pulumi.String(\"Build\"),\n\t\t\t\t\t\t\tOwner: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tProvider: pulumi.String(\"CodeBuild\"),\n\t\t\t\t\t\t\tInputArtifacts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"source_output\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tOutputArtifacts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"build_output\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\t\t\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"ProjectName\": pulumi.String(\"test\"),\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\t\u0026codepipeline.PipelineStageArgs{\n\t\t\t\t\tName: pulumi.String(\"Deploy\"),\n\t\t\t\t\tActions: codepipeline.PipelineStageActionArray{\n\t\t\t\t\t\t\u0026codepipeline.PipelineStageActionArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"Deploy\"),\n\t\t\t\t\t\t\tCategory: pulumi.String(\"Deploy\"),\n\t\t\t\t\t\t\tOwner: pulumi.String(\"AWS\"),\n\t\t\t\t\t\t\tProvider: pulumi.String(\"CloudFormation\"),\n\t\t\t\t\t\t\tInputArtifacts: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"build_output\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tVersion: pulumi.String(\"1\"),\n\t\t\t\t\t\t\tConfiguration: pulumi.StringMap{\n\t\t\t\t\t\t\t\t\"ActionMode\": pulumi.String(\"REPLACE_ON_FAILURE\"),\n\t\t\t\t\t\t\t\t\"Capabilities\": pulumi.String(\"CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\"),\n\t\t\t\t\t\t\t\t\"OutputFileName\": pulumi.String(\"CreateStackOutput.json\"),\n\t\t\t\t\t\t\t\t\"StackName\": pulumi.String(\"MyStack\"),\n\t\t\t\t\t\t\t\t\"TemplatePath\": pulumi.String(\"build_output::sam-templated.yaml\"),\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})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketAclV2(ctx, \"codepipelineBucketAcl\", \u0026s3.BucketAclV2Args{\n\t\t\tBucket: codepipelineBucket.ID(),\n\t\t\tAcl: pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRolePolicy(ctx, \"codepipelinePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: codepipelineRole.ID(),\n\t\t\tPolicy: pulumi.All(codepipelineBucket.Arn, codepipelineBucket.Arn, example.Arn).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tcodepipelineBucketArn := _args[0].(string)\n\t\t\t\tcodepipelineBucketArn1 := _args[1].(string)\n\t\t\t\texampleArn := _args[2].(string)\n\t\t\t\treturn fmt.Sprintf(`{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\":\"Allow\",\n \"Action\": [\n \"s3:GetObject\",\n \"s3:GetObjectVersion\",\n \"s3:GetBucketVersioning\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\"\n ],\n \"Resource\": [\n \"%v\",\n \"%v/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codestar-connections:UseConnection\"\n ],\n \"Resource\": \"%v\"\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}\n`, codepipelineBucketArn, codepipelineBucketArn1, exampleArn), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.codestarconnections.Connection;\nimport com.pulumi.aws.codestarconnections.ConnectionArgs;\nimport com.pulumi.aws.s3.BucketV2;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.kms.KmsFunctions;\nimport com.pulumi.aws.kms.inputs.GetAliasArgs;\nimport com.pulumi.aws.codepipeline.Pipeline;\nimport com.pulumi.aws.codepipeline.PipelineArgs;\nimport com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreArgs;\nimport com.pulumi.aws.codepipeline.inputs.PipelineArtifactStoreEncryptionKeyArgs;\nimport com.pulumi.aws.codepipeline.inputs.PipelineStageArgs;\nimport com.pulumi.aws.s3.BucketAclV2;\nimport com.pulumi.aws.s3.BucketAclV2Args;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Connection(\"example\", ConnectionArgs.builder() \n .providerType(\"GitHub\")\n .build());\n\n var codepipelineBucket = new BucketV2(\"codepipelineBucket\");\n\n var codepipelineRole = new Role(\"codepipelineRole\", RoleArgs.builder() \n .assumeRolePolicy(\"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"codepipeline.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n}\n \"\"\")\n .build());\n\n final var s3kmskey = KmsFunctions.getAlias(GetAliasArgs.builder()\n .name(\"alias/myKmsKey\")\n .build());\n\n var codepipeline = new Pipeline(\"codepipeline\", PipelineArgs.builder() \n .roleArn(codepipelineRole.arn())\n .artifactStores(PipelineArtifactStoreArgs.builder()\n .location(codepipelineBucket.bucket())\n .type(\"S3\")\n .encryptionKey(PipelineArtifactStoreEncryptionKeyArgs.builder()\n .id(s3kmskey.applyValue(getAliasResult -\u003e getAliasResult.arn()))\n .type(\"KMS\")\n .build())\n .build())\n .stages( \n PipelineStageArgs.builder()\n .name(\"Source\")\n .actions(PipelineStageActionArgs.builder()\n .name(\"Source\")\n .category(\"Source\")\n .owner(\"AWS\")\n .provider(\"CodeStarSourceConnection\")\n .version(\"1\")\n .outputArtifacts(\"source_output\")\n .configuration(Map.ofEntries(\n Map.entry(\"ConnectionArn\", example.arn()),\n Map.entry(\"FullRepositoryId\", \"my-organization/example\"),\n Map.entry(\"BranchName\", \"main\")\n ))\n .build())\n .build(),\n PipelineStageArgs.builder()\n .name(\"Build\")\n .actions(PipelineStageActionArgs.builder()\n .name(\"Build\")\n .category(\"Build\")\n .owner(\"AWS\")\n .provider(\"CodeBuild\")\n .inputArtifacts(\"source_output\")\n .outputArtifacts(\"build_output\")\n .version(\"1\")\n .configuration(Map.of(\"ProjectName\", \"test\"))\n .build())\n .build(),\n PipelineStageArgs.builder()\n .name(\"Deploy\")\n .actions(PipelineStageActionArgs.builder()\n .name(\"Deploy\")\n .category(\"Deploy\")\n .owner(\"AWS\")\n .provider(\"CloudFormation\")\n .inputArtifacts(\"build_output\")\n .version(\"1\")\n .configuration(Map.ofEntries(\n Map.entry(\"ActionMode\", \"REPLACE_ON_FAILURE\"),\n Map.entry(\"Capabilities\", \"CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\"),\n Map.entry(\"OutputFileName\", \"CreateStackOutput.json\"),\n Map.entry(\"StackName\", \"MyStack\"),\n Map.entry(\"TemplatePath\", \"build_output::sam-templated.yaml\")\n ))\n .build())\n .build())\n .build());\n\n var codepipelineBucketAcl = new BucketAclV2(\"codepipelineBucketAcl\", BucketAclV2Args.builder() \n .bucket(codepipelineBucket.id())\n .acl(\"private\")\n .build());\n\n var codepipelinePolicy = new RolePolicy(\"codepipelinePolicy\", RolePolicyArgs.builder() \n .role(codepipelineRole.id())\n .policy(Output.tuple(codepipelineBucket.arn(), codepipelineBucket.arn(), example.arn()).applyValue(values -\u003e {\n var codepipelineBucketArn = values.t1;\n var codepipelineBucketArn1 = values.t2;\n var exampleArn = values.t3;\n return \"\"\"\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\":\"Allow\",\n \"Action\": [\n \"s3:GetObject\",\n \"s3:GetObjectVersion\",\n \"s3:GetBucketVersioning\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\"\n ],\n \"Resource\": [\n \"%s\",\n \"%s/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codestar-connections:UseConnection\"\n ],\n \"Resource\": \"%s\"\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }\n ]\n}\n\", codepipelineBucketArn,codepipelineBucketArn1,exampleArn);\n }))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n codepipeline:\n type: aws:codepipeline:Pipeline\n properties:\n roleArn: ${codepipelineRole.arn}\n artifactStores:\n - location: ${codepipelineBucket.bucket}\n type: S3\n encryptionKey:\n id: ${s3kmskey.arn}\n type: KMS\n stages:\n - name: Source\n actions:\n - name: Source\n category: Source\n owner: AWS\n provider: CodeStarSourceConnection\n version: 1\n outputArtifacts:\n - source_output\n configuration:\n ConnectionArn: ${example.arn}\n FullRepositoryId: my-organization/example\n BranchName: main\n - name: Build\n actions:\n - name: Build\n category: Build\n owner: AWS\n provider: CodeBuild\n inputArtifacts:\n - source_output\n outputArtifacts:\n - build_output\n version: 1\n configuration:\n ProjectName: test\n - name: Deploy\n actions:\n - name: Deploy\n category: Deploy\n owner: AWS\n provider: CloudFormation\n inputArtifacts:\n - build_output\n version: 1\n configuration:\n ActionMode: REPLACE_ON_FAILURE\n Capabilities: CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM\n OutputFileName: CreateStackOutput.json\n StackName: MyStack\n TemplatePath: build_output::sam-templated.yaml\n example:\n type: aws:codestarconnections:Connection\n properties:\n providerType: GitHub\n codepipelineBucket:\n type: aws:s3:BucketV2\n codepipelineBucketAcl:\n type: aws:s3:BucketAclV2\n properties:\n bucket: ${codepipelineBucket.id}\n acl: private\n codepipelineRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": \"codepipeline.amazonaws.com\"\n },\n \"Action\": \"sts:AssumeRole\"\n }\n ]\n }\n codepipelinePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${codepipelineRole.id}\n policy: |\n {\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\":\"Allow\",\n \"Action\": [\n \"s3:GetObject\",\n \"s3:GetObjectVersion\",\n \"s3:GetBucketVersioning\",\n \"s3:PutObjectAcl\",\n \"s3:PutObject\"\n ],\n \"Resource\": [\n \"${codepipelineBucket.arn}\",\n \"${codepipelineBucket.arn}/*\"\n ]\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codestar-connections:UseConnection\"\n ],\n \"Resource\": \"${example.arn}\"\n },\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }\n ]\n }\nvariables:\n s3kmskey:\n Fn::Invoke:\n Function: aws:kms:getAlias\n Arguments:\n name: alias/myKmsKey\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodePipelines can be imported using the name, e.g.,\n\n```sh\n $ pulumi import aws:codepipeline/pipeline:Pipeline foo example\n```\n\n ",
"properties": {
@@ -411180,137 +414428,145 @@
},
"description": "Map of tags to assign to the User Pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n"
},
- "tagsAll": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n"
- },
- "userPoolAddOns": {
- "$ref": "#/types/aws:cognito/UserPoolUserPoolAddOns:UserPoolUserPoolAddOns",
- "description": "Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.\n"
- },
- "usernameAttributes": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `alias_attributes`.\n"
- },
- "usernameConfiguration": {
- "$ref": "#/types/aws:cognito/UserPoolUsernameConfiguration:UserPoolUsernameConfiguration",
- "description": "Configuration block for username configuration. Detailed below.\n"
- },
- "verificationMessageTemplate": {
- "$ref": "#/types/aws:cognito/UserPoolVerificationMessageTemplate:UserPoolVerificationMessageTemplate",
- "description": "Configuration block for verification message templates. Detailed below.\n"
- }
- },
- "required": [
- "adminCreateUserConfig",
- "arn",
- "creationDate",
- "customDomain",
- "domain",
- "emailVerificationMessage",
- "emailVerificationSubject",
- "endpoint",
- "estimatedNumberOfUsers",
- "lastModifiedDate",
- "name",
- "passwordPolicy",
- "smsConfiguration",
- "smsVerificationMessage",
- "tagsAll",
- "verificationMessageTemplate"
- ],
- "inputProperties": {
- "accountRecoverySetting": {
- "$ref": "#/types/aws:cognito/UserPoolAccountRecoverySetting:UserPoolAccountRecoverySetting",
- "description": "Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.\n"
- },
- "adminCreateUserConfig": {
- "$ref": "#/types/aws:cognito/UserPoolAdminCreateUserConfig:UserPoolAdminCreateUserConfig",
- "description": "Configuration block for creating a new user profile. Detailed below.\n"
- },
- "aliasAttributes": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Attributes supported as an alias for this user pool. Valid values: `phone_number`, `email`, or `preferred_username`. Conflicts with `username_attributes`.\n",
- "willReplaceOnChanges": true
- },
- "autoVerifiedAttributes": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "Attributes to be auto-verified. Valid values: `email`, `phone_number`.\n"
- },
- "deviceConfiguration": {
- "$ref": "#/types/aws:cognito/UserPoolDeviceConfiguration:UserPoolDeviceConfiguration",
- "description": "Configuration block for the user pool's device tracking. Detailed below.\n"
- },
- "emailConfiguration": {
- "$ref": "#/types/aws:cognito/UserPoolEmailConfiguration:UserPoolEmailConfiguration",
- "description": "Configuration block for configuring email. Detailed below.\n"
- },
- "emailVerificationMessage": {
- "type": "string",
- "description": "String representing the email verification message. Conflicts with `verification_message_template` configuration block `email_message` argument.\n"
- },
- "emailVerificationSubject": {
- "type": "string",
- "description": "String representing the email verification subject. Conflicts with `verification_message_template` configuration block `email_subject` argument.\n"
- },
- "lambdaConfig": {
- "$ref": "#/types/aws:cognito/UserPoolLambdaConfig:UserPoolLambdaConfig",
- "description": "Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.\n"
- },
- "mfaConfiguration": {
- "type": "string",
- "description": "Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `sms_configuration` or `software_token_mfa_configuration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `sms_configuration` or `software_token_mfa_configuration` to be configured).\n"
- },
- "name": {
- "type": "string",
- "description": "Name of the attribute.\n",
- "willReplaceOnChanges": true
- },
- "passwordPolicy": {
- "$ref": "#/types/aws:cognito/UserPoolPasswordPolicy:UserPoolPasswordPolicy",
- "description": "Configuration blocked for information about the user pool password policy. Detailed below.\n"
- },
- "schemas": {
- "type": "array",
- "items": {
- "$ref": "#/types/aws:cognito/UserPoolSchema:UserPoolSchema"
- },
- "description": "Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.\n"
- },
- "smsAuthenticationMessage": {
- "type": "string",
- "description": "String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.\n"
- },
- "smsConfiguration": {
- "$ref": "#/types/aws:cognito/UserPoolSmsConfiguration:UserPoolSmsConfiguration",
- "description": "Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection.\n"
- },
- "smsVerificationMessage": {
- "type": "string",
- "description": "String representing the SMS verification message. Conflicts with `verification_message_template` configuration block `sms_message` argument.\n"
- },
- "softwareTokenMfaConfiguration": {
- "$ref": "#/types/aws:cognito/UserPoolSoftwareTokenMfaConfiguration:UserPoolSoftwareTokenMfaConfiguration",
- "description": "Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.\n"
- },
- "tags": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "Map of tags to assign to the User Pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n"
+ },
+ "userAttributeUpdateSettings": {
+ "$ref": "#/types/aws:cognito/UserPoolUserAttributeUpdateSettings:UserPoolUserAttributeUpdateSettings",
+ "description": "Configuration block for user attribute update settings. Detailed below.\n"
+ },
+ "userPoolAddOns": {
+ "$ref": "#/types/aws:cognito/UserPoolUserPoolAddOns:UserPoolUserPoolAddOns",
+ "description": "Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.\n"
+ },
+ "usernameAttributes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Whether email addresses or phone numbers can be specified as usernames when a user signs up. Conflicts with `alias_attributes`.\n"
+ },
+ "usernameConfiguration": {
+ "$ref": "#/types/aws:cognito/UserPoolUsernameConfiguration:UserPoolUsernameConfiguration",
+ "description": "Configuration block for username configuration. Detailed below.\n"
+ },
+ "verificationMessageTemplate": {
+ "$ref": "#/types/aws:cognito/UserPoolVerificationMessageTemplate:UserPoolVerificationMessageTemplate",
+ "description": "Configuration block for verification message templates. Detailed below.\n"
+ }
+ },
+ "required": [
+ "adminCreateUserConfig",
+ "arn",
+ "creationDate",
+ "customDomain",
+ "domain",
+ "emailVerificationMessage",
+ "emailVerificationSubject",
+ "endpoint",
+ "estimatedNumberOfUsers",
+ "lastModifiedDate",
+ "name",
+ "passwordPolicy",
+ "smsConfiguration",
+ "smsVerificationMessage",
+ "tagsAll",
+ "verificationMessageTemplate"
+ ],
+ "inputProperties": {
+ "accountRecoverySetting": {
+ "$ref": "#/types/aws:cognito/UserPoolAccountRecoverySetting:UserPoolAccountRecoverySetting",
+ "description": "Configuration block to define which verified available method a user can use to recover their forgotten password. Detailed below.\n"
+ },
+ "adminCreateUserConfig": {
+ "$ref": "#/types/aws:cognito/UserPoolAdminCreateUserConfig:UserPoolAdminCreateUserConfig",
+ "description": "Configuration block for creating a new user profile. Detailed below.\n"
+ },
+ "aliasAttributes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Attributes supported as an alias for this user pool. Valid values: `phone_number`, `email`, or `preferred_username`. Conflicts with `username_attributes`.\n",
+ "willReplaceOnChanges": true
+ },
+ "autoVerifiedAttributes": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Attributes to be auto-verified. Valid values: `email`, `phone_number`.\n"
+ },
+ "deviceConfiguration": {
+ "$ref": "#/types/aws:cognito/UserPoolDeviceConfiguration:UserPoolDeviceConfiguration",
+ "description": "Configuration block for the user pool's device tracking. Detailed below.\n"
+ },
+ "emailConfiguration": {
+ "$ref": "#/types/aws:cognito/UserPoolEmailConfiguration:UserPoolEmailConfiguration",
+ "description": "Configuration block for configuring email. Detailed below.\n"
+ },
+ "emailVerificationMessage": {
+ "type": "string",
+ "description": "String representing the email verification message. Conflicts with `verification_message_template` configuration block `email_message` argument.\n"
+ },
+ "emailVerificationSubject": {
+ "type": "string",
+ "description": "String representing the email verification subject. Conflicts with `verification_message_template` configuration block `email_subject` argument.\n"
+ },
+ "lambdaConfig": {
+ "$ref": "#/types/aws:cognito/UserPoolLambdaConfig:UserPoolLambdaConfig",
+ "description": "Configuration block for the AWS Lambda triggers associated with the user pool. Detailed below.\n"
+ },
+ "mfaConfiguration": {
+ "type": "string",
+ "description": "Multi-Factor Authentication (MFA) configuration for the User Pool. Defaults of `OFF`. Valid values are `OFF` (MFA Tokens are not required), `ON` (MFA is required for all users to sign in; requires at least one of `sms_configuration` or `software_token_mfa_configuration` to be configured), or `OPTIONAL` (MFA Will be required only for individual users who have MFA Enabled; requires at least one of `sms_configuration` or `software_token_mfa_configuration` to be configured).\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name of the attribute.\n",
+ "willReplaceOnChanges": true
+ },
+ "passwordPolicy": {
+ "$ref": "#/types/aws:cognito/UserPoolPasswordPolicy:UserPoolPasswordPolicy",
+ "description": "Configuration blocked for information about the user pool password policy. Detailed below.\n"
+ },
+ "schemas": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:cognito/UserPoolSchema:UserPoolSchema"
+ },
+ "description": "Configuration block for the schema attributes of a user pool. Detailed below. Schema attributes from the [standard attribute set](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) only need to be specified if they are different from the default configuration. Attributes can be added, but not modified or removed. Maximum of 50 attributes.\n"
+ },
+ "smsAuthenticationMessage": {
+ "type": "string",
+ "description": "String representing the SMS authentication message. The Message must contain the `{####}` placeholder, which will be replaced with the code.\n"
+ },
+ "smsConfiguration": {
+ "$ref": "#/types/aws:cognito/UserPoolSmsConfiguration:UserPoolSmsConfiguration",
+ "description": "Configuration block for Short Message Service (SMS) settings. Detailed below. These settings apply to SMS user verification and SMS Multi-Factor Authentication (MFA). Due to Cognito API restrictions, the SMS configuration cannot be removed without recreating the Cognito User Pool. For user data safety, this resource will ignore the removal of this configuration by disabling drift detection.\n"
+ },
+ "smsVerificationMessage": {
+ "type": "string",
+ "description": "String representing the SMS verification message. Conflicts with `verification_message_template` configuration block `sms_message` argument.\n"
+ },
+ "softwareTokenMfaConfiguration": {
+ "$ref": "#/types/aws:cognito/UserPoolSoftwareTokenMfaConfiguration:UserPoolSoftwareTokenMfaConfiguration",
+ "description": "Configuration block for software token Mult-Factor Authentication (MFA) settings. Detailed below.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of tags to assign to the User Pool. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "userAttributeUpdateSettings": {
+ "$ref": "#/types/aws:cognito/UserPoolUserAttributeUpdateSettings:UserPoolUserAttributeUpdateSettings",
+ "description": "Configuration block for user attribute update settings. Detailed below.\n"
},
"userPoolAddOns": {
"$ref": "#/types/aws:cognito/UserPoolUserPoolAddOns:UserPoolUserPoolAddOns",
@@ -411457,6 +414713,10 @@
},
"description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n"
},
+ "userAttributeUpdateSettings": {
+ "$ref": "#/types/aws:cognito/UserPoolUserAttributeUpdateSettings:UserPoolUserAttributeUpdateSettings",
+ "description": "Configuration block for user attribute update settings. Detailed below.\n"
+ },
"userPoolAddOns": {
"$ref": "#/types/aws:cognito/UserPoolUserPoolAddOns:UserPoolUserPoolAddOns",
"description": "Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.\n"
@@ -412044,6 +415304,214 @@
"type": "object"
}
},
+ "aws:comprehend/documentClassifier:DocumentClassifier": {
+ "description": "{{% 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 documents = new aws.s3.BucketObjectv2(\"documents\", {});\n// ...\nconst example = new aws.comprehend.DocumentClassifier(\"example\", {\n dataAccessRoleArn: aws_iam_role.example.arn,\n languageCode: \"en\",\n inputDataConfig: {\n s3Uri: pulumi.interpolate`s3://${aws_s3_bucket.test.bucket}/${documents.id}`,\n },\n}, {\n dependsOn: [aws_iam_role_policy.example],\n});\nconst entities = new aws.s3.BucketObjectv2(\"entities\", {});\n// ...\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndocuments = aws.s3.BucketObjectv2(\"documents\")\n# ...\nexample = aws.comprehend.DocumentClassifier(\"example\",\n data_access_role_arn=aws_iam_role[\"example\"][\"arn\"],\n language_code=\"en\",\n input_data_config=aws.comprehend.DocumentClassifierInputDataConfigArgs(\n s3_uri=documents.id.apply(lambda id: f\"s3://{aws_s3_bucket['test']['bucket']}/{id}\"),\n ),\n opts=pulumi.ResourceOptions(depends_on=[aws_iam_role_policy[\"example\"]]))\nentities = aws.s3.BucketObjectv2(\"entities\")\n# ...\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var documents = new Aws.S3.BucketObjectv2(\"documents\");\n\n // ...\n var example = new Aws.Comprehend.DocumentClassifier(\"example\", new()\n {\n DataAccessRoleArn = aws_iam_role.Example.Arn,\n LanguageCode = \"en\",\n InputDataConfig = new Aws.Comprehend.Inputs.DocumentClassifierInputDataConfigArgs\n {\n S3Uri = documents.Id.Apply(id =\u003e $\"s3://{aws_s3_bucket.Test.Bucket}/{id}\"),\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_iam_role_policy.Example,\n },\n });\n\n var entities = new Aws.S3.BucketObjectv2(\"entities\");\n\n // ...\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/comprehend\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdocuments, err := s3.NewBucketObjectv2(ctx, \"documents\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = comprehend.NewDocumentClassifier(ctx, \"example\", \u0026comprehend.DocumentClassifierArgs{\n\t\t\tDataAccessRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tLanguageCode: pulumi.String(\"en\"),\n\t\t\tInputDataConfig: \u0026comprehend.DocumentClassifierInputDataConfigArgs{\n\t\t\t\tS3Uri: documents.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"s3://%v/%v\", aws_s3_bucket.Test.Bucket, id), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taws_iam_role_policy.Example,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3.NewBucketObjectv2(ctx, \"entities\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3.BucketObjectv2;\nimport com.pulumi.aws.comprehend.DocumentClassifier;\nimport com.pulumi.aws.comprehend.DocumentClassifierArgs;\nimport com.pulumi.aws.comprehend.inputs.DocumentClassifierInputDataConfigArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var documents = new BucketObjectv2(\"documents\");\n\n var example = new DocumentClassifier(\"example\", DocumentClassifierArgs.builder() \n .dataAccessRoleArn(aws_iam_role.example().arn())\n .languageCode(\"en\")\n .inputDataConfig(DocumentClassifierInputDataConfigArgs.builder()\n .s3Uri(documents.id().applyValue(id -\u003e String.format(\"s3://%s/%s\", aws_s3_bucket.test().bucket(),id)))\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(aws_iam_role_policy.example())\n .build());\n\n var entities = new BucketObjectv2(\"entities\");\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:comprehend:DocumentClassifier\n properties:\n dataAccessRoleArn: ${aws_iam_role.example.arn}\n languageCode: en\n inputDataConfig:\n s3Uri: s3://${aws_s3_bucket.test.bucket}/${documents.id}\n options:\n dependson:\n - ${aws_iam_role_policy.example}\n documents:\n type: aws:s3:BucketObjectv2\n entities:\n type: aws:s3:BucketObjectv2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nComprehend Document Classifier can be imported using the ARN, e.g.,\n\n```sh\n $ pulumi import aws:comprehend/documentClassifier:DocumentClassifier example arn:aws:comprehend:us-west-2:123456789012:document_classifier/example\n```\n\n ",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN of the Document Classifier version.\n"
+ },
+ "dataAccessRoleArn": {
+ "type": "string",
+ "description": "The ARN for an IAM Role which allows Comprehend to read the training and testing data.\n"
+ },
+ "inputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierInputDataConfig:DocumentClassifierInputDataConfig",
+ "description": "Configuration for the training and testing data.\nSee the `input_data_config` Configuration Block section below.\n"
+ },
+ "languageCode": {
+ "type": "string",
+ "description": "Two-letter language code for the language.\nOne of `en`, `es`, `fr`, `it`, `de`, or `pt`.\n"
+ },
+ "mode": {
+ "type": "string",
+ "description": "The document classification mode.\nOne of `MULTI_CLASS` or `MULTI_LABEL`.\n`MULTI_CLASS` is also known as \"Single Label\" in the AWS Console.\n"
+ },
+ "modelKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt trained Document Classifiers.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name for the Document Classifier.\nHas a maximum length of 63 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\n"
+ },
+ "outputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierOutputDataConfig:DocumentClassifierOutputDataConfig",
+ "description": "Configuration for the output results of training.\nSee the `output_data_config` Configuration Block section below.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).\n"
+ },
+ "versionName": {
+ "type": "string"
+ },
+ "versionNamePrefix": {
+ "type": "string",
+ "description": "Creates a unique version name beginning with the specified prefix.\nHas a maximum length of 37 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\nConflicts with `version_name`.\n"
+ },
+ "volumeKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt storage volumes during job processing.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "vpcConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierVpcConfig:DocumentClassifierVpcConfig",
+ "description": "Configuration parameters for VPC to contain Document Classifier resources.\nSee the `vpc_config` Configuration Block section below.\n"
+ }
+ },
+ "required": [
+ "arn",
+ "dataAccessRoleArn",
+ "inputDataConfig",
+ "languageCode",
+ "name",
+ "outputDataConfig",
+ "tagsAll",
+ "versionName",
+ "versionNamePrefix"
+ ],
+ "inputProperties": {
+ "dataAccessRoleArn": {
+ "type": "string",
+ "description": "The ARN for an IAM Role which allows Comprehend to read the training and testing data.\n"
+ },
+ "inputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierInputDataConfig:DocumentClassifierInputDataConfig",
+ "description": "Configuration for the training and testing data.\nSee the `input_data_config` Configuration Block section below.\n"
+ },
+ "languageCode": {
+ "type": "string",
+ "description": "Two-letter language code for the language.\nOne of `en`, `es`, `fr`, `it`, `de`, or `pt`.\n"
+ },
+ "mode": {
+ "type": "string",
+ "description": "The document classification mode.\nOne of `MULTI_CLASS` or `MULTI_LABEL`.\n`MULTI_CLASS` is also known as \"Single Label\" in the AWS Console.\n"
+ },
+ "modelKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt trained Document Classifiers.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name for the Document Classifier.\nHas a maximum length of 63 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\n"
+ },
+ "outputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierOutputDataConfig:DocumentClassifierOutputDataConfig",
+ "description": "Configuration for the output results of training.\nSee the `output_data_config` Configuration Block section below.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).\n"
+ },
+ "versionName": {
+ "type": "string"
+ },
+ "versionNamePrefix": {
+ "type": "string",
+ "description": "Creates a unique version name beginning with the specified prefix.\nHas a maximum length of 37 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\nConflicts with `version_name`.\n"
+ },
+ "volumeKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt storage volumes during job processing.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "vpcConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierVpcConfig:DocumentClassifierVpcConfig",
+ "description": "Configuration parameters for VPC to contain Document Classifier resources.\nSee the `vpc_config` Configuration Block section below.\n"
+ }
+ },
+ "requiredInputs": [
+ "dataAccessRoleArn",
+ "inputDataConfig",
+ "languageCode"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering DocumentClassifier resources.\n",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN of the Document Classifier version.\n"
+ },
+ "dataAccessRoleArn": {
+ "type": "string",
+ "description": "The ARN for an IAM Role which allows Comprehend to read the training and testing data.\n"
+ },
+ "inputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierInputDataConfig:DocumentClassifierInputDataConfig",
+ "description": "Configuration for the training and testing data.\nSee the `input_data_config` Configuration Block section below.\n"
+ },
+ "languageCode": {
+ "type": "string",
+ "description": "Two-letter language code for the language.\nOne of `en`, `es`, `fr`, `it`, `de`, or `pt`.\n"
+ },
+ "mode": {
+ "type": "string",
+ "description": "The document classification mode.\nOne of `MULTI_CLASS` or `MULTI_LABEL`.\n`MULTI_CLASS` is also known as \"Single Label\" in the AWS Console.\n"
+ },
+ "modelKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt trained Document Classifiers.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "Name for the Document Classifier.\nHas a maximum length of 63 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\n"
+ },
+ "outputDataConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierOutputDataConfig:DocumentClassifierOutputDataConfig",
+ "description": "Configuration for the output results of training.\nSee the `output_data_config` Configuration Block section below.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).\n"
+ },
+ "versionName": {
+ "type": "string"
+ },
+ "versionNamePrefix": {
+ "type": "string",
+ "description": "Creates a unique version name beginning with the specified prefix.\nHas a maximum length of 37 characters.\nCan contain upper- and lower-case letters, numbers, and hypen (`-`).\nConflicts with `version_name`.\n"
+ },
+ "volumeKmsKeyId": {
+ "type": "string",
+ "description": "KMS Key used to encrypt storage volumes during job processing.\nCan be a KMS Key ID or a KMS Key ARN.\n"
+ },
+ "vpcConfig": {
+ "$ref": "#/types/aws:comprehend/DocumentClassifierVpcConfig:DocumentClassifierVpcConfig",
+ "description": "Configuration parameters for VPC to contain Document Classifier resources.\nSee the `vpc_config` Configuration Block section below.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:comprehend/entityRecognizer:EntityRecognizer": {
"description": "{{% 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 documents = new aws.s3.BucketObjectv2(\"documents\", {});\n// ...\nconst entities = new aws.s3.BucketObjectv2(\"entities\", {});\n// ...\nconst example = new aws.comprehend.EntityRecognizer(\"example\", {\n dataAccessRoleArn: aws_iam_role.example.arn,\n languageCode: \"en\",\n inputDataConfig: {\n entityTypes: [\n {\n type: \"ENTITY_1\",\n },\n {\n type: \"ENTITY_2\",\n },\n ],\n documents: {\n s3Uri: pulumi.interpolate`s3://${aws_s3_bucket.documents.bucket}/${documents.id}`,\n },\n entityList: {\n s3Uri: pulumi.interpolate`s3://${aws_s3_bucket.entities.bucket}/${entities.id}`,\n },\n },\n}, {\n dependsOn: [aws_iam_role_policy.example],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndocuments = aws.s3.BucketObjectv2(\"documents\")\n# ...\nentities = aws.s3.BucketObjectv2(\"entities\")\n# ...\nexample = aws.comprehend.EntityRecognizer(\"example\",\n data_access_role_arn=aws_iam_role[\"example\"][\"arn\"],\n language_code=\"en\",\n input_data_config=aws.comprehend.EntityRecognizerInputDataConfigArgs(\n entity_types=[\n aws.comprehend.EntityRecognizerInputDataConfigEntityTypeArgs(\n type=\"ENTITY_1\",\n ),\n aws.comprehend.EntityRecognizerInputDataConfigEntityTypeArgs(\n type=\"ENTITY_2\",\n ),\n ],\n documents=aws.comprehend.EntityRecognizerInputDataConfigDocumentsArgs(\n s3_uri=documents.id.apply(lambda id: f\"s3://{aws_s3_bucket['documents']['bucket']}/{id}\"),\n ),\n entity_list=aws.comprehend.EntityRecognizerInputDataConfigEntityListArgs(\n s3_uri=entities.id.apply(lambda id: f\"s3://{aws_s3_bucket['entities']['bucket']}/{id}\"),\n ),\n ),\n opts=pulumi.ResourceOptions(depends_on=[aws_iam_role_policy[\"example\"]]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var documents = new Aws.S3.BucketObjectv2(\"documents\");\n\n // ...\n var entities = new Aws.S3.BucketObjectv2(\"entities\");\n\n // ...\n var example = new Aws.Comprehend.EntityRecognizer(\"example\", new()\n {\n DataAccessRoleArn = aws_iam_role.Example.Arn,\n LanguageCode = \"en\",\n InputDataConfig = new Aws.Comprehend.Inputs.EntityRecognizerInputDataConfigArgs\n {\n EntityTypes = new[]\n {\n new Aws.Comprehend.Inputs.EntityRecognizerInputDataConfigEntityTypeArgs\n {\n Type = \"ENTITY_1\",\n },\n new Aws.Comprehend.Inputs.EntityRecognizerInputDataConfigEntityTypeArgs\n {\n Type = \"ENTITY_2\",\n },\n },\n Documents = new Aws.Comprehend.Inputs.EntityRecognizerInputDataConfigDocumentsArgs\n {\n S3Uri = documents.Id.Apply(id =\u003e $\"s3://{aws_s3_bucket.Documents.Bucket}/{id}\"),\n },\n EntityList = new Aws.Comprehend.Inputs.EntityRecognizerInputDataConfigEntityListArgs\n {\n S3Uri = entities.Id.Apply(id =\u003e $\"s3://{aws_s3_bucket.Entities.Bucket}/{id}\"),\n },\n },\n }, new CustomResourceOptions\n {\n DependsOn = new[]\n {\n aws_iam_role_policy.Example,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/comprehend\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tdocuments, err := s3.NewBucketObjectv2(ctx, \"documents\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tentities, err := s3.NewBucketObjectv2(ctx, \"entities\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = comprehend.NewEntityRecognizer(ctx, \"example\", \u0026comprehend.EntityRecognizerArgs{\n\t\t\tDataAccessRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tLanguageCode: pulumi.String(\"en\"),\n\t\t\tInputDataConfig: \u0026comprehend.EntityRecognizerInputDataConfigArgs{\n\t\t\t\tEntityTypes: comprehend.EntityRecognizerInputDataConfigEntityTypeArray{\n\t\t\t\t\t\u0026comprehend.EntityRecognizerInputDataConfigEntityTypeArgs{\n\t\t\t\t\t\tType: pulumi.String(\"ENTITY_1\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026comprehend.EntityRecognizerInputDataConfigEntityTypeArgs{\n\t\t\t\t\t\tType: pulumi.String(\"ENTITY_2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDocuments: \u0026comprehend.EntityRecognizerInputDataConfigDocumentsArgs{\n\t\t\t\t\tS3Uri: documents.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"s3://%v/%v\", aws_s3_bucket.Documents.Bucket, id), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t\tEntityList: \u0026comprehend.EntityRecognizerInputDataConfigEntityListArgs{\n\t\t\t\t\tS3Uri: entities.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"s3://%v/%v\", aws_s3_bucket.Entities.Bucket, id), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\taws_iam_role_policy.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3.BucketObjectv2;\nimport com.pulumi.aws.comprehend.EntityRecognizer;\nimport com.pulumi.aws.comprehend.EntityRecognizerArgs;\nimport com.pulumi.aws.comprehend.inputs.EntityRecognizerInputDataConfigArgs;\nimport com.pulumi.aws.comprehend.inputs.EntityRecognizerInputDataConfigDocumentsArgs;\nimport com.pulumi.aws.comprehend.inputs.EntityRecognizerInputDataConfigEntityListArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var documents = new BucketObjectv2(\"documents\");\n\n var entities = new BucketObjectv2(\"entities\");\n\n var example = new EntityRecognizer(\"example\", EntityRecognizerArgs.builder() \n .dataAccessRoleArn(aws_iam_role.example().arn())\n .languageCode(\"en\")\n .inputDataConfig(EntityRecognizerInputDataConfigArgs.builder()\n .entityTypes( \n EntityRecognizerInputDataConfigEntityTypeArgs.builder()\n .type(\"ENTITY_1\")\n .build(),\n EntityRecognizerInputDataConfigEntityTypeArgs.builder()\n .type(\"ENTITY_2\")\n .build())\n .documents(EntityRecognizerInputDataConfigDocumentsArgs.builder()\n .s3Uri(documents.id().applyValue(id -\u003e String.format(\"s3://%s/%s\", aws_s3_bucket.documents().bucket(),id)))\n .build())\n .entityList(EntityRecognizerInputDataConfigEntityListArgs.builder()\n .s3Uri(entities.id().applyValue(id -\u003e String.format(\"s3://%s/%s\", aws_s3_bucket.entities().bucket(),id)))\n .build())\n .build())\n .build(), CustomResourceOptions.builder()\n .dependsOn(aws_iam_role_policy.example())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:comprehend:EntityRecognizer\n properties:\n dataAccessRoleArn: ${aws_iam_role.example.arn}\n languageCode: en\n inputDataConfig:\n entityTypes:\n - type: ENTITY_1\n - type: ENTITY_2\n documents:\n s3Uri: s3://${aws_s3_bucket.documents.bucket}/${documents.id}\n entityList:\n s3Uri: s3://${aws_s3_bucket.entities.bucket}/${entities.id}\n options:\n dependson:\n - ${aws_iam_role_policy.example}\n documents:\n type: aws:s3:BucketObjectv2\n entities:\n type: aws:s3:BucketObjectv2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nComprehend Entity Recognizer can be imported using the ARN, e.g.,\n\n```sh\n $ pulumi import aws:comprehend/entityRecognizer:EntityRecognizer example arn:aws:comprehend:us-west-2:123456789012:entity-recognizer/example\n```\n\n ",
"properties": {
@@ -412270,7 +415738,7 @@
}
},
"aws:connect/contactFlow:ContactFlow": {
- "description": "Provides an Amazon Connect Contact Flow resource. For more information see\n[Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html)\n\nThis resource embeds or references Contact Flows specified in Amazon Connect Contact Flow Language. For more information see\n[Amazon Connect Flow language](https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html)\n\n!\u003e **WARN:** Contact Flows exported from the Console [Contact Flow import/export](https://docs.aws.amazon.com/connect/latest/adminguide/contact-flow-import-export.html) are not in the Amazon Connect Contact Flow Language and can not be used with this resource. Instead, the recommendation is to use the AWS CLI [`describe-contact-flow`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/connect/describe-contact-flow.html).\nSee example below which uses `jq` to extract the `Content` attribute and saves it to a local file.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.connect.ContactFlow(\"test\", {\n content: `\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t`,\n description: \"Test Contact Flow Description\",\n instanceId: \"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n tags: {\n Application: \"Terraform\",\n Method: \"Create\",\n Name: \"Test Contact Flow\",\n },\n type: \"CONTACT_FLOW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.connect.ContactFlow(\"test\",\n content=\"\"\"\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n\"\"\",\n description=\"Test Contact Flow Description\",\n instance_id=\"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n tags={\n \"Application\": \"Terraform\",\n \"Method\": \"Create\",\n \"Name\": \"Test Contact Flow\",\n },\n type=\"CONTACT_FLOW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Connect.ContactFlow(\"test\", new()\n {\n Content = @\"\t{\n\t\t\"\"Version\"\": \"\"2019-10-30\"\",\n\t\t\"\"StartAction\"\": \"\"12345678-1234-1234-1234-123456789012\"\",\n\t\t\"\"Actions\"\": [\n\t\t\t{\n\t\t\t\t\"\"Identifier\"\": \"\"12345678-1234-1234-1234-123456789012\"\",\n\t\t\t\t\"\"Type\"\": \"\"MessageParticipant\"\",\n\t\t\t\t\"\"Transitions\"\": {\n\t\t\t\t\t\"\"NextAction\"\": \"\"abcdef-abcd-abcd-abcd-abcdefghijkl\"\",\n\t\t\t\t\t\"\"Errors\"\": [],\n\t\t\t\t\t\"\"Conditions\"\": []\n\t\t\t\t},\n\t\t\t\t\"\"Parameters\"\": {\n\t\t\t\t\t\"\"Text\"\": \"\"Thanks for calling the sample flow!\"\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"\"Identifier\"\": \"\"abcdef-abcd-abcd-abcd-abcdefghijkl\"\",\n\t\t\t\t\"\"Type\"\": \"\"DisconnectParticipant\"\",\n\t\t\t\t\"\"Transitions\"\": {},\n\t\t\t\t\"\"Parameters\"\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n\",\n Description = \"Test Contact Flow Description\",\n InstanceId = \"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n Tags = \n {\n { \"Application\", \"Terraform\" },\n { \"Method\", \"Create\" },\n { \"Name\", \"Test Contact Flow\" },\n },\n Type = \"CONTACT_FLOW\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/connect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := connect.NewContactFlow(ctx, \"test\", \u0026connect.ContactFlowArgs{\n\t\t\tContent: pulumi.String(fmt.Sprintf(`\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n`)),\n\t\t\tDescription: pulumi.String(\"Test Contact Flow Description\"),\n\t\t\tInstanceId: pulumi.String(\"aaaaaaaa-bbbb-cccc-dddd-111111111111\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Application\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"Method\": pulumi.String(\"Create\"),\n\t\t\t\t\"Name\": pulumi.String(\"Test Contact Flow\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CONTACT_FLOW\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.connect.ContactFlow;\nimport com.pulumi.aws.connect.ContactFlowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new ContactFlow(\"test\", ContactFlowArgs.builder() \n .content(\"\"\"\n\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n \"\"\")\n .description(\"Test Contact Flow Description\")\n .instanceId(\"aaaaaaaa-bbbb-cccc-dddd-111111111111\")\n .tags(Map.ofEntries(\n Map.entry(\"Application\", \"Terraform\"),\n Map.entry(\"Method\", \"Create\"),\n Map.entry(\"Name\", \"Test Contact Flow\")\n ))\n .type(\"CONTACT_FLOW\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:connect:ContactFlow\n properties:\n content: |\n \t{\n \t\t\"Version\": \"2019-10-30\",\n \t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n \t\t\"Actions\": [\n \t\t\t{\n \t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n \t\t\t\t\"Type\": \"MessageParticipant\",\n \t\t\t\t\"Transitions\": {\n \t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n \t\t\t\t\t\"Errors\": [],\n \t\t\t\t\t\"Conditions\": []\n \t\t\t\t},\n \t\t\t\t\"Parameters\": {\n \t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n \t\t\t\t}\n \t\t\t},\n \t\t\t{\n \t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n \t\t\t\t\"Type\": \"DisconnectParticipant\",\n \t\t\t\t\"Transitions\": {},\n \t\t\t\t\"Parameters\": {}\n \t\t\t}\n \t\t]\n \t}\n \t\n description: Test Contact Flow Description\n instanceId: aaaaaaaa-bbbb-cccc-dddd-111111111111\n tags:\n Application: Terraform\n Method: Create\n Name: Test Contact Flow\n type: CONTACT_FLOW\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAmazon Connect Contact Flows can be imported using the `instance_id` and `contact_flow_id` separated by a colon (`:`), e.g.,\n\n```sh\n $ pulumi import aws:connect/contactFlow:ContactFlow example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5\n```\n\n ",
+ "description": "Provides an Amazon Connect Contact Flow resource. For more information see\n[Amazon Connect: Getting Started](https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-get-started.html)\n\nThis resource embeds or references Contact Flows specified in Amazon Connect Contact Flow Language. For more information see\n[Amazon Connect Flow language](https://docs.aws.amazon.com/connect/latest/adminguide/flow-language.html)\n\n!\u003e **WARN:** Contact Flows exported from the Console [Contact Flow import/export](https://docs.aws.amazon.com/connect/latest/adminguide/contact-flow-import-export.html) are not in the Amazon Connect Contact Flow Language and can not be used with this resource. Instead, the recommendation is to use the AWS CLI [`describe-contact-flow`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/connect/describe-contact-flow.html).\nSee example below which uses `jq` to extract the `Content` attribute and saves it to a local file.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.connect.ContactFlow(\"test\", {\n content: `\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t`,\n description: \"Test Contact Flow Description\",\n instanceId: \"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n tags: {\n Application: \"Terraform\",\n Method: \"Create\",\n Name: \"Test Contact Flow\",\n },\n type: \"CONTACT_FLOW\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.connect.ContactFlow(\"test\",\n content=\"\"\"\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n\"\"\",\n description=\"Test Contact Flow Description\",\n instance_id=\"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n tags={\n \"Application\": \"Terraform\",\n \"Method\": \"Create\",\n \"Name\": \"Test Contact Flow\",\n },\n type=\"CONTACT_FLOW\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Connect.ContactFlow(\"test\", new()\n {\n Content = @\"\t{\n\t\t\"\"Version\"\": \"\"2019-10-30\"\",\n\t\t\"\"StartAction\"\": \"\"12345678-1234-1234-1234-123456789012\"\",\n\t\t\"\"Actions\"\": [\n\t\t\t{\n\t\t\t\t\"\"Identifier\"\": \"\"12345678-1234-1234-1234-123456789012\"\",\n\t\t\t\t\"\"Type\"\": \"\"MessageParticipant\"\",\n\t\t\t\t\"\"Transitions\"\": {\n\t\t\t\t\t\"\"NextAction\"\": \"\"abcdef-abcd-abcd-abcd-abcdefghijkl\"\",\n\t\t\t\t\t\"\"Errors\"\": [],\n\t\t\t\t\t\"\"Conditions\"\": []\n\t\t\t\t},\n\t\t\t\t\"\"Parameters\"\": {\n\t\t\t\t\t\"\"Text\"\": \"\"Thanks for calling the sample flow!\"\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"\"Identifier\"\": \"\"abcdef-abcd-abcd-abcd-abcdefghijkl\"\",\n\t\t\t\t\"\"Type\"\": \"\"DisconnectParticipant\"\",\n\t\t\t\t\"\"Transitions\"\": {},\n\t\t\t\t\"\"Parameters\"\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n\",\n Description = \"Test Contact Flow Description\",\n InstanceId = \"aaaaaaaa-bbbb-cccc-dddd-111111111111\",\n Tags = \n {\n { \"Application\", \"Terraform\" },\n { \"Method\", \"Create\" },\n { \"Name\", \"Test Contact Flow\" },\n },\n Type = \"CONTACT_FLOW\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/connect\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := connect.NewContactFlow(ctx, \"test\", \u0026connect.ContactFlowArgs{\n\t\t\tContent: pulumi.String(fmt.Sprintf(`\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n`)),\n\t\t\tDescription: pulumi.String(\"Test Contact Flow Description\"),\n\t\t\tInstanceId: pulumi.String(\"aaaaaaaa-bbbb-cccc-dddd-111111111111\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Application\": pulumi.String(\"Terraform\"),\n\t\t\t\t\"Method\": pulumi.String(\"Create\"),\n\t\t\t\t\"Name\": pulumi.String(\"Test Contact Flow\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CONTACT_FLOW\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.connect.ContactFlow;\nimport com.pulumi.aws.connect.ContactFlowArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new ContactFlow(\"test\", ContactFlowArgs.builder() \n .content(\"\"\"\n\t{\n\t\t\"Version\": \"2019-10-30\",\n\t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\"Actions\": [\n\t\t\t{\n\t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n\t\t\t\t\"Type\": \"MessageParticipant\",\n\t\t\t\t\"Transitions\": {\n\t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\t\"Errors\": [],\n\t\t\t\t\t\"Conditions\": []\n\t\t\t\t},\n\t\t\t\t\"Parameters\": {\n\t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n\t\t\t\t\"Type\": \"DisconnectParticipant\",\n\t\t\t\t\"Transitions\": {},\n\t\t\t\t\"Parameters\": {}\n\t\t\t}\n\t\t]\n\t}\n\t\n \"\"\")\n .description(\"Test Contact Flow Description\")\n .instanceId(\"aaaaaaaa-bbbb-cccc-dddd-111111111111\")\n .tags(Map.ofEntries(\n Map.entry(\"Application\", \"Terraform\"),\n Map.entry(\"Method\", \"Create\"),\n Map.entry(\"Name\", \"Test Contact Flow\")\n ))\n .type(\"CONTACT_FLOW\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:connect:ContactFlow\n properties:\n content: |\n \t{\n \t\t\"Version\": \"2019-10-30\",\n \t\t\"StartAction\": \"12345678-1234-1234-1234-123456789012\",\n \t\t\"Actions\": [\n \t\t\t{\n \t\t\t\t\"Identifier\": \"12345678-1234-1234-1234-123456789012\",\n \t\t\t\t\"Type\": \"MessageParticipant\",\n \t\t\t\t\"Transitions\": {\n \t\t\t\t\t\"NextAction\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n \t\t\t\t\t\"Errors\": [],\n \t\t\t\t\t\"Conditions\": []\n \t\t\t\t},\n \t\t\t\t\"Parameters\": {\n \t\t\t\t\t\"Text\": \"Thanks for calling the sample flow!\"\n \t\t\t\t}\n \t\t\t},\n \t\t\t{\n \t\t\t\t\"Identifier\": \"abcdef-abcd-abcd-abcd-abcdefghijkl\",\n \t\t\t\t\"Type\": \"DisconnectParticipant\",\n \t\t\t\t\"Transitions\": {},\n \t\t\t\t\"Parameters\": {}\n \t\t\t}\n \t\t]\n \t}\n \t\n description: Test Contact Flow Description\n instanceId: aaaaaaaa-bbbb-cccc-dddd-111111111111\n tags:\n Application: Terraform\n Method: Create\n Name: Test Contact Flow\n type: CONTACT_FLOW\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nAmazon Connect Contact Flows can be imported using the `instance_id` and `contact_flow_id` separated by a colon (`:`), e.g.,\n\n```sh\n $ pulumi import aws:connect/contactFlow:ContactFlow example f1288a1f-6193-445a-b47e-af739b2:c1d4e5f6-1b3c-1b3c-1b3c-c1d4e5f6c1d4e5\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -418601,6 +422069,10 @@
"type": "string"
},
"description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n"
+ },
+ "vlanId": {
+ "type": "string",
+ "description": "The VLAN ID.\n"
}
},
"required": [
@@ -418613,7 +422085,8 @@
"name",
"ownerAccountId",
"providerName",
- "tagsAll"
+ "tagsAll",
+ "vlanId"
],
"inputProperties": {
"bandwidth": {
@@ -418704,6 +422177,10 @@
"type": "string"
},
"description": "A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.\n"
+ },
+ "vlanId": {
+ "type": "string",
+ "description": "The VLAN ID.\n"
}
},
"type": "object"
@@ -426213,7 +429690,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 System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ebs.Volume(\"example\", new()\n {\n AvailabilityZone = \"us-west-2a\",\n Size = 40,\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := 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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ebs.Volume;\nimport com.pulumi.aws.ebs.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Volume(\"example\", VolumeArgs.builder() \n .availabilityZone(\"us-west-2a\")\n .size(40)\n .tags(Map.of(\"Name\", \"HelloWorld\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ebs:Volume\n properties:\n availabilityZone: us-west-2a\n size: 40\n tags:\n Name: HelloWorld\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 ",
+ "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 System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ebs.Volume(\"example\", new()\n {\n AvailabilityZone = \"us-west-2a\",\n Size = 40,\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ebs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := 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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ebs.Volume;\nimport com.pulumi.aws.ebs.VolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Volume(\"example\", VolumeArgs.builder() \n .availabilityZone(\"us-west-2a\")\n .size(40)\n .tags(Map.of(\"Name\", \"HelloWorld\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ebs:Volume\n properties:\n availabilityZone: us-west-2a\n size: 40\n tags:\n Name: HelloWorld\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",
@@ -429043,6 +432520,9 @@
"enableDnsSupport": {
"type": "boolean"
},
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean"
+ },
"existingDefaultVpc": {
"type": "boolean"
},
@@ -429124,6 +432604,9 @@
"enableDnsSupport": {
"type": "boolean"
},
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean"
+ },
"forceDestroy": {
"type": "boolean",
"description": "Whether destroying the resource deletes the default VPC. Default: `false`\n"
@@ -429186,6 +432669,9 @@
"enableDnsSupport": {
"type": "boolean"
},
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean"
+ },
"existingDefaultVpc": {
"type": "boolean"
},
@@ -433584,7 +437070,8 @@
"description": "Number of IPv6 addresses to assign to a network interface. You can't use this option if specifying specific `ipv6_addresses`. If your subnet has the AssignIpv6AddressOnCreation attribute set to `true`, you can specify `0` to override this setting.\n"
},
"ipv6AddressListEnabled": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.\n"
},
"ipv6AddressLists": {
"type": "array",
@@ -433736,7 +437223,8 @@
"description": "Number of IPv6 addresses to assign to a network interface. You can't use this option if specifying specific `ipv6_addresses`. If your subnet has the AssignIpv6AddressOnCreation attribute set to `true`, you can specify `0` to override this setting.\n"
},
"ipv6AddressListEnabled": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.\n"
},
"ipv6AddressLists": {
"type": "array",
@@ -433854,7 +437342,8 @@
"description": "Number of IPv6 addresses to assign to a network interface. You can't use this option if specifying specific `ipv6_addresses`. If your subnet has the AssignIpv6AddressOnCreation attribute set to `true`, you can specify `0` to override this setting.\n"
},
"ipv6AddressListEnabled": {
- "type": "boolean"
+ "type": "boolean",
+ "description": "Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.\n"
},
"ipv6AddressLists": {
"type": "array",
@@ -435029,7 +438518,7 @@
}
},
"aws:ec2/securityGroupRule:SecurityGroupRule": {
- "description": "Provides a security group rule resource. Represents a single `ingress` or\n`egress` group rule, which can be added to external Security Groups.\n\n\u003e **NOTE on Security Groups and Security Group Rules:** This provider currently\nprovides both a standalone Security Group Rule resource (a single `ingress` or\n`egress` rule), and a Security Group resource with `ingress` and `egress` rules\ndefined in-line. At this time you cannot use a Security Group with in-line rules\nin conjunction with any Security Group Rule resources. Doing so will cause\na conflict of rule settings and will overwrite rules.\n\n\u003e **NOTE:** Setting `protocol = \"all\"` or `protocol = -1` with `from_port` and `to_port` will result in the EC2 API creating a security group rule with all ports open. This API behavior cannot be controlled by this provider and may generate warnings in the future.\n\n\u003e **NOTE:** Referencing Security Groups across VPC peering has certain restrictions. More information is available in the [VPC Peering User Guide](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nBasic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.SecurityGroupRule(\"example\", {\n type: \"ingress\",\n fromPort: 0,\n toPort: 65535,\n protocol: \"tcp\",\n cidrBlocks: [aws_vpc.example.cidr_block],\n ipv6CidrBlocks: [aws_vpc.example.ipv6_cidr_block],\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.SecurityGroupRule(\"example\",\n type=\"ingress\",\n from_port=0,\n to_port=65535,\n protocol=\"tcp\",\n cidr_blocks=[aws_vpc[\"example\"][\"cidr_block\"]],\n ipv6_cidr_blocks=[aws_vpc[\"example\"][\"ipv6_cidr_block\"]],\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.SecurityGroupRule(\"example\", new()\n {\n Type = \"ingress\",\n FromPort = 0,\n ToPort = 65535,\n Protocol = \"tcp\",\n CidrBlocks = new[]\n {\n aws_vpc.Example.Cidr_block,\n },\n Ipv6CidrBlocks = new[]\n {\n aws_vpc.Example.Ipv6_cidr_block,\n },\n SecurityGroupId = \"sg-123456\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewSecurityGroupRule(ctx, \"example\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"ingress\"),\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tToPort: pulumi.Int(65535),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_vpc.Example.Cidr_block),\n\t\t\t},\n\t\t\tIpv6CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_vpc.Example.Ipv6_cidr_block),\n\t\t\t},\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new SecurityGroupRule(\"example\", SecurityGroupRuleArgs.builder() \n .type(\"ingress\")\n .fromPort(0)\n .toPort(65535)\n .protocol(\"tcp\")\n .cidrBlocks(aws_vpc.example().cidr_block())\n .ipv6CidrBlocks(aws_vpc.example().ipv6_cidr_block())\n .securityGroupId(\"sg-123456\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:SecurityGroupRule\n properties:\n type: ingress\n fromPort: 0\n toPort: 65535\n protocol: tcp\n cidrBlocks:\n - ${aws_vpc.example.cidr_block}\n ipv6CidrBlocks:\n - ${aws_vpc.example.ipv6_cidr_block}\n securityGroupId: sg-123456\n```\n{{% /example %}}\n{{% example %}}\n### Usage With Prefix List IDs\n\nPrefix Lists are either managed by AWS internally, or created by the customer using a\nManaged Prefix List resource. Prefix Lists provided by\nAWS are associated with a prefix list name, or service name, that is linked to a specific region.\n\nPrefix list IDs are exported on VPC Endpoints, so you can use this format:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ...\nconst myEndpoint = new aws.ec2.VpcEndpoint(\"myEndpoint\", {});\n// ...\nconst allowAll = new aws.ec2.SecurityGroupRule(\"allowAll\", {\n type: \"egress\",\n toPort: 0,\n protocol: \"-1\",\n prefixListIds: [myEndpoint.prefixListId],\n fromPort: 0,\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ...\nmy_endpoint = aws.ec2.VpcEndpoint(\"myEndpoint\")\n# ...\nallow_all = aws.ec2.SecurityGroupRule(\"allowAll\",\n type=\"egress\",\n to_port=0,\n protocol=\"-1\",\n prefix_list_ids=[my_endpoint.prefix_list_id],\n from_port=0,\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // ...\n var myEndpoint = new Aws.Ec2.VpcEndpoint(\"myEndpoint\");\n\n // ...\n var allowAll = new Aws.Ec2.SecurityGroupRule(\"allowAll\", new()\n {\n Type = \"egress\",\n ToPort = 0,\n Protocol = \"-1\",\n PrefixListIds = new[]\n {\n myEndpoint.PrefixListId,\n },\n FromPort = 0,\n SecurityGroupId = \"sg-123456\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyEndpoint, err := ec2.NewVpcEndpoint(ctx, \"myEndpoint\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"allowAll\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tToPort: pulumi.Int(0),\n\t\t\tProtocol: pulumi.String(\"-1\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tmyEndpoint.PrefixListId,\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myEndpoint = new VpcEndpoint(\"myEndpoint\");\n\n var allowAll = new SecurityGroupRule(\"allowAll\", SecurityGroupRuleArgs.builder() \n .type(\"egress\")\n .toPort(0)\n .protocol(\"-1\")\n .prefixListIds(myEndpoint.prefixListId())\n .fromPort(0)\n .securityGroupId(\"sg-123456\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n allowAll:\n type: aws:ec2:SecurityGroupRule\n properties:\n type: egress\n toPort: 0\n protocol: -1\n prefixListIds:\n - ${myEndpoint.prefixListId}\n fromPort: 0\n securityGroupId: sg-123456\n # ...\n myEndpoint:\n type: aws:ec2:VpcEndpoint\n```\n\nYou can also find a specific Prefix List using the [`aws.ec2.getPrefixList`](https://www.terraform.io/docs/providers/aws/d/prefix_list.html)\nor [`ec2_managed_prefix_list`](https://www.terraform.io/docs/providers/aws/d/ec2_managed_prefix_list.html) data sources:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getRegion({});\nconst s3 = current.then(current =\u003e aws.ec2.getPrefixList({\n name: `com.amazonaws.${current.name}.s3`,\n}));\nconst s3GatewayEgress = new aws.ec2.SecurityGroupRule(\"s3GatewayEgress\", {\n description: \"S3 Gateway Egress\",\n type: \"egress\",\n securityGroupId: \"sg-123456\",\n fromPort: 443,\n toPort: 443,\n protocol: \"tcp\",\n prefixListIds: [s3.then(s3 =\u003e s3.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ns3 = aws.ec2.get_prefix_list(name=f\"com.amazonaws.{current.name}.s3\")\ns3_gateway_egress = aws.ec2.SecurityGroupRule(\"s3GatewayEgress\",\n description=\"S3 Gateway Egress\",\n type=\"egress\",\n security_group_id=\"sg-123456\",\n from_port=443,\n to_port=443,\n protocol=\"tcp\",\n prefix_list_ids=[s3.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetRegion.Invoke();\n\n var s3 = Aws.Ec2.GetPrefixList.Invoke(new()\n {\n Name = $\"com.amazonaws.{current.Apply(getRegionResult =\u003e getRegionResult.Name)}.s3\",\n });\n\n var s3GatewayEgress = new Aws.Ec2.SecurityGroupRule(\"s3GatewayEgress\", new()\n {\n Description = \"S3 Gateway Egress\",\n Type = \"egress\",\n SecurityGroupId = \"sg-123456\",\n FromPort = 443,\n ToPort = 443,\n Protocol = \"tcp\",\n PrefixListIds = new[]\n {\n s3.Apply(getPrefixListResult =\u003e getPrefixListResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts3, err := ec2.GetPrefixList(ctx, \u0026ec2.GetPrefixListArgs{\n\t\t\tName: pulumi.StringRef(fmt.Sprintf(\"com.amazonaws.%v.s3\", current.Name)),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"s3GatewayEgress\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tDescription: pulumi.String(\"S3 Gateway Egress\"),\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t\tFromPort: pulumi.Int(443),\n\t\t\tToPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(s3.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetPrefixListArgs;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var s3 = Ec2Functions.getPrefixList(GetPrefixListArgs.builder()\n .name(String.format(\"com.amazonaws.%s.s3\", current.applyValue(getRegionResult -\u003e getRegionResult.name())))\n .build());\n\n var s3GatewayEgress = new SecurityGroupRule(\"s3GatewayEgress\", SecurityGroupRuleArgs.builder() \n .description(\"S3 Gateway Egress\")\n .type(\"egress\")\n .securityGroupId(\"sg-123456\")\n .fromPort(443)\n .toPort(443)\n .protocol(\"tcp\")\n .prefixListIds(s3.applyValue(getPrefixListResult -\u003e getPrefixListResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3GatewayEgress:\n type: aws:ec2:SecurityGroupRule\n properties:\n # S3 Gateway interfaces are implemented at the routing level which means we\n # # can avoid the metered billing of a VPC endpoint interface by allowing\n # # outbound traffic to the public IP ranges, which will be routed through\n # # the Gateway interface:\n # # https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html\n description: S3 Gateway Egress\n type: egress\n securityGroupId: sg-123456\n fromPort: 443\n toPort: 443\n protocol: tcp\n prefixListIds:\n - ${s3.id}\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getRegion\n Arguments: {}\n s3:\n Fn::Invoke:\n Function: aws:ec2:getPrefixList\n Arguments:\n name: com.amazonaws.${current.name}.s3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Group Rules can be imported using the `security_group_id`, `type`, `protocol`, `from_port`, `to_port`, and source(s)/destination(s) (e.g., `cidr_block`) separated by underscores (`_`). All parts are required. Not all rule permissions (e.g., not all of a rule's CIDR blocks) need to be imported for this provider to manage rule permissions. However, importing some of a rule's permissions but not others, and then making changes to the rule will result in the creation of an additional rule to capture the updated permissions. Rule permissions that were not imported are left intact in the original rule. Import an ingress rule in security group `sg-6e616f6d69` for TCP port 8000 with an IPv4 destination CIDR of `10.0.3.0/24`console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6e616f6d69_ingress_tcp_8000_8000_10.0.3.0/24\n```\n\n Import a rule with various IPv4 and IPv6 source CIDR blocksconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-4973616163_ingress_tcp_100_121_10.1.0.0/16_2001:db8::/48_10.2.0.0/16_2002:db8::/48\n```\n\n Import a rule, applicable to all ports, with a protocol other than TCP/UDP/ICMP/ICMPV6/ALL, e.g., Multicast Transport Protocol (MTP), using the IANA protocol number, e.g., 92. console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6777656e646f6c796e_ingress_92_0_65536_10.0.3.0/24_10.0.4.0/24\n```\n\n Import a default any/any egress rule to 0.0.0.0/0console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule default_egress sg-6777656e646f6c796e_egress_all_0_0_0.0.0.0/0\n```\n\n Import an egress rule with a prefix list ID destinationconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule egress sg-62726f6479_egress_tcp_8000_8000_pl-6469726b\n```\n\n Import a rule applicable to all protocols and ports with a security group sourceconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress_rule sg-7472697374616e_ingress_all_0_65536_sg-6176657279\n```\n\n Import a rule that has itself and an IPv6 CIDR block as sourcesconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule rule_name sg-656c65616e6f72_ingress_tcp_80_80_self_2001:db8::/48\n```\n\n ",
+ "description": "Provides a security group rule resource. Represents a single `ingress` or\n`egress` group rule, which can be added to external Security Groups.\n\n\u003e **NOTE on Security Groups and Security Group Rules:** This provider currently\nprovides both a standalone Security Group Rule resource (one or many `ingress` or\n`egress` rules), and a Security Group resource with `ingress` and `egress` rules\ndefined in-line. At this time you cannot use a Security Group with in-line rules\nin conjunction with any Security Group Rule resources. Doing so will cause\na conflict of rule settings and will overwrite rules.\n\n\u003e **NOTE:** Setting `protocol = \"all\"` or `protocol = -1` with `from_port` and `to_port` will result in the EC2 API creating a security group rule with all ports open. This API behavior cannot be controlled by this provider and may generate warnings in the future.\n\n\u003e **NOTE:** Referencing Security Groups across VPC peering has certain restrictions. More information is available in the [VPC Peering User Guide](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nBasic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.SecurityGroupRule(\"example\", {\n type: \"ingress\",\n fromPort: 0,\n toPort: 65535,\n protocol: \"tcp\",\n cidrBlocks: [aws_vpc.example.cidr_block],\n ipv6CidrBlocks: [aws_vpc.example.ipv6_cidr_block],\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.SecurityGroupRule(\"example\",\n type=\"ingress\",\n from_port=0,\n to_port=65535,\n protocol=\"tcp\",\n cidr_blocks=[aws_vpc[\"example\"][\"cidr_block\"]],\n ipv6_cidr_blocks=[aws_vpc[\"example\"][\"ipv6_cidr_block\"]],\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ec2.SecurityGroupRule(\"example\", new()\n {\n Type = \"ingress\",\n FromPort = 0,\n ToPort = 65535,\n Protocol = \"tcp\",\n CidrBlocks = new[]\n {\n aws_vpc.Example.Cidr_block,\n },\n Ipv6CidrBlocks = new[]\n {\n aws_vpc.Example.Ipv6_cidr_block,\n },\n SecurityGroupId = \"sg-123456\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewSecurityGroupRule(ctx, \"example\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"ingress\"),\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tToPort: pulumi.Int(65535),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tCidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_vpc.Example.Cidr_block),\n\t\t\t},\n\t\t\tIpv6CidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_vpc.Example.Ipv6_cidr_block),\n\t\t\t},\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new SecurityGroupRule(\"example\", SecurityGroupRuleArgs.builder() \n .type(\"ingress\")\n .fromPort(0)\n .toPort(65535)\n .protocol(\"tcp\")\n .cidrBlocks(aws_vpc.example().cidr_block())\n .ipv6CidrBlocks(aws_vpc.example().ipv6_cidr_block())\n .securityGroupId(\"sg-123456\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ec2:SecurityGroupRule\n properties:\n type: ingress\n fromPort: 0\n toPort: 65535\n protocol: tcp\n cidrBlocks:\n - ${aws_vpc.example.cidr_block}\n ipv6CidrBlocks:\n - ${aws_vpc.example.ipv6_cidr_block}\n securityGroupId: sg-123456\n```\n{{% /example %}}\n{{% example %}}\n### Usage With Prefix List IDs\n\nPrefix Lists are either managed by AWS internally, or created by the customer using a\nManaged Prefix List resource. Prefix Lists provided by\nAWS are associated with a prefix list name, or service name, that is linked to a specific region.\n\nPrefix list IDs are exported on VPC Endpoints, so you can use this format:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ...\nconst myEndpoint = new aws.ec2.VpcEndpoint(\"myEndpoint\", {});\n// ...\nconst allowAll = new aws.ec2.SecurityGroupRule(\"allowAll\", {\n type: \"egress\",\n toPort: 0,\n protocol: \"-1\",\n prefixListIds: [myEndpoint.prefixListId],\n fromPort: 0,\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ...\nmy_endpoint = aws.ec2.VpcEndpoint(\"myEndpoint\")\n# ...\nallow_all = aws.ec2.SecurityGroupRule(\"allowAll\",\n type=\"egress\",\n to_port=0,\n protocol=\"-1\",\n prefix_list_ids=[my_endpoint.prefix_list_id],\n from_port=0,\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // ...\n var myEndpoint = new Aws.Ec2.VpcEndpoint(\"myEndpoint\");\n\n // ...\n var allowAll = new Aws.Ec2.SecurityGroupRule(\"allowAll\", new()\n {\n Type = \"egress\",\n ToPort = 0,\n Protocol = \"-1\",\n PrefixListIds = new[]\n {\n myEndpoint.PrefixListId,\n },\n FromPort = 0,\n SecurityGroupId = \"sg-123456\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyEndpoint, err := ec2.NewVpcEndpoint(ctx, \"myEndpoint\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"allowAll\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tToPort: pulumi.Int(0),\n\t\t\tProtocol: pulumi.String(\"-1\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tmyEndpoint.PrefixListId,\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcEndpoint;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var myEndpoint = new VpcEndpoint(\"myEndpoint\");\n\n var allowAll = new SecurityGroupRule(\"allowAll\", SecurityGroupRuleArgs.builder() \n .type(\"egress\")\n .toPort(0)\n .protocol(\"-1\")\n .prefixListIds(myEndpoint.prefixListId())\n .fromPort(0)\n .securityGroupId(\"sg-123456\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n allowAll:\n type: aws:ec2:SecurityGroupRule\n properties:\n type: egress\n toPort: 0\n protocol: -1\n prefixListIds:\n - ${myEndpoint.prefixListId}\n fromPort: 0\n securityGroupId: sg-123456\n # ...\n myEndpoint:\n type: aws:ec2:VpcEndpoint\n```\n\nYou can also find a specific Prefix List using the [`aws.ec2.getPrefixList`](https://www.terraform.io/docs/providers/aws/d/prefix_list.html)\nor [`ec2_managed_prefix_list`](https://www.terraform.io/docs/providers/aws/d/ec2_managed_prefix_list.html) data sources:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getRegion({});\nconst s3 = current.then(current =\u003e aws.ec2.getPrefixList({\n name: `com.amazonaws.${current.name}.s3`,\n}));\nconst s3GatewayEgress = new aws.ec2.SecurityGroupRule(\"s3GatewayEgress\", {\n description: \"S3 Gateway Egress\",\n type: \"egress\",\n securityGroupId: \"sg-123456\",\n fromPort: 443,\n toPort: 443,\n protocol: \"tcp\",\n prefixListIds: [s3.then(s3 =\u003e s3.id)],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\ns3 = aws.ec2.get_prefix_list(name=f\"com.amazonaws.{current.name}.s3\")\ns3_gateway_egress = aws.ec2.SecurityGroupRule(\"s3GatewayEgress\",\n description=\"S3 Gateway Egress\",\n type=\"egress\",\n security_group_id=\"sg-123456\",\n from_port=443,\n to_port=443,\n protocol=\"tcp\",\n prefix_list_ids=[s3.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetRegion.Invoke();\n\n var s3 = Aws.Ec2.GetPrefixList.Invoke(new()\n {\n Name = $\"com.amazonaws.{current.Apply(getRegionResult =\u003e getRegionResult.Name)}.s3\",\n });\n\n var s3GatewayEgress = new Aws.Ec2.SecurityGroupRule(\"s3GatewayEgress\", new()\n {\n Description = \"S3 Gateway Egress\",\n Type = \"egress\",\n SecurityGroupId = \"sg-123456\",\n FromPort = 443,\n ToPort = 443,\n Protocol = \"tcp\",\n PrefixListIds = new[]\n {\n s3.Apply(getPrefixListResult =\u003e getPrefixListResult.Id),\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ts3, err := ec2.GetPrefixList(ctx, \u0026ec2.GetPrefixListArgs{\n\t\t\tName: pulumi.StringRef(fmt.Sprintf(\"com.amazonaws.%v.s3\", current.Name)),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"s3GatewayEgress\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tDescription: pulumi.String(\"S3 Gateway Egress\"),\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t\tFromPort: pulumi.Int(443),\n\t\t\tToPort: pulumi.Int(443),\n\t\t\tProtocol: pulumi.String(\"tcp\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(s3.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetPrefixListArgs;\nimport com.pulumi.aws.ec2.SecurityGroupRule;\nimport com.pulumi.aws.ec2.SecurityGroupRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var s3 = Ec2Functions.getPrefixList(GetPrefixListArgs.builder()\n .name(String.format(\"com.amazonaws.%s.s3\", current.applyValue(getRegionResult -\u003e getRegionResult.name())))\n .build());\n\n var s3GatewayEgress = new SecurityGroupRule(\"s3GatewayEgress\", SecurityGroupRuleArgs.builder() \n .description(\"S3 Gateway Egress\")\n .type(\"egress\")\n .securityGroupId(\"sg-123456\")\n .fromPort(443)\n .toPort(443)\n .protocol(\"tcp\")\n .prefixListIds(s3.applyValue(getPrefixListResult -\u003e getPrefixListResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n s3GatewayEgress:\n type: aws:ec2:SecurityGroupRule\n properties:\n # S3 Gateway interfaces are implemented at the routing level which means we\n # # can avoid the metered billing of a VPC endpoint interface by allowing\n # # outbound traffic to the public IP ranges, which will be routed through\n # # the Gateway interface:\n # # https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html\n description: S3 Gateway Egress\n type: egress\n securityGroupId: sg-123456\n fromPort: 443\n toPort: 443\n protocol: tcp\n prefixListIds:\n - ${s3.id}\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getRegion\n Arguments: {}\n s3:\n Fn::Invoke:\n Function: aws:ec2:getPrefixList\n Arguments:\n name: com.amazonaws.${current.name}.s3\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSecurity Group Rules can be imported using the `security_group_id`, `type`, `protocol`, `from_port`, `to_port`, and source(s)/destination(s) (e.g., `cidr_block`) separated by underscores (`_`). All parts are required. Not all rule permissions (e.g., not all of a rule's CIDR blocks) need to be imported for this provider to manage rule permissions. However, importing some of a rule's permissions but not others, and then making changes to the rule will result in the creation of an additional rule to capture the updated permissions. Rule permissions that were not imported are left intact in the original rule. Import an ingress rule in security group `sg-6e616f6d69` for TCP port 8000 with an IPv4 destination CIDR of `10.0.3.0/24`console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6e616f6d69_ingress_tcp_8000_8000_10.0.3.0/24\n```\n\n Import a rule with various IPv4 and IPv6 source CIDR blocksconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-4973616163_ingress_tcp_100_121_10.1.0.0/16_2001:db8::/48_10.2.0.0/16_2002:db8::/48\n```\n\n Import a rule, applicable to all ports, with a protocol other than TCP/UDP/ICMP/ICMPV6/ALL, e.g., Multicast Transport Protocol (MTP), using the IANA protocol number, e.g., 92. console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6777656e646f6c796e_ingress_92_0_65536_10.0.3.0/24_10.0.4.0/24\n```\n\n Import a default any/any egress rule to 0.0.0.0/0console\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule default_egress sg-6777656e646f6c796e_egress_all_0_0_0.0.0.0/0\n```\n\n Import an egress rule with a prefix list ID destinationconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule egress sg-62726f6479_egress_tcp_8000_8000_pl-6469726b\n```\n\n Import a rule applicable to all protocols and ports with a security group sourceconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress_rule sg-7472697374616e_ingress_all_0_65536_sg-6176657279\n```\n\n Import a rule that has itself and an IPv6 CIDR block as sourcesconsole\n\n```sh\n $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule rule_name sg-656c65616e6f72_ingress_tcp_80_80_self_2001:db8::/48\n```\n\n ",
"properties": {
"cidrBlocks": {
"type": "array",
@@ -435796,7 +439285,7 @@
}
},
"aws:ec2/spotInstanceRequest:SpotInstanceRequest": {
- "description": "Provides an EC2 Spot Instance Request resource. This allows instances to be\nrequested on the spot market.\n\nBy default this provider creates Spot Instance Requests with a `persistent` type,\nwhich means that for the duration of their lifetime, AWS will launch an\ninstance with the configured details if and when the spot market will accept\nthe requested price.\n\nOn destruction, this provider will make an attempt to terminate the associated Spot\nInstance if there is one present.\n\nSpot Instances requests with a `one-time` type will close the spot request\nwhen the instance is terminated either by the request being below the current spot\nprice availability or by a user.\n\n\u003e **NOTE:** Because their behavior depends on the live status of the spot\nmarket, Spot Instance Requests have a unique lifecycle that makes them behave\ndifferently than other resources. Most importantly: there is __no\nguarantee__ that a Spot Instance exists to fulfill the request at any given\npoint in time. See the [AWS Spot Instance\ndocumentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)\nfor more information.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Request a spot instance at $0.03\nconst cheapWorker = new aws.ec2.SpotInstanceRequest(\"cheap_worker\", {\n ami: \"ami-1234\",\n instanceType: \"c4.xlarge\",\n spotPrice: \"0.03\",\n tags: {\n Name: \"CheapWorker\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Request a spot instance at $0.03\ncheap_worker = aws.ec2.SpotInstanceRequest(\"cheapWorker\",\n ami=\"ami-1234\",\n instance_type=\"c4.xlarge\",\n spot_price=\"0.03\",\n tags={\n \"Name\": \"CheapWorker\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Request a spot instance at $0.03\n var cheapWorker = new Aws.Ec2.SpotInstanceRequest(\"cheapWorker\", new()\n {\n Ami = \"ami-1234\",\n InstanceType = \"c4.xlarge\",\n SpotPrice = \"0.03\",\n Tags = \n {\n { \"Name\", \"CheapWorker\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewSpotInstanceRequest(ctx, \"cheapWorker\", \u0026ec2.SpotInstanceRequestArgs{\n\t\t\tAmi: pulumi.String(\"ami-1234\"),\n\t\t\tInstanceType: pulumi.String(\"c4.xlarge\"),\n\t\t\tSpotPrice: pulumi.String(\"0.03\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"CheapWorker\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.SpotInstanceRequest;\nimport com.pulumi.aws.ec2.SpotInstanceRequestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cheapWorker = new SpotInstanceRequest(\"cheapWorker\", SpotInstanceRequestArgs.builder() \n .ami(\"ami-1234\")\n .instanceType(\"c4.xlarge\")\n .spotPrice(\"0.03\")\n .tags(Map.of(\"Name\", \"CheapWorker\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Request a spot instance at $0.03\n cheapWorker:\n type: aws:ec2:SpotInstanceRequest\n properties:\n ami: ami-1234\n instanceType: c4.xlarge\n spotPrice: 0.03\n tags:\n Name: CheapWorker\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Provides an EC2 Spot Instance Request resource. This allows instances to be\nrequested on the spot market.\n\nBy default this provider creates Spot Instance Requests with a `persistent` type,\nwhich means that for the duration of their lifetime, AWS will launch an\ninstance with the configured details if and when the spot market will accept\nthe requested price.\n\nOn destruction, this provider will make an attempt to terminate the associated Spot\nInstance if there is one present.\n\nSpot Instances requests with a `one-time` type will close the spot request\nwhen the instance is terminated either by the request being below the current spot\nprice availability or by a user.\n\n\u003e **NOTE:** Because their behavior depends on the live status of the spot\nmarket, Spot Instance Requests have a unique lifecycle that makes them behave\ndifferently than other resources. Most importantly: there is __no\nguarantee__ that a Spot Instance exists to fulfill the request at any given\npoint in time. See the [AWS Spot Instance\ndocumentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html)\nfor more information.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// Request a spot instance at $0.03\nconst cheapWorker = new aws.ec2.SpotInstanceRequest(\"cheap_worker\", {\n ami: \"ami-1234\",\n instanceType: \"c4.xlarge\",\n spotPrice: \"0.03\",\n tags: {\n Name: \"CheapWorker\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# Request a spot instance at $0.03\ncheap_worker = aws.ec2.SpotInstanceRequest(\"cheapWorker\",\n ami=\"ami-1234\",\n instance_type=\"c4.xlarge\",\n spot_price=\"0.03\",\n tags={\n \"Name\": \"CheapWorker\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n // Request a spot instance at $0.03\n var cheapWorker = new Aws.Ec2.SpotInstanceRequest(\"cheapWorker\", new()\n {\n Ami = \"ami-1234\",\n InstanceType = \"c4.xlarge\",\n SpotPrice = \"0.03\",\n Tags = \n {\n { \"Name\", \"CheapWorker\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewSpotInstanceRequest(ctx, \"cheapWorker\", \u0026ec2.SpotInstanceRequestArgs{\n\t\t\tAmi: pulumi.String(\"ami-1234\"),\n\t\t\tInstanceType: pulumi.String(\"c4.xlarge\"),\n\t\t\tSpotPrice: pulumi.String(\"0.03\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"CheapWorker\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.SpotInstanceRequest;\nimport com.pulumi.aws.ec2.SpotInstanceRequestArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var cheapWorker = new SpotInstanceRequest(\"cheapWorker\", SpotInstanceRequestArgs.builder() \n .ami(\"ami-1234\")\n .instanceType(\"c4.xlarge\")\n .spotPrice(\"0.03\")\n .tags(Map.of(\"Name\", \"CheapWorker\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Request a spot instance at $0.03\n cheapWorker:\n type: aws:ec2:SpotInstanceRequest\n properties:\n ami: ami-1234\n instanceType: c4.xlarge\n spotPrice: 0.03\n tags:\n Name: CheapWorker\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"ami": {
"type": "string",
@@ -437984,7 +441473,11 @@
},
"enableDnsSupport": {
"type": "boolean",
- "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults true.\n"
+ "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults to true.\n"
+ },
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean",
+ "description": "Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.\n"
},
"instanceTenancy": {
"type": "string",
@@ -438051,6 +441544,7 @@
"enableClassiclink",
"enableClassiclinkDnsSupport",
"enableDnsHostnames",
+ "enableNetworkAddressUsageMetrics",
"ipv6AssociationId",
"ipv6CidrBlock",
"ipv6CidrBlockNetworkBorderGroup",
@@ -438084,7 +441578,11 @@
},
"enableDnsSupport": {
"type": "boolean",
- "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults true.\n"
+ "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults to true.\n"
+ },
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean",
+ "description": "Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.\n"
},
"instanceTenancy": {
"type": "string",
@@ -438171,7 +441669,11 @@
},
"enableDnsSupport": {
"type": "boolean",
- "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults true.\n"
+ "description": "A boolean flag to enable/disable DNS support in the VPC. Defaults to true.\n"
+ },
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean",
+ "description": "Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.\n"
},
"instanceTenancy": {
"type": "string",
@@ -440366,7 +443868,7 @@
}
},
"aws:ec2/vpcPeeringConnection:VpcPeeringConnection": {
- "description": "Provides a resource to manage a VPC peering connection.\n\n\u003e **NOTE on VPC Peering Connections and VPC Peering Connection Options:** This provider provides\nboth a standalone VPC Peering Connection Options and a VPC Peering Connection\nresource with `accepter` and `requester` attributes. Do not manage options for the same VPC peering\nconnection in both a VPC Peering Connection resource and a VPC Peering Connection Options resource.\nDoing so will cause a conflict of options and will overwrite the options.\nUsing a VPC Peering Connection Options resource decouples management of the connection options from\nmanagement of the VPC Peering Connection and allows options to be set correctly in cross-account scenarios.\n\n\u003e **Note:** For cross-account (requester's AWS account differs from the accepter's AWS account) or inter-region\nVPC Peering Connections use the `aws.ec2.VpcPeeringConnection` resource to manage the requester's side of the\nconnection and use the `aws.ec2.VpcPeeringConnectionAccepter` resource to manage the accepter's side of the connection.\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 foo = new aws.ec2.VpcPeeringConnection(\"foo\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: aws_vpc.bar.id,\n vpcId: aws_vpc.foo.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ec2.VpcPeeringConnection(\"foo\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=aws_vpc[\"bar\"][\"id\"],\n vpc_id=aws_vpc[\"foo\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ec2.VpcPeeringConnection(\"foo\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = aws_vpc.Bar.Id,\n VpcId = aws_vpc.Foo.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewVpcPeeringConnection(ctx, \"foo\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: pulumi.Any(aws_vpc.Bar.Id),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Foo.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new VpcPeeringConnection(\"foo\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(aws_vpc.bar().id())\n .vpcId(aws_vpc.foo().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${aws_vpc.bar.id}\n vpcId: ${aws_vpc.foo.id}\n```\n\nBasic usage with connection options:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foo = new aws.ec2.VpcPeeringConnection(\"foo\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: aws_vpc.bar.id,\n vpcId: aws_vpc.foo.id,\n accepter: {\n allowRemoteVpcDnsResolution: true,\n },\n requester: {\n allowRemoteVpcDnsResolution: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ec2.VpcPeeringConnection(\"foo\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=aws_vpc[\"bar\"][\"id\"],\n vpc_id=aws_vpc[\"foo\"][\"id\"],\n accepter=aws.ec2.VpcPeeringConnectionAccepterArgs(\n allow_remote_vpc_dns_resolution=True,\n ),\n requester=aws.ec2.VpcPeeringConnectionRequesterArgs(\n allow_remote_vpc_dns_resolution=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ec2.VpcPeeringConnection(\"foo\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = aws_vpc.Bar.Id,\n VpcId = aws_vpc.Foo.Id,\n Accepter = new Aws.Ec2.Inputs.VpcPeeringConnectionAccepterArgs\n {\n AllowRemoteVpcDnsResolution = true,\n },\n Requester = new Aws.Ec2.Inputs.VpcPeeringConnectionRequesterArgs\n {\n AllowRemoteVpcDnsResolution = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewVpcPeeringConnection(ctx, \"foo\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: pulumi.Any(aws_vpc.Bar.Id),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Foo.Id),\n\t\t\tAccepter: \u0026ec2.VpcPeeringConnectionAccepterTypeArgs{\n\t\t\t\tAllowRemoteVpcDnsResolution: pulumi.Bool(true),\n\t\t\t},\n\t\t\tRequester: \u0026ec2.VpcPeeringConnectionRequesterArgs{\n\t\t\t\tAllowRemoteVpcDnsResolution: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport com.pulumi.aws.ec2.inputs.VpcPeeringConnectionAccepterArgs;\nimport com.pulumi.aws.ec2.inputs.VpcPeeringConnectionRequesterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new VpcPeeringConnection(\"foo\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(aws_vpc.bar().id())\n .vpcId(aws_vpc.foo().id())\n .accepter(VpcPeeringConnectionAccepterArgs.builder()\n .allowRemoteVpcDnsResolution(true)\n .build())\n .requester(VpcPeeringConnectionRequesterArgs.builder()\n .allowRemoteVpcDnsResolution(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${aws_vpc.bar.id}\n vpcId: ${aws_vpc.foo.id}\n accepter:\n allowRemoteVpcDnsResolution: true\n requester:\n allowRemoteVpcDnsResolution: true\n```\n\nBasic usage with tags:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooVpc = new aws.ec2.Vpc(\"fooVpc\", {cidrBlock: \"10.1.0.0/16\"});\nconst bar = new aws.ec2.Vpc(\"bar\", {cidrBlock: \"10.2.0.0/16\"});\nconst fooVpcPeeringConnection = new aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: bar.id,\n vpcId: fooVpc.id,\n autoAccept: true,\n tags: {\n Name: \"VPC Peering between foo and bar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_vpc = aws.ec2.Vpc(\"fooVpc\", cidr_block=\"10.1.0.0/16\")\nbar = aws.ec2.Vpc(\"bar\", cidr_block=\"10.2.0.0/16\")\nfoo_vpc_peering_connection = aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=bar.id,\n vpc_id=foo_vpc.id,\n auto_accept=True,\n tags={\n \"Name\": \"VPC Peering between foo and bar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fooVpc = new Aws.Ec2.Vpc(\"fooVpc\", new()\n {\n CidrBlock = \"10.1.0.0/16\",\n });\n\n var bar = new Aws.Ec2.Vpc(\"bar\", new()\n {\n CidrBlock = \"10.2.0.0/16\",\n });\n\n var fooVpcPeeringConnection = new Aws.Ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = bar.Id,\n VpcId = fooVpc.Id,\n AutoAccept = true,\n Tags = \n {\n { \"Name\", \"VPC Peering between foo and bar\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpc, err := ec2.NewVpc(ctx, \"fooVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.1.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := ec2.NewVpc(ctx, \"bar\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.2.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnection(ctx, \"fooVpcPeeringConnection\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: bar.ID(),\n\t\t\tVpcId: fooVpc.ID(),\n\t\t\tAutoAccept: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"VPC Peering between foo and bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fooVpc = new Vpc(\"fooVpc\", VpcArgs.builder() \n .cidrBlock(\"10.1.0.0/16\")\n .build());\n\n var bar = new Vpc(\"bar\", VpcArgs.builder() \n .cidrBlock(\"10.2.0.0/16\")\n .build());\n\n var fooVpcPeeringConnection = new VpcPeeringConnection(\"fooVpcPeeringConnection\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(bar.id())\n .vpcId(fooVpc.id())\n .autoAccept(true)\n .tags(Map.of(\"Name\", \"VPC Peering between foo and bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooVpcPeeringConnection:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${bar.id}\n vpcId: ${fooVpc.id}\n autoAccept: true\n tags:\n Name: VPC Peering between foo and bar\n fooVpc:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.1.0.0/16\n bar:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.2.0.0/16\n```\n\nBasic usage with region:\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooVpc = new aws.ec2.Vpc(\"fooVpc\", {cidrBlock: \"10.1.0.0/16\"}, {\n provider: aws[\"us-west-2\"],\n});\nconst bar = new aws.ec2.Vpc(\"bar\", {cidrBlock: \"10.2.0.0/16\"}, {\n provider: aws[\"us-east-1\"],\n});\nconst fooVpcPeeringConnection = new aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: bar.id,\n vpcId: fooVpc.id,\n peerRegion: \"us-east-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_vpc = aws.ec2.Vpc(\"fooVpc\", cidr_block=\"10.1.0.0/16\",\nopts=pulumi.ResourceOptions(provider=aws[\"us-west-2\"]))\nbar = aws.ec2.Vpc(\"bar\", cidr_block=\"10.2.0.0/16\",\nopts=pulumi.ResourceOptions(provider=aws[\"us-east-1\"]))\nfoo_vpc_peering_connection = aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=bar.id,\n vpc_id=foo_vpc.id,\n peer_region=\"us-east-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fooVpc = new Aws.Ec2.Vpc(\"fooVpc\", new()\n {\n CidrBlock = \"10.1.0.0/16\",\n }, new CustomResourceOptions\n {\n Provider = aws.Us_west_2,\n });\n\n var bar = new Aws.Ec2.Vpc(\"bar\", new()\n {\n CidrBlock = \"10.2.0.0/16\",\n }, new CustomResourceOptions\n {\n Provider = aws.Us_east_1,\n });\n\n var fooVpcPeeringConnection = new Aws.Ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = bar.Id,\n VpcId = fooVpc.Id,\n PeerRegion = \"us-east-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpc, err := ec2.NewVpc(ctx, \"fooVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.1.0.0/16\"),\n\t\t}, pulumi.Provider(aws.Us-west-2))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := ec2.NewVpc(ctx, \"bar\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.2.0.0/16\"),\n\t\t}, pulumi.Provider(aws.Us-east-1))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnection(ctx, \"fooVpcPeeringConnection\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: bar.ID(),\n\t\t\tVpcId: fooVpc.ID(),\n\t\t\tPeerRegion: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fooVpc = new Vpc(\"fooVpc\", VpcArgs.builder() \n .cidrBlock(\"10.1.0.0/16\")\n .build(), CustomResourceOptions.builder()\n .provider(aws.us-west-2())\n .build());\n\n var bar = new Vpc(\"bar\", VpcArgs.builder() \n .cidrBlock(\"10.2.0.0/16\")\n .build(), CustomResourceOptions.builder()\n .provider(aws.us-east-1())\n .build());\n\n var fooVpcPeeringConnection = new VpcPeeringConnection(\"fooVpcPeeringConnection\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(bar.id())\n .vpcId(fooVpc.id())\n .peerRegion(\"us-east-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooVpcPeeringConnection:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${bar.id}\n vpcId: ${fooVpc.id}\n peerRegion: us-east-1\n fooVpc:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.1.0.0/16\n options:\n provider: ${aws\"us-west-2\"[%!s(MISSING)]}\n bar:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.2.0.0/16\n options:\n provider: ${aws\"us-east-1\"[%!s(MISSING)]}\n```\n{{% /example %}}\n{{% /examples %}}\n## Notes\n\nIf both VPCs are not in the same AWS account and region do not enable the `auto_accept` attribute.\nThe accepter can manage its side of the connection using the `aws.ec2.VpcPeeringConnectionAccepter` resource\nor accept the connection manually using the AWS Management Console, AWS CLI, through SDKs, etc.\n\n\n## Import\n\nVPC Peering resources can be imported using the `vpc peering id`, e.g.,\n\n```sh\n $ pulumi import aws:ec2/vpcPeeringConnection:VpcPeeringConnection test_connection pcx-111aaa111\n```\n\n [1]/docs/providers/aws/index.html ",
+ "description": "Provides a resource to manage a VPC peering connection.\n\n\u003e **NOTE on VPC Peering Connections and VPC Peering Connection Options:** This provider provides\nboth a standalone VPC Peering Connection Options and a VPC Peering Connection\nresource with `accepter` and `requester` attributes. Do not manage options for the same VPC peering\nconnection in both a VPC Peering Connection resource and a VPC Peering Connection Options resource.\nDoing so will cause a conflict of options and will overwrite the options.\nUsing a VPC Peering Connection Options resource decouples management of the connection options from\nmanagement of the VPC Peering Connection and allows options to be set correctly in cross-account scenarios.\n\n\u003e **Note:** For cross-account (requester's AWS account differs from the accepter's AWS account) or inter-region\nVPC Peering Connections use the `aws.ec2.VpcPeeringConnection` resource to manage the requester's side of the\nconnection and use the `aws.ec2.VpcPeeringConnectionAccepter` resource to manage the accepter's side of the connection.\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 foo = new aws.ec2.VpcPeeringConnection(\"foo\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: aws_vpc.bar.id,\n vpcId: aws_vpc.foo.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ec2.VpcPeeringConnection(\"foo\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=aws_vpc[\"bar\"][\"id\"],\n vpc_id=aws_vpc[\"foo\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ec2.VpcPeeringConnection(\"foo\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = aws_vpc.Bar.Id,\n VpcId = aws_vpc.Foo.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewVpcPeeringConnection(ctx, \"foo\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: pulumi.Any(aws_vpc.Bar.Id),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Foo.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new VpcPeeringConnection(\"foo\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(aws_vpc.bar().id())\n .vpcId(aws_vpc.foo().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${aws_vpc.bar.id}\n vpcId: ${aws_vpc.foo.id}\n```\n\nBasic usage with connection options:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst foo = new aws.ec2.VpcPeeringConnection(\"foo\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: aws_vpc.bar.id,\n vpcId: aws_vpc.foo.id,\n accepter: {\n allowRemoteVpcDnsResolution: true,\n },\n requester: {\n allowRemoteVpcDnsResolution: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.ec2.VpcPeeringConnection(\"foo\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=aws_vpc[\"bar\"][\"id\"],\n vpc_id=aws_vpc[\"foo\"][\"id\"],\n accepter=aws.ec2.VpcPeeringConnectionAccepterArgs(\n allow_remote_vpc_dns_resolution=True,\n ),\n requester=aws.ec2.VpcPeeringConnectionRequesterArgs(\n allow_remote_vpc_dns_resolution=True,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Aws.Ec2.VpcPeeringConnection(\"foo\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = aws_vpc.Bar.Id,\n VpcId = aws_vpc.Foo.Id,\n Accepter = new Aws.Ec2.Inputs.VpcPeeringConnectionAccepterArgs\n {\n AllowRemoteVpcDnsResolution = true,\n },\n Requester = new Aws.Ec2.Inputs.VpcPeeringConnectionRequesterArgs\n {\n AllowRemoteVpcDnsResolution = true,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.NewVpcPeeringConnection(ctx, \"foo\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: pulumi.Any(aws_vpc.Bar.Id),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Foo.Id),\n\t\t\tAccepter: \u0026ec2.VpcPeeringConnectionAccepterTypeArgs{\n\t\t\t\tAllowRemoteVpcDnsResolution: pulumi.Bool(true),\n\t\t\t},\n\t\t\tRequester: \u0026ec2.VpcPeeringConnectionRequesterArgs{\n\t\t\t\tAllowRemoteVpcDnsResolution: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport com.pulumi.aws.ec2.inputs.VpcPeeringConnectionAccepterArgs;\nimport com.pulumi.aws.ec2.inputs.VpcPeeringConnectionRequesterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var foo = new VpcPeeringConnection(\"foo\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(aws_vpc.bar().id())\n .vpcId(aws_vpc.foo().id())\n .accepter(VpcPeeringConnectionAccepterArgs.builder()\n .allowRemoteVpcDnsResolution(true)\n .build())\n .requester(VpcPeeringConnectionRequesterArgs.builder()\n .allowRemoteVpcDnsResolution(true)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${aws_vpc.bar.id}\n vpcId: ${aws_vpc.foo.id}\n accepter:\n allowRemoteVpcDnsResolution: true\n requester:\n allowRemoteVpcDnsResolution: true\n```\n\nBasic usage with tags:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooVpc = new aws.ec2.Vpc(\"fooVpc\", {cidrBlock: \"10.1.0.0/16\"});\nconst bar = new aws.ec2.Vpc(\"bar\", {cidrBlock: \"10.2.0.0/16\"});\nconst fooVpcPeeringConnection = new aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: bar.id,\n vpcId: fooVpc.id,\n autoAccept: true,\n tags: {\n Name: \"VPC Peering between foo and bar\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_vpc = aws.ec2.Vpc(\"fooVpc\", cidr_block=\"10.1.0.0/16\")\nbar = aws.ec2.Vpc(\"bar\", cidr_block=\"10.2.0.0/16\")\nfoo_vpc_peering_connection = aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=bar.id,\n vpc_id=foo_vpc.id,\n auto_accept=True,\n tags={\n \"Name\": \"VPC Peering between foo and bar\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fooVpc = new Aws.Ec2.Vpc(\"fooVpc\", new()\n {\n CidrBlock = \"10.1.0.0/16\",\n });\n\n var bar = new Aws.Ec2.Vpc(\"bar\", new()\n {\n CidrBlock = \"10.2.0.0/16\",\n });\n\n var fooVpcPeeringConnection = new Aws.Ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = bar.Id,\n VpcId = fooVpc.Id,\n AutoAccept = true,\n Tags = \n {\n { \"Name\", \"VPC Peering between foo and bar\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpc, err := ec2.NewVpc(ctx, \"fooVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.1.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := ec2.NewVpc(ctx, \"bar\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.2.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnection(ctx, \"fooVpcPeeringConnection\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: bar.ID(),\n\t\t\tVpcId: fooVpc.ID(),\n\t\t\tAutoAccept: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"VPC Peering between foo and bar\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fooVpc = new Vpc(\"fooVpc\", VpcArgs.builder() \n .cidrBlock(\"10.1.0.0/16\")\n .build());\n\n var bar = new Vpc(\"bar\", VpcArgs.builder() \n .cidrBlock(\"10.2.0.0/16\")\n .build());\n\n var fooVpcPeeringConnection = new VpcPeeringConnection(\"fooVpcPeeringConnection\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(bar.id())\n .vpcId(fooVpc.id())\n .autoAccept(true)\n .tags(Map.of(\"Name\", \"VPC Peering between foo and bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooVpcPeeringConnection:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${bar.id}\n vpcId: ${fooVpc.id}\n autoAccept: true\n tags:\n Name: VPC Peering between foo and bar\n fooVpc:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.1.0.0/16\n bar:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.2.0.0/16\n```\n\nBasic usage with region:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst fooVpc = new aws.ec2.Vpc(\"fooVpc\", {cidrBlock: \"10.1.0.0/16\"}, {\n provider: aws[\"us-west-2\"],\n});\nconst bar = new aws.ec2.Vpc(\"bar\", {cidrBlock: \"10.2.0.0/16\"}, {\n provider: aws[\"us-east-1\"],\n});\nconst fooVpcPeeringConnection = new aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", {\n peerOwnerId: _var.peer_owner_id,\n peerVpcId: bar.id,\n vpcId: fooVpc.id,\n peerRegion: \"us-east-1\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo_vpc = aws.ec2.Vpc(\"fooVpc\", cidr_block=\"10.1.0.0/16\",\nopts=pulumi.ResourceOptions(provider=aws[\"us-west-2\"]))\nbar = aws.ec2.Vpc(\"bar\", cidr_block=\"10.2.0.0/16\",\nopts=pulumi.ResourceOptions(provider=aws[\"us-east-1\"]))\nfoo_vpc_peering_connection = aws.ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\",\n peer_owner_id=var[\"peer_owner_id\"],\n peer_vpc_id=bar.id,\n vpc_id=foo_vpc.id,\n peer_region=\"us-east-1\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fooVpc = new Aws.Ec2.Vpc(\"fooVpc\", new()\n {\n CidrBlock = \"10.1.0.0/16\",\n }, new CustomResourceOptions\n {\n Provider = aws.Us_west_2,\n });\n\n var bar = new Aws.Ec2.Vpc(\"bar\", new()\n {\n CidrBlock = \"10.2.0.0/16\",\n }, new CustomResourceOptions\n {\n Provider = aws.Us_east_1,\n });\n\n var fooVpcPeeringConnection = new Aws.Ec2.VpcPeeringConnection(\"fooVpcPeeringConnection\", new()\n {\n PeerOwnerId = @var.Peer_owner_id,\n PeerVpcId = bar.Id,\n VpcId = fooVpc.Id,\n PeerRegion = \"us-east-1\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tfooVpc, err := ec2.NewVpc(ctx, \"fooVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.1.0.0/16\"),\n\t\t}, pulumi.Provider(aws.Us-west-2))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbar, err := ec2.NewVpc(ctx, \"bar\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.2.0.0/16\"),\n\t\t}, pulumi.Provider(aws.Us-east-1))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewVpcPeeringConnection(ctx, \"fooVpcPeeringConnection\", \u0026ec2.VpcPeeringConnectionArgs{\n\t\t\tPeerOwnerId: pulumi.Any(_var.Peer_owner_id),\n\t\t\tPeerVpcId: bar.ID(),\n\t\t\tVpcId: fooVpc.ID(),\n\t\t\tPeerRegion: pulumi.String(\"us-east-1\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Vpc;\nimport com.pulumi.aws.ec2.VpcArgs;\nimport com.pulumi.aws.ec2.VpcPeeringConnection;\nimport com.pulumi.aws.ec2.VpcPeeringConnectionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fooVpc = new Vpc(\"fooVpc\", VpcArgs.builder() \n .cidrBlock(\"10.1.0.0/16\")\n .build(), CustomResourceOptions.builder()\n .provider(aws.us-west-2())\n .build());\n\n var bar = new Vpc(\"bar\", VpcArgs.builder() \n .cidrBlock(\"10.2.0.0/16\")\n .build(), CustomResourceOptions.builder()\n .provider(aws.us-east-1())\n .build());\n\n var fooVpcPeeringConnection = new VpcPeeringConnection(\"fooVpcPeeringConnection\", VpcPeeringConnectionArgs.builder() \n .peerOwnerId(var_.peer_owner_id())\n .peerVpcId(bar.id())\n .vpcId(fooVpc.id())\n .peerRegion(\"us-east-1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooVpcPeeringConnection:\n type: aws:ec2:VpcPeeringConnection\n properties:\n peerOwnerId: ${var.peer_owner_id}\n peerVpcId: ${bar.id}\n vpcId: ${fooVpc.id}\n peerRegion: us-east-1\n fooVpc:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.1.0.0/16\n options:\n provider: ${aws\"us-west-2\"[%!s(MISSING)]}\n bar:\n type: aws:ec2:Vpc\n properties:\n cidrBlock: 10.2.0.0/16\n options:\n provider: ${aws\"us-east-1\"[%!s(MISSING)]}\n```\n{{% /example %}}\n{{% /examples %}}\n## Notes\n\nIf both VPCs are not in the same AWS account and region do not enable the `auto_accept` attribute.\nThe accepter can manage its side of the connection using the `aws.ec2.VpcPeeringConnectionAccepter` resource\nor accept the connection manually using the AWS Management Console, AWS CLI, through SDKs, etc.\n\n\n## Import\n\nVPC Peering resources can be imported using the `vpc peering id`, e.g.,\n\n```sh\n $ pulumi import aws:ec2/vpcPeeringConnection:VpcPeeringConnection test_connection pcx-111aaa111\n```\n\n [1]/docs/providers/aws/index.html ",
"properties": {
"acceptStatus": {
"type": "string",
@@ -442430,7 +445932,7 @@
},
"description": {
"type": "string",
- "description": "A brief description of the authorization rule.\n"
+ "description": "A brief description of the route.\n"
},
"destinationCidrBlock": {
"type": "string",
@@ -442464,7 +445966,7 @@
},
"description": {
"type": "string",
- "description": "A brief description of the authorization rule.\n",
+ "description": "A brief description of the route.\n",
"willReplaceOnChanges": true
},
"destinationCidrBlock": {
@@ -442493,7 +445995,7 @@
},
"description": {
"type": "string",
- "description": "A brief description of the authorization rule.\n",
+ "description": "A brief description of the route.\n",
"willReplaceOnChanges": true
},
"destinationCidrBlock": {
@@ -442639,7 +446141,7 @@
}
},
"aws:ec2transitgateway/connectPeer:ConnectPeer": {
- "description": "Manages an EC2 Transit Gateway Connect Peer.\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 exampleConnect = new aws.ec2transitgateway.Connect(\"exampleConnect\", {\n transportAttachmentId: aws_ec2_transit_gateway_vpc_attachment.example.id,\n transitGatewayId: aws_ec2_transit_gateway.example.id,\n});\nconst exampleConnectPeer = new aws.ec2transitgateway.ConnectPeer(\"exampleConnectPeer\", {\n peerAddress: \"10.1.2.3\",\n insideCidrBlocks: \"169.254.100.0/29\",\n transitGatewayAttachmentId: exampleConnect.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_connect = aws.ec2transitgateway.Connect(\"exampleConnect\",\n transport_attachment_id=aws_ec2_transit_gateway_vpc_attachment[\"example\"][\"id\"],\n transit_gateway_id=aws_ec2_transit_gateway[\"example\"][\"id\"])\nexample_connect_peer = aws.ec2transitgateway.ConnectPeer(\"exampleConnectPeer\",\n peer_address=\"10.1.2.3\",\n inside_cidr_blocks=\"169.254.100.0/29\",\n transit_gateway_attachment_id=example_connect.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleConnect = new Aws.Ec2TransitGateway.Connect(\"exampleConnect\", new()\n {\n TransportAttachmentId = aws_ec2_transit_gateway_vpc_attachment.Example.Id,\n TransitGatewayId = aws_ec2_transit_gateway.Example.Id,\n });\n\n var exampleConnectPeer = new Aws.Ec2TransitGateway.ConnectPeer(\"exampleConnectPeer\", new()\n {\n PeerAddress = \"10.1.2.3\",\n InsideCidrBlocks = \"169.254.100.0/29\",\n TransitGatewayAttachmentId = exampleConnect.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2transitgateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleConnect, err := ec2transitgateway.NewConnect(ctx, \"exampleConnect\", \u0026ec2transitgateway.ConnectArgs{\n\t\t\tTransportAttachmentId: pulumi.Any(aws_ec2_transit_gateway_vpc_attachment.Example.Id),\n\t\t\tTransitGatewayId: pulumi.Any(aws_ec2_transit_gateway.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2transitgateway.NewConnectPeer(ctx, \"exampleConnectPeer\", \u0026ec2transitgateway.ConnectPeerArgs{\n\t\t\tPeerAddress: pulumi.String(\"10.1.2.3\"),\n\t\t\tInsideCidrBlocks: pulumi.StringArray(\"169.254.100.0/29\"),\n\t\t\tTransitGatewayAttachmentId: exampleConnect.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2transitgateway.Connect;\nimport com.pulumi.aws.ec2transitgateway.ConnectArgs;\nimport com.pulumi.aws.ec2transitgateway.ConnectPeer;\nimport com.pulumi.aws.ec2transitgateway.ConnectPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleConnect = new Connect(\"exampleConnect\", ConnectArgs.builder() \n .transportAttachmentId(aws_ec2_transit_gateway_vpc_attachment.example().id())\n .transitGatewayId(aws_ec2_transit_gateway.example().id())\n .build());\n\n var exampleConnectPeer = new ConnectPeer(\"exampleConnectPeer\", ConnectPeerArgs.builder() \n .peerAddress(\"10.1.2.3\")\n .insideCidrBlocks(\"169.254.100.0/29\")\n .transitGatewayAttachmentId(exampleConnect.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleConnect:\n type: aws:ec2transitgateway:Connect\n properties:\n transportAttachmentId: ${aws_ec2_transit_gateway_vpc_attachment.example.id}\n transitGatewayId: ${aws_ec2_transit_gateway.example.id}\n exampleConnectPeer:\n type: aws:ec2transitgateway:ConnectPeer\n properties:\n peerAddress: 10.1.2.3\n insideCidrBlocks: 169.254.100.0/29\n transitGatewayAttachmentId: ${exampleConnect.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_ec2_transit_gateway_connect_peer` can be imported by using the EC2 Transit Gateway Connect Peer identifier, e.g.,\n\n```sh\n $ pulumi import aws:ec2transitgateway/connectPeer:ConnectPeer example tgw-connect-peer-12345678\n```\n\n ",
+ "description": "Manages an EC2 Transit Gateway Connect Peer.\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 exampleConnect = new aws.ec2transitgateway.Connect(\"exampleConnect\", {\n transportAttachmentId: aws_ec2_transit_gateway_vpc_attachment.example.id,\n transitGatewayId: aws_ec2_transit_gateway.example.id,\n});\nconst exampleConnectPeer = new aws.ec2transitgateway.ConnectPeer(\"exampleConnectPeer\", {\n peerAddress: \"10.1.2.3\",\n insideCidrBlocks: [\"169.254.100.0/29\"],\n transitGatewayAttachmentId: exampleConnect.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_connect = aws.ec2transitgateway.Connect(\"exampleConnect\",\n transport_attachment_id=aws_ec2_transit_gateway_vpc_attachment[\"example\"][\"id\"],\n transit_gateway_id=aws_ec2_transit_gateway[\"example\"][\"id\"])\nexample_connect_peer = aws.ec2transitgateway.ConnectPeer(\"exampleConnectPeer\",\n peer_address=\"10.1.2.3\",\n inside_cidr_blocks=[\"169.254.100.0/29\"],\n transit_gateway_attachment_id=example_connect.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleConnect = new Aws.Ec2TransitGateway.Connect(\"exampleConnect\", new()\n {\n TransportAttachmentId = aws_ec2_transit_gateway_vpc_attachment.Example.Id,\n TransitGatewayId = aws_ec2_transit_gateway.Example.Id,\n });\n\n var exampleConnectPeer = new Aws.Ec2TransitGateway.ConnectPeer(\"exampleConnectPeer\", new()\n {\n PeerAddress = \"10.1.2.3\",\n InsideCidrBlocks = new[]\n {\n \"169.254.100.0/29\",\n },\n TransitGatewayAttachmentId = exampleConnect.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2transitgateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleConnect, err := ec2transitgateway.NewConnect(ctx, \"exampleConnect\", \u0026ec2transitgateway.ConnectArgs{\n\t\t\tTransportAttachmentId: pulumi.Any(aws_ec2_transit_gateway_vpc_attachment.Example.Id),\n\t\t\tTransitGatewayId: pulumi.Any(aws_ec2_transit_gateway.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2transitgateway.NewConnectPeer(ctx, \"exampleConnectPeer\", \u0026ec2transitgateway.ConnectPeerArgs{\n\t\t\tPeerAddress: pulumi.String(\"10.1.2.3\"),\n\t\t\tInsideCidrBlocks: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"169.254.100.0/29\"),\n\t\t\t},\n\t\t\tTransitGatewayAttachmentId: exampleConnect.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2transitgateway.Connect;\nimport com.pulumi.aws.ec2transitgateway.ConnectArgs;\nimport com.pulumi.aws.ec2transitgateway.ConnectPeer;\nimport com.pulumi.aws.ec2transitgateway.ConnectPeerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleConnect = new Connect(\"exampleConnect\", ConnectArgs.builder() \n .transportAttachmentId(aws_ec2_transit_gateway_vpc_attachment.example().id())\n .transitGatewayId(aws_ec2_transit_gateway.example().id())\n .build());\n\n var exampleConnectPeer = new ConnectPeer(\"exampleConnectPeer\", ConnectPeerArgs.builder() \n .peerAddress(\"10.1.2.3\")\n .insideCidrBlocks(\"169.254.100.0/29\")\n .transitGatewayAttachmentId(exampleConnect.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleConnect:\n type: aws:ec2transitgateway:Connect\n properties:\n transportAttachmentId: ${aws_ec2_transit_gateway_vpc_attachment.example.id}\n transitGatewayId: ${aws_ec2_transit_gateway.example.id}\n exampleConnectPeer:\n type: aws:ec2transitgateway:ConnectPeer\n properties:\n peerAddress: 10.1.2.3\n insideCidrBlocks:\n - 169.254.100.0/29\n transitGatewayAttachmentId: ${exampleConnect.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_ec2_transit_gateway_connect_peer` can be imported by using the EC2 Transit Gateway Connect Peer identifier, e.g.,\n\n```sh\n $ pulumi import aws:ec2transitgateway/connectPeer:ConnectPeer example tgw-connect-peer-12345678\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -448827,9 +452329,13 @@
"type": "boolean",
"description": "A flag that indicate whether AuthToken (password) is enabled.\n"
},
+ "automaticFailoverEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.\nWhen creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.\n"
+ },
"cacheNodeType": {
"type": "string",
- "description": "The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).\n"
+ "description": "The instance class used.\nSee AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)\nand [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).\nWhen creating, by default the Global Replication Group inherits the node type of the primary replication group.\n"
},
"clusterEnabled": {
"type": "boolean",
@@ -448876,6 +452382,7 @@
"arn",
"atRestEncryptionEnabled",
"authTokenEnabled",
+ "automaticFailoverEnabled",
"cacheNodeType",
"clusterEnabled",
"engine",
@@ -448887,6 +452394,14 @@
"transitEncryptionEnabled"
],
"inputProperties": {
+ "automaticFailoverEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.\nWhen creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.\n"
+ },
+ "cacheNodeType": {
+ "type": "string",
+ "description": "The instance class used.\nSee AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)\nand [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).\nWhen creating, by default the Global Replication Group inherits the node type of the primary replication group.\n"
+ },
"engineVersion": {
"type": "string",
"description": "Redis version to use for the Global Replication Group.\nWhen creating, by default the Global Replication Group inherits the version of the primary replication group.\nIf a version is specified, the Global Replication Group and all member replication groups will be upgraded to this version.\nCannot be downgraded without replacing the Global Replication Group and all member replication groups.\nIf the version is 6 or higher, the major and minor version can be set, e.g., `6.2`,\nor the minor version can be unspecified which will use the latest version at creation time, e.g., `6.x`.\nThe actual engine version used is returned in the attribute `engine_version_actual`, see Attributes Reference below.\n"
@@ -448929,9 +452444,13 @@
"type": "boolean",
"description": "A flag that indicate whether AuthToken (password) is enabled.\n"
},
+ "automaticFailoverEnabled": {
+ "type": "boolean",
+ "description": "Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.\nWhen creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.\n"
+ },
"cacheNodeType": {
"type": "string",
- "description": "The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).\n"
+ "description": "The instance class used.\nSee AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)\nand [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).\nWhen creating, by default the Global Replication Group inherits the node type of the primary replication group.\n"
},
"clusterEnabled": {
"type": "boolean",
@@ -448980,7 +452499,7 @@
}
},
"aws:elasticache/parameterGroup:ParameterGroup": {
- "description": "Provides an ElastiCache parameter group resource.\n\n\u003e **NOTE:** Attempting to remove the `reserved-memory` parameter when `family` is set to `redis2.6` or `redis2.8` may show a perpetual difference in this provider due to an Elasticache API limitation. Leave that parameter configured with any value to workaround the issue.\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 defaultParameterGroup = new aws.elasticache.ParameterGroup(\"default\", {\n family: \"redis2.8\",\n parameters: [\n {\n name: \"activerehashing\",\n value: \"yes\",\n },\n {\n name: \"min-slaves-to-write\",\n value: \"2\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.elasticache.ParameterGroup(\"default\",\n family=\"redis2.8\",\n parameters=[\n aws.elasticache.ParameterGroupParameterArgs(\n name=\"activerehashing\",\n value=\"yes\",\n ),\n aws.elasticache.ParameterGroupParameterArgs(\n name=\"min-slaves-to-write\",\n value=\"2\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.ElastiCache.ParameterGroup(\"default\", new()\n {\n Family = \"redis2.8\",\n Parameters = new[]\n {\n new Aws.ElastiCache.Inputs.ParameterGroupParameterArgs\n {\n Name = \"activerehashing\",\n Value = \"yes\",\n },\n new Aws.ElastiCache.Inputs.ParameterGroupParameterArgs\n {\n Name = \"min-slaves-to-write\",\n Value = \"2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.NewParameterGroup(ctx, \"default\", \u0026elasticache.ParameterGroupArgs{\n\t\t\tFamily: pulumi.String(\"redis2.8\"),\n\t\t\tParameters: elasticache.ParameterGroupParameterArray{\n\t\t\t\t\u0026elasticache.ParameterGroupParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"activerehashing\"),\n\t\t\t\t\tValue: pulumi.String(\"yes\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ParameterGroupParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"min-slaves-to-write\"),\n\t\t\t\t\tValue: pulumi.String(\"2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ParameterGroup;\nimport com.pulumi.aws.elasticache.ParameterGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ParameterGroupParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new ParameterGroup(\"default\", ParameterGroupArgs.builder() \n .family(\"redis2.8\")\n .parameters( \n ParameterGroupParameterArgs.builder()\n .name(\"activerehashing\")\n .value(\"yes\")\n .build(),\n ParameterGroupParameterArgs.builder()\n .name(\"min-slaves-to-write\")\n .value(\"2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:elasticache:ParameterGroup\n properties:\n family: redis2.8\n parameters:\n - name: activerehashing\n value: yes\n - name: min-slaves-to-write\n value: 2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nElastiCache Parameter Groups can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:elasticache/parameterGroup:ParameterGroup default redis-params\n```\n\n ",
+ "description": "Provides an ElastiCache parameter group resource.\n\n\u003e **NOTE:** Attempting to remove the `reserved-memory` parameter when `family` is set to `redis2.6` or `redis2.8` may show a perpetual difference in this provider due to an ElastiCache API limitation. Leave that parameter configured with any value to workaround the issue.\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 defaultParameterGroup = new aws.elasticache.ParameterGroup(\"default\", {\n family: \"redis2.8\",\n parameters: [\n {\n name: \"activerehashing\",\n value: \"yes\",\n },\n {\n name: \"min-slaves-to-write\",\n value: \"2\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.elasticache.ParameterGroup(\"default\",\n family=\"redis2.8\",\n parameters=[\n aws.elasticache.ParameterGroupParameterArgs(\n name=\"activerehashing\",\n value=\"yes\",\n ),\n aws.elasticache.ParameterGroupParameterArgs(\n name=\"min-slaves-to-write\",\n value=\"2\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.ElastiCache.ParameterGroup(\"default\", new()\n {\n Family = \"redis2.8\",\n Parameters = new[]\n {\n new Aws.ElastiCache.Inputs.ParameterGroupParameterArgs\n {\n Name = \"activerehashing\",\n Value = \"yes\",\n },\n new Aws.ElastiCache.Inputs.ParameterGroupParameterArgs\n {\n Name = \"min-slaves-to-write\",\n Value = \"2\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.NewParameterGroup(ctx, \"default\", \u0026elasticache.ParameterGroupArgs{\n\t\t\tFamily: pulumi.String(\"redis2.8\"),\n\t\t\tParameters: elasticache.ParameterGroupParameterArray{\n\t\t\t\t\u0026elasticache.ParameterGroupParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"activerehashing\"),\n\t\t\t\t\tValue: pulumi.String(\"yes\"),\n\t\t\t\t},\n\t\t\t\t\u0026elasticache.ParameterGroupParameterArgs{\n\t\t\t\t\tName: pulumi.String(\"min-slaves-to-write\"),\n\t\t\t\t\tValue: pulumi.String(\"2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ParameterGroup;\nimport com.pulumi.aws.elasticache.ParameterGroupArgs;\nimport com.pulumi.aws.elasticache.inputs.ParameterGroupParameterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new ParameterGroup(\"default\", ParameterGroupArgs.builder() \n .family(\"redis2.8\")\n .parameters( \n ParameterGroupParameterArgs.builder()\n .name(\"activerehashing\")\n .value(\"yes\")\n .build(),\n ParameterGroupParameterArgs.builder()\n .name(\"min-slaves-to-write\")\n .value(\"2\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:elasticache:ParameterGroup\n properties:\n family: redis2.8\n parameters:\n - name: activerehashing\n value: yes\n - name: min-slaves-to-write\n value: 2\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nElastiCache Parameter Groups can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:elasticache/parameterGroup:ParameterGroup default redis-params\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -449878,7 +453397,7 @@
},
"name": {
"type": "string",
- "description": "Name for the cache subnet group. Elasticache converts this name to lowercase.\n"
+ "description": "Name for the cache subnet group. ElastiCache converts this name to lowercase.\n"
},
"subnetIds": {
"type": "array",
@@ -449917,7 +453436,7 @@
},
"name": {
"type": "string",
- "description": "Name for the cache subnet group. Elasticache converts this name to lowercase.\n",
+ "description": "Name for the cache subnet group. ElastiCache converts this name to lowercase.\n",
"willReplaceOnChanges": true
},
"subnetIds": {
@@ -449951,7 +453470,7 @@
},
"name": {
"type": "string",
- "description": "Name for the cache subnet group. Elasticache converts this name to lowercase.\n",
+ "description": "Name for the cache subnet group. ElastiCache converts this name to lowercase.\n",
"willReplaceOnChanges": true
},
"subnetIds": {
@@ -451185,7 +454704,7 @@
"deprecationMessage": "aws.elasticloadbalancing.Attachment has been deprecated in favor of aws.elb.Attachment"
},
"aws:elasticloadbalancing/listenerPolicy:ListenerPolicy": {
- "description": "Attaches a load balancer policy to an ELB Listener.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Custom Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [\n {\n name: \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value: \"true\",\n },\n {\n name: \"Protocol-TLSv1.2\",\n value: \"true\",\n },\n ],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value=\"true\",\n ),\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Protocol-TLSv1.2\",\n value=\"true\",\n ),\n ])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n Value = \"true\",\n },\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Protocol-TLSv1.2\",\n Value = \"true\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"ECDHE-ECDSA-AES128-GCM-SHA256\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Protocol-TLSv1.2\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl = new LoadBalancerPolicy(\"wu-tang-ssl\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes( \n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"ECDHE-ECDSA-AES128-GCM-SHA256\")\n .value(\"true\")\n .build(),\n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Protocol-TLSv1.2\")\n .value(\"true\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: ECDHE-ECDSA-AES128-GCM-SHA256\n value: true\n - name: Protocol-TLSv1.2\n value: true\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl\"].policyName}\n```\n\nThis example shows how to customize the TLS settings of an HTTPS listener.\n{{% /example %}}\n{{% example %}}\n### AWS Predefined Security Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl_tls_1_1 = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [{\n name: \"Reference-Security-Policy\",\n value: \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n }],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl_tls_1_1.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl_tls_1_1 = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Reference-Security-Policy\",\n value=\"ELBSecurityPolicy-TLS-1-1-2017-01\",\n )])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl_tls_1_1.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl_tls_1_1 = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Reference-Security-Policy\",\n Value = \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl_tls_1_1.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl-tls-1-1\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Reference-Security-Policy\"),\n\t\t\t\t\tValue: pulumi.String(\"ELBSecurityPolicy-TLS-1-1-2017-01\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl_tls_1_1.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl_tls_1_1 = new LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Reference-Security-Policy\")\n .value(\"ELBSecurityPolicy-TLS-1-1-2017-01\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl_tls_1_1.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl-tls-1-1:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: Reference-Security-Policy\n value: ELBSecurityPolicy-TLS-1-1-2017-01\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl-tls-1-1\"].policyName}\n```\n\nThis example shows how to add a [Predefined Security Policy for ELBs](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html)\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Attaches a load balancer policy to an ELB Listener.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Custom Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [\n {\n name: \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value: \"true\",\n },\n {\n name: \"Protocol-TLSv1.2\",\n value: \"true\",\n },\n ],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value=\"true\",\n ),\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Protocol-TLSv1.2\",\n value=\"true\",\n ),\n ])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n Value = \"true\",\n },\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Protocol-TLSv1.2\",\n Value = \"true\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"ECDHE-ECDSA-AES128-GCM-SHA256\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Protocol-TLSv1.2\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl = new LoadBalancerPolicy(\"wu-tang-ssl\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes( \n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"ECDHE-ECDSA-AES128-GCM-SHA256\")\n .value(\"true\")\n .build(),\n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Protocol-TLSv1.2\")\n .value(\"true\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: ECDHE-ECDSA-AES128-GCM-SHA256\n value: true\n - name: Protocol-TLSv1.2\n value: true\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl\"].policyName}\n```\n\nThis example shows how to customize the TLS settings of an HTTPS listener.\n{{% /example %}}\n{{% example %}}\n### AWS Predefined Security Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl_tls_1_1 = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [{\n name: \"Reference-Security-Policy\",\n value: \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n }],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl_tls_1_1.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl_tls_1_1 = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Reference-Security-Policy\",\n value=\"ELBSecurityPolicy-TLS-1-1-2017-01\",\n )])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl_tls_1_1.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl_tls_1_1 = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Reference-Security-Policy\",\n Value = \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl_tls_1_1.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl-tls-1-1\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Reference-Security-Policy\"),\n\t\t\t\t\tValue: pulumi.String(\"ELBSecurityPolicy-TLS-1-1-2017-01\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl_tls_1_1.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl_tls_1_1 = new LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Reference-Security-Policy\")\n .value(\"ELBSecurityPolicy-TLS-1-1-2017-01\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl_tls_1_1.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl-tls-1-1:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: Reference-Security-Policy\n value: ELBSecurityPolicy-TLS-1-1-2017-01\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl-tls-1-1\"].policyName}\n```\n\nThis example shows how to add a [Predefined Security Policy for ELBs](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html)\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"loadBalancerName": {
"type": "string",
@@ -451595,7 +455114,7 @@
"deprecationMessage": "aws.elasticloadbalancing.LoadBalancer has been deprecated in favor of aws.elb.LoadBalancer"
},
"aws:elasticloadbalancing/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy": {
- "description": "Attaches a load balancer policy to an ELB backend server.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as fs from \"fs\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ca_pubkey_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ca-pubkey-policy\",\n policyTypeName: \"PublicKeyPolicyType\",\n policyAttributes: [{\n name: \"PublicKey\",\n value: fs.readFileSync(\"wu-tang-pubkey\"),\n }],\n});\nconst wu_tang_root_ca_backend_auth_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-root-ca-backend-auth-policy\",\n policyTypeName: \"BackendServerAuthenticationPolicyType\",\n policyAttributes: [{\n name: \"PublicKeyPolicyName\",\n value: aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"].policy_name,\n }],\n});\nconst wu_tang_backend_auth_policies_443 = new aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", {\n loadBalancerName: wu_tang.name,\n instancePort: 443,\n policyNames: [wu_tang_root_ca_backend_auth_policy.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ca_pubkey_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ca-pubkey-policy\",\n policy_type_name=\"PublicKeyPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKey\",\n value=(lambda path: open(path).read())(\"wu-tang-pubkey\"),\n )])\nwu_tang_root_ca_backend_auth_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-root-ca-backend-auth-policy\",\n policy_type_name=\"BackendServerAuthenticationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKeyPolicyName\",\n value=aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"][\"policy_name\"],\n )])\nwu_tang_backend_auth_policies_443 = aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\",\n load_balancer_name=wu_tang.name,\n instance_port=443,\n policy_names=[wu_tang_root_ca_backend_auth_policy.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ca_pubkey_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ca-pubkey-policy\",\n PolicyTypeName = \"PublicKeyPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKey\",\n Value = File.ReadAllText(\"wu-tang-pubkey\"),\n },\n },\n });\n\n var wu_tang_root_ca_backend_auth_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-root-ca-backend-auth-policy\",\n PolicyTypeName = \"BackendServerAuthenticationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKeyPolicyName\",\n Value = aws_load_balancer_policy.Wu_tang_root_ca_pubkey_policy.Policy_name,\n },\n },\n });\n\n var wu_tang_backend_auth_policies_443 = new Aws.Elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n InstancePort = 443,\n PolicyNames = new[]\n {\n wu_tang_root_ca_backend_auth_policy.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ca-pubkey-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ca-pubkey-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"PublicKeyPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKey\"),\n\t\t\t\t\tValue: readFileOrPanic(\"wu-tang-pubkey\"),\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\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-root-ca-backend-auth-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-root-ca-backend-auth-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"BackendServerAuthenticationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKeyPolicyName\"),\n\t\t\t\t\tValue: pulumi.Any(aws_load_balancer_policy.Wu - tang - root - ca - pubkey - policy.Policy_name),\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\t_, err = elb.NewLoadBalancerBackendServerPolicy(ctx, \"wu-tang-backend-auth-policies-443\", \u0026elb.LoadBalancerBackendServerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tInstancePort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_root_ca_backend_auth_policy.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ca_pubkey_policy = new LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ca-pubkey-policy\")\n .policyTypeName(\"PublicKeyPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKey\")\n .value(Files.readString(Paths.get(\"wu-tang-pubkey\")))\n .build())\n .build());\n\n var wu_tang_root_ca_backend_auth_policy = new LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-root-ca-backend-auth-policy\")\n .policyTypeName(\"BackendServerAuthenticationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKeyPolicyName\")\n .value(aws_load_balancer_policy.wu-tang-root-ca-pubkey-policy().policy_name())\n .build())\n .build());\n\n var wu_tang_backend_auth_policies_443 = new LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", LoadBalancerBackendServerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .instancePort(443)\n .policyNames(wu_tang_root_ca_backend_auth_policy.policyName())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Attaches a load balancer policy to an ELB backend server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as fs from \"fs\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ca_pubkey_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ca-pubkey-policy\",\n policyTypeName: \"PublicKeyPolicyType\",\n policyAttributes: [{\n name: \"PublicKey\",\n value: fs.readFileSync(\"wu-tang-pubkey\"),\n }],\n});\nconst wu_tang_root_ca_backend_auth_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-root-ca-backend-auth-policy\",\n policyTypeName: \"BackendServerAuthenticationPolicyType\",\n policyAttributes: [{\n name: \"PublicKeyPolicyName\",\n value: aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"].policy_name,\n }],\n});\nconst wu_tang_backend_auth_policies_443 = new aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", {\n loadBalancerName: wu_tang.name,\n instancePort: 443,\n policyNames: [wu_tang_root_ca_backend_auth_policy.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ca_pubkey_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ca-pubkey-policy\",\n policy_type_name=\"PublicKeyPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKey\",\n value=(lambda path: open(path).read())(\"wu-tang-pubkey\"),\n )])\nwu_tang_root_ca_backend_auth_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-root-ca-backend-auth-policy\",\n policy_type_name=\"BackendServerAuthenticationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKeyPolicyName\",\n value=aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"][\"policy_name\"],\n )])\nwu_tang_backend_auth_policies_443 = aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\",\n load_balancer_name=wu_tang.name,\n instance_port=443,\n policy_names=[wu_tang_root_ca_backend_auth_policy.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ca_pubkey_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ca-pubkey-policy\",\n PolicyTypeName = \"PublicKeyPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKey\",\n Value = File.ReadAllText(\"wu-tang-pubkey\"),\n },\n },\n });\n\n var wu_tang_root_ca_backend_auth_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-root-ca-backend-auth-policy\",\n PolicyTypeName = \"BackendServerAuthenticationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKeyPolicyName\",\n Value = aws_load_balancer_policy.Wu_tang_root_ca_pubkey_policy.Policy_name,\n },\n },\n });\n\n var wu_tang_backend_auth_policies_443 = new Aws.Elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n InstancePort = 443,\n PolicyNames = new[]\n {\n wu_tang_root_ca_backend_auth_policy.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ca-pubkey-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ca-pubkey-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"PublicKeyPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKey\"),\n\t\t\t\t\tValue: readFileOrPanic(\"wu-tang-pubkey\"),\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\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-root-ca-backend-auth-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-root-ca-backend-auth-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"BackendServerAuthenticationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKeyPolicyName\"),\n\t\t\t\t\tValue: pulumi.Any(aws_load_balancer_policy.Wu - tang - root - ca - pubkey - policy.Policy_name),\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\t_, err = elb.NewLoadBalancerBackendServerPolicy(ctx, \"wu-tang-backend-auth-policies-443\", \u0026elb.LoadBalancerBackendServerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tInstancePort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_root_ca_backend_auth_policy.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ca_pubkey_policy = new LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ca-pubkey-policy\")\n .policyTypeName(\"PublicKeyPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKey\")\n .value(Files.readString(Paths.get(\"wu-tang-pubkey\")))\n .build())\n .build());\n\n var wu_tang_root_ca_backend_auth_policy = new LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-root-ca-backend-auth-policy\")\n .policyTypeName(\"BackendServerAuthenticationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKeyPolicyName\")\n .value(aws_load_balancer_policy.wu-tang-root-ca-pubkey-policy().policy_name())\n .build())\n .build());\n\n var wu_tang_backend_auth_policies_443 = new LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", LoadBalancerBackendServerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .instancePort(443)\n .policyNames(wu_tang_root_ca_backend_auth_policy.policyName())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"instancePort": {
"type": "integer",
@@ -453915,7 +457434,7 @@
]
},
"aws:elb/listenerPolicy:ListenerPolicy": {
- "description": "Attaches a load balancer policy to an ELB Listener.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Custom Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [\n {\n name: \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value: \"true\",\n },\n {\n name: \"Protocol-TLSv1.2\",\n value: \"true\",\n },\n ],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value=\"true\",\n ),\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Protocol-TLSv1.2\",\n value=\"true\",\n ),\n ])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n Value = \"true\",\n },\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Protocol-TLSv1.2\",\n Value = \"true\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"ECDHE-ECDSA-AES128-GCM-SHA256\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Protocol-TLSv1.2\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl = new LoadBalancerPolicy(\"wu-tang-ssl\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes( \n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"ECDHE-ECDSA-AES128-GCM-SHA256\")\n .value(\"true\")\n .build(),\n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Protocol-TLSv1.2\")\n .value(\"true\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: ECDHE-ECDSA-AES128-GCM-SHA256\n value: true\n - name: Protocol-TLSv1.2\n value: true\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl\"].policyName}\n```\n\nThis example shows how to customize the TLS settings of an HTTPS listener.\n{{% /example %}}\n{{% example %}}\n### AWS Predefined Security Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl_tls_1_1 = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [{\n name: \"Reference-Security-Policy\",\n value: \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n }],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl_tls_1_1.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl_tls_1_1 = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Reference-Security-Policy\",\n value=\"ELBSecurityPolicy-TLS-1-1-2017-01\",\n )])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl_tls_1_1.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl_tls_1_1 = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Reference-Security-Policy\",\n Value = \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl_tls_1_1.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl-tls-1-1\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Reference-Security-Policy\"),\n\t\t\t\t\tValue: pulumi.String(\"ELBSecurityPolicy-TLS-1-1-2017-01\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl_tls_1_1.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl_tls_1_1 = new LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Reference-Security-Policy\")\n .value(\"ELBSecurityPolicy-TLS-1-1-2017-01\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl_tls_1_1.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl-tls-1-1:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: Reference-Security-Policy\n value: ELBSecurityPolicy-TLS-1-1-2017-01\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl-tls-1-1\"].policyName}\n```\n\nThis example shows how to add a [Predefined Security Policy for ELBs](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html)\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Attaches a load balancer policy to an ELB Listener.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Custom Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [\n {\n name: \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value: \"true\",\n },\n {\n name: \"Protocol-TLSv1.2\",\n value: \"true\",\n },\n ],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"ECDHE-ECDSA-AES128-GCM-SHA256\",\n value=\"true\",\n ),\n aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Protocol-TLSv1.2\",\n value=\"true\",\n ),\n ])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"ECDHE-ECDSA-AES128-GCM-SHA256\",\n Value = \"true\",\n },\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Protocol-TLSv1.2\",\n Value = \"true\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"ECDHE-ECDSA-AES128-GCM-SHA256\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\n\t\t\t\t},\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Protocol-TLSv1.2\"),\n\t\t\t\t\tValue: pulumi.String(\"true\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl = new LoadBalancerPolicy(\"wu-tang-ssl\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes( \n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"ECDHE-ECDSA-AES128-GCM-SHA256\")\n .value(\"true\")\n .build(),\n LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Protocol-TLSv1.2\")\n .value(\"true\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: ECDHE-ECDSA-AES128-GCM-SHA256\n value: true\n - name: Protocol-TLSv1.2\n value: true\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl\"].policyName}\n```\n\nThis example shows how to customize the TLS settings of an HTTPS listener.\n{{% /example %}}\n{{% example %}}\n### AWS Predefined Security Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ssl_tls_1_1 = new aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ssl\",\n policyTypeName: \"SSLNegotiationPolicyType\",\n policyAttributes: [{\n name: \"Reference-Security-Policy\",\n value: \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n }],\n});\nconst wu_tang_listener_policies_443 = new aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\", {\n loadBalancerName: wu_tang.name,\n loadBalancerPort: 443,\n policyNames: [wu_tang_ssl_tls_1_1.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ssl_tls_1_1 = aws.elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ssl\",\n policy_type_name=\"SSLNegotiationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"Reference-Security-Policy\",\n value=\"ELBSecurityPolicy-TLS-1-1-2017-01\",\n )])\nwu_tang_listener_policies_443 = aws.elb.ListenerPolicy(\"wu-tang-listener-policies-443\",\n load_balancer_name=wu_tang.name,\n load_balancer_port=443,\n policy_names=[wu_tang_ssl_tls_1_1.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ssl_tls_1_1 = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ssl\",\n PolicyTypeName = \"SSLNegotiationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"Reference-Security-Policy\",\n Value = \"ELBSecurityPolicy-TLS-1-1-2017-01\",\n },\n },\n });\n\n var wu_tang_listener_policies_443 = new Aws.Elb.ListenerPolicy(\"wu-tang-listener-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n LoadBalancerPort = 443,\n PolicyNames = new[]\n {\n wu_tang_ssl_tls_1_1.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ssl-tls-1-1\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ssl\"),\n\t\t\tPolicyTypeName: pulumi.String(\"SSLNegotiationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"Reference-Security-Policy\"),\n\t\t\t\t\tValue: pulumi.String(\"ELBSecurityPolicy-TLS-1-1-2017-01\"),\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\t_, err = elb.NewListenerPolicy(ctx, \"wu-tang-listener-policies-443\", \u0026elb.ListenerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tLoadBalancerPort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_ssl_tls_1_1.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.ListenerPolicy;\nimport com.pulumi.aws.elb.ListenerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ssl_tls_1_1 = new LoadBalancerPolicy(\"wu-tang-ssl-tls-1-1\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ssl\")\n .policyTypeName(\"SSLNegotiationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"Reference-Security-Policy\")\n .value(\"ELBSecurityPolicy-TLS-1-1-2017-01\")\n .build())\n .build());\n\n var wu_tang_listener_policies_443 = new ListenerPolicy(\"wu-tang-listener-policies-443\", ListenerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .loadBalancerPort(443)\n .policyNames(wu_tang_ssl_tls_1_1.policyName())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n wu-tang:\n type: aws:elb:LoadBalancer\n properties:\n availabilityZones:\n - us-east-1a\n listeners:\n - instancePort: 443\n instanceProtocol: http\n lbPort: 443\n lbProtocol: https\n sslCertificateId: arn:aws:iam::000000000000:server-certificate/wu-tang.net\n tags:\n Name: wu-tang\n wu-tang-ssl-tls-1-1:\n type: aws:elb:LoadBalancerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n policyName: wu-tang-ssl\n policyTypeName: SSLNegotiationPolicyType\n policyAttributes:\n - name: Reference-Security-Policy\n value: ELBSecurityPolicy-TLS-1-1-2017-01\n wu-tang-listener-policies-443:\n type: aws:elb:ListenerPolicy\n properties:\n loadBalancerName: ${[\"wu-tang\"].name}\n loadBalancerPort: 443\n policyNames:\n - ${[\"wu-tang-ssl-tls-1-1\"].policyName}\n```\n\nThis example shows how to add a [Predefined Security Policy for ELBs](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html)\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"loadBalancerName": {
"type": "string",
@@ -454333,7 +457852,7 @@
]
},
"aws:elb/loadBalancerBackendServerPolicy:LoadBalancerBackendServerPolicy": {
- "description": "Attaches a load balancer policy to an ELB backend server.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as fs from \"fs\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ca_pubkey_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ca-pubkey-policy\",\n policyTypeName: \"PublicKeyPolicyType\",\n policyAttributes: [{\n name: \"PublicKey\",\n value: fs.readFileSync(\"wu-tang-pubkey\"),\n }],\n});\nconst wu_tang_root_ca_backend_auth_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-root-ca-backend-auth-policy\",\n policyTypeName: \"BackendServerAuthenticationPolicyType\",\n policyAttributes: [{\n name: \"PublicKeyPolicyName\",\n value: aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"].policy_name,\n }],\n});\nconst wu_tang_backend_auth_policies_443 = new aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", {\n loadBalancerName: wu_tang.name,\n instancePort: 443,\n policyNames: [wu_tang_root_ca_backend_auth_policy.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ca_pubkey_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ca-pubkey-policy\",\n policy_type_name=\"PublicKeyPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKey\",\n value=(lambda path: open(path).read())(\"wu-tang-pubkey\"),\n )])\nwu_tang_root_ca_backend_auth_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-root-ca-backend-auth-policy\",\n policy_type_name=\"BackendServerAuthenticationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKeyPolicyName\",\n value=aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"][\"policy_name\"],\n )])\nwu_tang_backend_auth_policies_443 = aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\",\n load_balancer_name=wu_tang.name,\n instance_port=443,\n policy_names=[wu_tang_root_ca_backend_auth_policy.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ca_pubkey_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ca-pubkey-policy\",\n PolicyTypeName = \"PublicKeyPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKey\",\n Value = File.ReadAllText(\"wu-tang-pubkey\"),\n },\n },\n });\n\n var wu_tang_root_ca_backend_auth_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-root-ca-backend-auth-policy\",\n PolicyTypeName = \"BackendServerAuthenticationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKeyPolicyName\",\n Value = aws_load_balancer_policy.Wu_tang_root_ca_pubkey_policy.Policy_name,\n },\n },\n });\n\n var wu_tang_backend_auth_policies_443 = new Aws.Elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n InstancePort = 443,\n PolicyNames = new[]\n {\n wu_tang_root_ca_backend_auth_policy.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ca-pubkey-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ca-pubkey-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"PublicKeyPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKey\"),\n\t\t\t\t\tValue: readFileOrPanic(\"wu-tang-pubkey\"),\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\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-root-ca-backend-auth-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-root-ca-backend-auth-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"BackendServerAuthenticationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKeyPolicyName\"),\n\t\t\t\t\tValue: pulumi.Any(aws_load_balancer_policy.Wu - tang - root - ca - pubkey - policy.Policy_name),\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\t_, err = elb.NewLoadBalancerBackendServerPolicy(ctx, \"wu-tang-backend-auth-policies-443\", \u0026elb.LoadBalancerBackendServerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tInstancePort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_root_ca_backend_auth_policy.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ca_pubkey_policy = new LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ca-pubkey-policy\")\n .policyTypeName(\"PublicKeyPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKey\")\n .value(Files.readString(Paths.get(\"wu-tang-pubkey\")))\n .build())\n .build());\n\n var wu_tang_root_ca_backend_auth_policy = new LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-root-ca-backend-auth-policy\")\n .policyTypeName(\"BackendServerAuthenticationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKeyPolicyName\")\n .value(aws_load_balancer_policy.wu-tang-root-ca-pubkey-policy().policy_name())\n .build())\n .build());\n\n var wu_tang_backend_auth_policies_443 = new LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", LoadBalancerBackendServerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .instancePort(443)\n .policyNames(wu_tang_root_ca_backend_auth_policy.policyName())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Attaches a load balancer policy to an ELB backend server.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport * as fs from \"fs\";\n\nconst wu_tang = new aws.elb.LoadBalancer(\"wu-tang\", {\n availabilityZones: [\"us-east-1a\"],\n listeners: [{\n instancePort: 443,\n instanceProtocol: \"http\",\n lbPort: 443,\n lbProtocol: \"https\",\n sslCertificateId: \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n }],\n tags: {\n Name: \"wu-tang\",\n },\n});\nconst wu_tang_ca_pubkey_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-ca-pubkey-policy\",\n policyTypeName: \"PublicKeyPolicyType\",\n policyAttributes: [{\n name: \"PublicKey\",\n value: fs.readFileSync(\"wu-tang-pubkey\"),\n }],\n});\nconst wu_tang_root_ca_backend_auth_policy = new aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", {\n loadBalancerName: wu_tang.name,\n policyName: \"wu-tang-root-ca-backend-auth-policy\",\n policyTypeName: \"BackendServerAuthenticationPolicyType\",\n policyAttributes: [{\n name: \"PublicKeyPolicyName\",\n value: aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"].policy_name,\n }],\n});\nconst wu_tang_backend_auth_policies_443 = new aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", {\n loadBalancerName: wu_tang.name,\n instancePort: 443,\n policyNames: [wu_tang_root_ca_backend_auth_policy.policyName],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nwu_tang = aws.elb.LoadBalancer(\"wu-tang\",\n availability_zones=[\"us-east-1a\"],\n listeners=[aws.elb.LoadBalancerListenerArgs(\n instance_port=443,\n instance_protocol=\"http\",\n lb_port=443,\n lb_protocol=\"https\",\n ssl_certificate_id=\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n )],\n tags={\n \"Name\": \"wu-tang\",\n })\nwu_tang_ca_pubkey_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-ca-pubkey-policy\",\n policy_type_name=\"PublicKeyPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKey\",\n value=(lambda path: open(path).read())(\"wu-tang-pubkey\"),\n )])\nwu_tang_root_ca_backend_auth_policy = aws.elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\",\n load_balancer_name=wu_tang.name,\n policy_name=\"wu-tang-root-ca-backend-auth-policy\",\n policy_type_name=\"BackendServerAuthenticationPolicyType\",\n policy_attributes=[aws.elb.LoadBalancerPolicyPolicyAttributeArgs(\n name=\"PublicKeyPolicyName\",\n value=aws_load_balancer_policy[\"wu-tang-root-ca-pubkey-policy\"][\"policy_name\"],\n )])\nwu_tang_backend_auth_policies_443 = aws.elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\",\n load_balancer_name=wu_tang.name,\n instance_port=443,\n policy_names=[wu_tang_root_ca_backend_auth_policy.policy_name])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.IO;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var wu_tang = new Aws.Elb.LoadBalancer(\"wu-tang\", new()\n {\n AvailabilityZones = new[]\n {\n \"us-east-1a\",\n },\n Listeners = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerListenerArgs\n {\n InstancePort = 443,\n InstanceProtocol = \"http\",\n LbPort = 443,\n LbProtocol = \"https\",\n SslCertificateId = \"arn:aws:iam::000000000000:server-certificate/wu-tang.net\",\n },\n },\n Tags = \n {\n { \"Name\", \"wu-tang\" },\n },\n });\n\n var wu_tang_ca_pubkey_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-ca-pubkey-policy\",\n PolicyTypeName = \"PublicKeyPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKey\",\n Value = File.ReadAllText(\"wu-tang-pubkey\"),\n },\n },\n });\n\n var wu_tang_root_ca_backend_auth_policy = new Aws.Elb.LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", new()\n {\n LoadBalancerName = wu_tang.Name,\n PolicyName = \"wu-tang-root-ca-backend-auth-policy\",\n PolicyTypeName = \"BackendServerAuthenticationPolicyType\",\n PolicyAttributes = new[]\n {\n new Aws.Elb.Inputs.LoadBalancerPolicyPolicyAttributeArgs\n {\n Name = \"PublicKeyPolicyName\",\n Value = aws_load_balancer_policy.Wu_tang_root_ca_pubkey_policy.Policy_name,\n },\n },\n });\n\n var wu_tang_backend_auth_policies_443 = new Aws.Elb.LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", new()\n {\n LoadBalancerName = wu_tang.Name,\n InstancePort = 443,\n PolicyNames = new[]\n {\n wu_tang_root_ca_backend_auth_policy.PolicyName,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"io/ioutil\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elb\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc readFileOrPanic(path string) pulumi.StringPtrInput {\n\tdata, err := ioutil.ReadFile(path)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\treturn pulumi.String(string(data))\n}\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elb.NewLoadBalancer(ctx, \"wu-tang\", \u0026elb.LoadBalancerArgs{\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-east-1a\"),\n\t\t\t},\n\t\t\tListeners: elb.LoadBalancerListenerArray{\n\t\t\t\t\u0026elb.LoadBalancerListenerArgs{\n\t\t\t\t\tInstancePort: pulumi.Int(443),\n\t\t\t\t\tInstanceProtocol: pulumi.String(\"http\"),\n\t\t\t\t\tLbPort: pulumi.Int(443),\n\t\t\t\t\tLbProtocol: pulumi.String(\"https\"),\n\t\t\t\t\tSslCertificateId: pulumi.String(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"wu-tang\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-ca-pubkey-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-ca-pubkey-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"PublicKeyPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKey\"),\n\t\t\t\t\tValue: readFileOrPanic(\"wu-tang-pubkey\"),\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\t_, err = elb.NewLoadBalancerPolicy(ctx, \"wu-tang-root-ca-backend-auth-policy\", \u0026elb.LoadBalancerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tPolicyName: pulumi.String(\"wu-tang-root-ca-backend-auth-policy\"),\n\t\t\tPolicyTypeName: pulumi.String(\"BackendServerAuthenticationPolicyType\"),\n\t\t\tPolicyAttributes: elb.LoadBalancerPolicyPolicyAttributeArray{\n\t\t\t\t\u0026elb.LoadBalancerPolicyPolicyAttributeArgs{\n\t\t\t\t\tName: pulumi.String(\"PublicKeyPolicyName\"),\n\t\t\t\t\tValue: pulumi.Any(aws_load_balancer_policy.Wu - tang - root - ca - pubkey - policy.Policy_name),\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\t_, err = elb.NewLoadBalancerBackendServerPolicy(ctx, \"wu-tang-backend-auth-policies-443\", \u0026elb.LoadBalancerBackendServerPolicyArgs{\n\t\t\tLoadBalancerName: wu_tang.Name,\n\t\t\tInstancePort: pulumi.Int(443),\n\t\t\tPolicyNames: pulumi.StringArray{\n\t\t\t\twu_tang_root_ca_backend_auth_policy.PolicyName,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elb.LoadBalancer;\nimport com.pulumi.aws.elb.LoadBalancerArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerListenerArgs;\nimport com.pulumi.aws.elb.LoadBalancerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerPolicyArgs;\nimport com.pulumi.aws.elb.inputs.LoadBalancerPolicyPolicyAttributeArgs;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicy;\nimport com.pulumi.aws.elb.LoadBalancerBackendServerPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var wu_tang = new LoadBalancer(\"wu-tang\", LoadBalancerArgs.builder() \n .availabilityZones(\"us-east-1a\")\n .listeners(LoadBalancerListenerArgs.builder()\n .instancePort(443)\n .instanceProtocol(\"http\")\n .lbPort(443)\n .lbProtocol(\"https\")\n .sslCertificateId(\"arn:aws:iam::000000000000:server-certificate/wu-tang.net\")\n .build())\n .tags(Map.of(\"Name\", \"wu-tang\"))\n .build());\n\n var wu_tang_ca_pubkey_policy = new LoadBalancerPolicy(\"wu-tang-ca-pubkey-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-ca-pubkey-policy\")\n .policyTypeName(\"PublicKeyPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKey\")\n .value(Files.readString(Paths.get(\"wu-tang-pubkey\")))\n .build())\n .build());\n\n var wu_tang_root_ca_backend_auth_policy = new LoadBalancerPolicy(\"wu-tang-root-ca-backend-auth-policy\", LoadBalancerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .policyName(\"wu-tang-root-ca-backend-auth-policy\")\n .policyTypeName(\"BackendServerAuthenticationPolicyType\")\n .policyAttributes(LoadBalancerPolicyPolicyAttributeArgs.builder()\n .name(\"PublicKeyPolicyName\")\n .value(aws_load_balancer_policy.wu-tang-root-ca-pubkey-policy().policy_name())\n .build())\n .build());\n\n var wu_tang_backend_auth_policies_443 = new LoadBalancerBackendServerPolicy(\"wu-tang-backend-auth-policies-443\", LoadBalancerBackendServerPolicyArgs.builder() \n .loadBalancerName(wu_tang.name())\n .instancePort(443)\n .policyNames(wu_tang_root_ca_backend_auth_policy.policyName())\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
"instancePort": {
"type": "integer",
@@ -455948,7 +459467,7 @@
}
},
"aws:emrcontainers/virtualCluster:VirtualCluster": {
- "description": "Manages an EMR Containers (EMR on EKS) Virtual Cluster.\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.emrcontainers.VirtualCluster(\"example\", {containerProvider: {\n id: aws_eks_cluster.example.name,\n type: \"EKS\",\n info: {\n eksInfo: {\n namespace: \"default\",\n },\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.emrcontainers.VirtualCluster(\"example\", container_provider=aws.emrcontainers.VirtualClusterContainerProviderArgs(\n id=aws_eks_cluster[\"example\"][\"name\"],\n type=\"EKS\",\n info=aws.emrcontainers.VirtualClusterContainerProviderInfoArgs(\n eks_info=aws.emrcontainers.VirtualClusterContainerProviderInfoEksInfoArgs(\n namespace=\"default\",\n ),\n ),\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.EmrContainers.VirtualCluster(\"example\", new()\n {\n ContainerProvider = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderArgs\n {\n Id = aws_eks_cluster.Example.Name,\n Type = \"EKS\",\n Info = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderInfoArgs\n {\n EksInfo = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderInfoEksInfoArgs\n {\n Namespace = \"default\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/emrcontainers\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := emrcontainers.NewVirtualCluster(ctx, \"example\", \u0026emrcontainers.VirtualClusterArgs{\n\t\t\tContainerProvider: \u0026emrcontainers.VirtualClusterContainerProviderArgs{\n\t\t\t\tId: pulumi.Any(aws_eks_cluster.Example.Name),\n\t\t\t\tType: pulumi.String(\"EKS\"),\n\t\t\t\tInfo: \u0026emrcontainers.VirtualClusterContainerProviderInfoArgs{\n\t\t\t\t\tEksInfo: \u0026emrcontainers.VirtualClusterContainerProviderInfoEksInfoArgs{\n\t\t\t\t\t\tNamespace: pulumi.String(\"default\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.emrcontainers.VirtualCluster;\nimport com.pulumi.aws.emrcontainers.VirtualClusterArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderInfoArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderInfoEksInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new VirtualCluster(\"example\", VirtualClusterArgs.builder() \n .containerProvider(VirtualClusterContainerProviderArgs.builder()\n .id(aws_eks_cluster.example().name())\n .type(\"EKS\")\n .info(VirtualClusterContainerProviderInfoArgs.builder()\n .eksInfo(VirtualClusterContainerProviderInfoEksInfoArgs.builder()\n .namespace(\"default\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:emrcontainers:VirtualCluster\n properties:\n containerProvider:\n id: ${aws_eks_cluster.example.name}\n type: EKS\n info:\n eksInfo:\n namespace: default\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEKS Clusters can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aws:emrcontainers/virtualCluster:VirtualCluster example\n```\n\n ",
+ "description": "Manages an EMR Containers (EMR on EKS) Virtual Cluster.\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.emrcontainers.VirtualCluster(\"example\", {containerProvider: {\n id: aws_eks_cluster.example.name,\n type: \"EKS\",\n info: {\n eksInfo: {\n namespace: \"default\",\n },\n },\n}});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.emrcontainers.VirtualCluster(\"example\", container_provider=aws.emrcontainers.VirtualClusterContainerProviderArgs(\n id=aws_eks_cluster[\"example\"][\"name\"],\n type=\"EKS\",\n info=aws.emrcontainers.VirtualClusterContainerProviderInfoArgs(\n eks_info=aws.emrcontainers.VirtualClusterContainerProviderInfoEksInfoArgs(\n namespace=\"default\",\n ),\n ),\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.EmrContainers.VirtualCluster(\"example\", new()\n {\n ContainerProvider = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderArgs\n {\n Id = aws_eks_cluster.Example.Name,\n Type = \"EKS\",\n Info = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderInfoArgs\n {\n EksInfo = new Aws.EmrContainers.Inputs.VirtualClusterContainerProviderInfoEksInfoArgs\n {\n Namespace = \"default\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/emrcontainers\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := emrcontainers.NewVirtualCluster(ctx, \"example\", \u0026emrcontainers.VirtualClusterArgs{\n\t\t\tContainerProvider: \u0026emrcontainers.VirtualClusterContainerProviderArgs{\n\t\t\t\tId: pulumi.Any(aws_eks_cluster.Example.Name),\n\t\t\t\tType: pulumi.String(\"EKS\"),\n\t\t\t\tInfo: \u0026emrcontainers.VirtualClusterContainerProviderInfoArgs{\n\t\t\t\t\tEksInfo: \u0026emrcontainers.VirtualClusterContainerProviderInfoEksInfoArgs{\n\t\t\t\t\t\tNamespace: pulumi.String(\"default\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.emrcontainers.VirtualCluster;\nimport com.pulumi.aws.emrcontainers.VirtualClusterArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderInfoArgs;\nimport com.pulumi.aws.emrcontainers.inputs.VirtualClusterContainerProviderInfoEksInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new VirtualCluster(\"example\", VirtualClusterArgs.builder() \n .containerProvider(VirtualClusterContainerProviderArgs.builder()\n .id(aws_eks_cluster.example().name())\n .type(\"EKS\")\n .info(VirtualClusterContainerProviderInfoArgs.builder()\n .eksInfo(VirtualClusterContainerProviderInfoEksInfoArgs.builder()\n .namespace(\"default\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:emrcontainers:VirtualCluster\n properties:\n containerProvider:\n id: ${aws_eks_cluster.example.name}\n type: EKS\n info:\n eksInfo:\n namespace: default\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEKS Clusters can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:emrcontainers/virtualCluster:VirtualCluster example a1b2c3d4e5f6g7h8i9j10k11l\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -457834,7 +461353,7 @@
}
},
"aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine": {
- "description": "Manages a FSx Storage Virtual Machine.\nSee the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html) for more information.\n\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.fsx.OntapStorageVirtualMachine(\"test\", {fileSystemId: aws_fsx_ontap_file_system.test.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapStorageVirtualMachine(\"test\", file_system_id=aws_fsx_ontap_file_system[\"test\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapStorageVirtualMachine(\"test\", new()\n {\n FileSystemId = aws_fsx_ontap_file_system.Test.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapStorageVirtualMachine(ctx, \"test\", \u0026fsx.OntapStorageVirtualMachineArgs{\n\t\t\tFileSystemId: pulumi.Any(aws_fsx_ontap_file_system.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachine;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapStorageVirtualMachine(\"test\", OntapStorageVirtualMachineArgs.builder() \n .fileSystemId(aws_fsx_ontap_file_system.test().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapStorageVirtualMachine\n properties:\n fileSystemId: ${aws_fsx_ontap_file_system.test.id}\n```\n{{% /example %}}\n{{% example %}}\n### Using a Self-Managed Microsoft Active Directory\n\nAdditional information for using AWS Directory Service with ONTAP File Systems can be found in the [FSx ONTAP Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/self-managed-AD.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.fsx.OntapStorageVirtualMachine(\"test\", {\n fileSystemId: aws_fsx_ontap_file_system.test.id,\n activeDirectoryConfiguration: {\n netbiosName: \"mysvm\",\n selfManagedActiveDirectoryConfiguration: {\n dnsIps: [\n \"10.0.0.111\",\n \"10.0.0.222\",\n ],\n domainName: \"corp.example.com\",\n password: \"avoid-plaintext-passwords\",\n username: \"Admin\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapStorageVirtualMachine(\"test\",\n file_system_id=aws_fsx_ontap_file_system[\"test\"][\"id\"],\n active_directory_configuration=aws.fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs(\n netbios_name=\"mysvm\",\n self_managed_active_directory_configuration=aws.fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs(\n dns_ips=[\n \"10.0.0.111\",\n \"10.0.0.222\",\n ],\n domain_name=\"corp.example.com\",\n password=\"avoid-plaintext-passwords\",\n username=\"Admin\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapStorageVirtualMachine(\"test\", new()\n {\n FileSystemId = aws_fsx_ontap_file_system.Test.Id,\n ActiveDirectoryConfiguration = new Aws.Fsx.Inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs\n {\n NetbiosName = \"mysvm\",\n SelfManagedActiveDirectoryConfiguration = new Aws.Fsx.Inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs\n {\n DnsIps = new[]\n {\n \"10.0.0.111\",\n \"10.0.0.222\",\n },\n DomainName = \"corp.example.com\",\n Password = \"avoid-plaintext-passwords\",\n Username = \"Admin\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapStorageVirtualMachine(ctx, \"test\", \u0026fsx.OntapStorageVirtualMachineArgs{\n\t\t\tFileSystemId: pulumi.Any(aws_fsx_ontap_file_system.Test.Id),\n\t\t\tActiveDirectoryConfiguration: \u0026fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs{\n\t\t\t\tNetbiosName: pulumi.String(\"mysvm\"),\n\t\t\t\tSelfManagedActiveDirectoryConfiguration: \u0026fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs{\n\t\t\t\t\tDnsIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.111\"),\n\t\t\t\t\t\tpulumi.String(\"10.0.0.222\"),\n\t\t\t\t\t},\n\t\t\t\t\tDomainName: pulumi.String(\"corp.example.com\"),\n\t\t\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachine;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachineArgs;\nimport com.pulumi.aws.fsx.inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs;\nimport com.pulumi.aws.fsx.inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapStorageVirtualMachine(\"test\", OntapStorageVirtualMachineArgs.builder() \n .fileSystemId(aws_fsx_ontap_file_system.test().id())\n .activeDirectoryConfiguration(OntapStorageVirtualMachineActiveDirectoryConfigurationArgs.builder()\n .netbiosName(\"mysvm\")\n .selfManagedActiveDirectoryConfiguration(OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs.builder()\n .dnsIps( \n \"10.0.0.111\",\n \"10.0.0.222\")\n .domainName(\"corp.example.com\")\n .password(\"avoid-plaintext-passwords\")\n .username(\"Admin\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapStorageVirtualMachine\n properties:\n fileSystemId: ${aws_fsx_ontap_file_system.test.id}\n activeDirectoryConfiguration:\n netbiosName: mysvm\n selfManagedActiveDirectoryConfiguration:\n dnsIps:\n - 10.0.0.111\n - 10.0.0.222\n domainName: corp.example.com\n password: avoid-plaintext-passwords\n username: Admin\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx Storage Virtual Machine can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine example svm-12345678abcdef123\n```\n\n Certain resource arguments, like `svm_admin_password` and the `self_managed_active_directory` configuation block `password`, do not have a FSx API method for reading the information after creation. If these arguments are set in the Terraform configuration on an imported resource, Terraform will always show a difference. To workaround this behavior, either omit the argument from the Terraform configuration or use [`ignore_changes`](https://www.terraform.io/docs/configuration/meta-arguments/lifecycle.html#ignore_changes) to hide the difference, e.g., terraform resource \"aws_fsx_ontap_storage_virtual_machine\" \"example\" {\n\n # ... other configuration ...\n\n svm_admin_password = \"avoid-plaintext-passwords\"\n\n # There is no FSx API for reading svm_admin_password\n\n lifecycle {\n\n\n\n ignore_changes = [svm_admin_password]\n\n } } ",
+ "description": "Manages a FSx Storage Virtual Machine.\nSee the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-svms.html) for more information.\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.fsx.OntapStorageVirtualMachine(\"test\", {fileSystemId: aws_fsx_ontap_file_system.test.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapStorageVirtualMachine(\"test\", file_system_id=aws_fsx_ontap_file_system[\"test\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapStorageVirtualMachine(\"test\", new()\n {\n FileSystemId = aws_fsx_ontap_file_system.Test.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapStorageVirtualMachine(ctx, \"test\", \u0026fsx.OntapStorageVirtualMachineArgs{\n\t\t\tFileSystemId: pulumi.Any(aws_fsx_ontap_file_system.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachine;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachineArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapStorageVirtualMachine(\"test\", OntapStorageVirtualMachineArgs.builder() \n .fileSystemId(aws_fsx_ontap_file_system.test().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapStorageVirtualMachine\n properties:\n fileSystemId: ${aws_fsx_ontap_file_system.test.id}\n```\n{{% /example %}}\n{{% example %}}\n### Using a Self-Managed Microsoft Active Directory\n\nAdditional information for using AWS Directory Service with ONTAP File Systems can be found in the [FSx ONTAP Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/self-managed-AD.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.fsx.OntapStorageVirtualMachine(\"test\", {\n fileSystemId: aws_fsx_ontap_file_system.test.id,\n activeDirectoryConfiguration: {\n netbiosName: \"mysvm\",\n selfManagedActiveDirectoryConfiguration: {\n dnsIps: [\n \"10.0.0.111\",\n \"10.0.0.222\",\n ],\n domainName: \"corp.example.com\",\n password: \"avoid-plaintext-passwords\",\n username: \"Admin\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapStorageVirtualMachine(\"test\",\n file_system_id=aws_fsx_ontap_file_system[\"test\"][\"id\"],\n active_directory_configuration=aws.fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs(\n netbios_name=\"mysvm\",\n self_managed_active_directory_configuration=aws.fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs(\n dns_ips=[\n \"10.0.0.111\",\n \"10.0.0.222\",\n ],\n domain_name=\"corp.example.com\",\n password=\"avoid-plaintext-passwords\",\n username=\"Admin\",\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapStorageVirtualMachine(\"test\", new()\n {\n FileSystemId = aws_fsx_ontap_file_system.Test.Id,\n ActiveDirectoryConfiguration = new Aws.Fsx.Inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs\n {\n NetbiosName = \"mysvm\",\n SelfManagedActiveDirectoryConfiguration = new Aws.Fsx.Inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs\n {\n DnsIps = new[]\n {\n \"10.0.0.111\",\n \"10.0.0.222\",\n },\n DomainName = \"corp.example.com\",\n Password = \"avoid-plaintext-passwords\",\n Username = \"Admin\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapStorageVirtualMachine(ctx, \"test\", \u0026fsx.OntapStorageVirtualMachineArgs{\n\t\t\tFileSystemId: pulumi.Any(aws_fsx_ontap_file_system.Test.Id),\n\t\t\tActiveDirectoryConfiguration: \u0026fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs{\n\t\t\t\tNetbiosName: pulumi.String(\"mysvm\"),\n\t\t\t\tSelfManagedActiveDirectoryConfiguration: \u0026fsx.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs{\n\t\t\t\t\tDnsIps: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"10.0.0.111\"),\n\t\t\t\t\t\tpulumi.String(\"10.0.0.222\"),\n\t\t\t\t\t},\n\t\t\t\t\tDomainName: pulumi.String(\"corp.example.com\"),\n\t\t\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachine;\nimport com.pulumi.aws.fsx.OntapStorageVirtualMachineArgs;\nimport com.pulumi.aws.fsx.inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationArgs;\nimport com.pulumi.aws.fsx.inputs.OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapStorageVirtualMachine(\"test\", OntapStorageVirtualMachineArgs.builder() \n .fileSystemId(aws_fsx_ontap_file_system.test().id())\n .activeDirectoryConfiguration(OntapStorageVirtualMachineActiveDirectoryConfigurationArgs.builder()\n .netbiosName(\"mysvm\")\n .selfManagedActiveDirectoryConfiguration(OntapStorageVirtualMachineActiveDirectoryConfigurationSelfManagedActiveDirectoryConfigurationArgs.builder()\n .dnsIps( \n \"10.0.0.111\",\n \"10.0.0.222\")\n .domainName(\"corp.example.com\")\n .password(\"avoid-plaintext-passwords\")\n .username(\"Admin\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapStorageVirtualMachine\n properties:\n fileSystemId: ${aws_fsx_ontap_file_system.test.id}\n activeDirectoryConfiguration:\n netbiosName: mysvm\n selfManagedActiveDirectoryConfiguration:\n dnsIps:\n - 10.0.0.111\n - 10.0.0.222\n domainName: corp.example.com\n password: avoid-plaintext-passwords\n username: Admin\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx Storage Virtual Machine can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/ontapStorageVirtualMachine:OntapStorageVirtualMachine example svm-12345678abcdef123\n```\n\n Certain resource arguments, like `svm_admin_password` and the `self_managed_active_directory` configuation block `password`, do not have a FSx API method for reading the information after creation. If these arguments are set in the Terraform configuration on an imported resource, Terraform will always show a difference. To workaround this behavior, either omit the argument from the Terraform configuration or use [`ignore_changes`](https://www.terraform.io/docs/configuration/meta-arguments/lifecycle.html#ignore_changes) to hide the difference, e.g., terraform resource \"aws_fsx_ontap_storage_virtual_machine\" \"example\" {\n\n # ... other configuration ...\n\n svm_admin_password = \"avoid-plaintext-passwords\"\n\n # There is no FSx API for reading svm_admin_password\n\n lifecycle {\n\n\n\n ignore_changes = [svm_admin_password]\n\n } } ",
"properties": {
"activeDirectoryConfiguration": {
"$ref": "#/types/aws:fsx/OntapStorageVirtualMachineActiveDirectoryConfiguration:OntapStorageVirtualMachineActiveDirectoryConfiguration",
@@ -457993,7 +461512,7 @@
}
},
"aws:fsx/ontapVolume:OntapVolume": {
- "description": "Manages a FSx ONTAP Volume.\nSee the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html) for more information.\n\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.fsx.OntapVolume(\"test\", {\n junctionPath: \"/test\",\n sizeInMegabytes: 1024,\n storageEfficiencyEnabled: true,\n storageVirtualMachineId: aws_fsx_ontap_storage_virtual_machine.test.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapVolume(\"test\",\n junction_path=\"/test\",\n size_in_megabytes=1024,\n storage_efficiency_enabled=True,\n storage_virtual_machine_id=aws_fsx_ontap_storage_virtual_machine[\"test\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapVolume(\"test\", new()\n {\n JunctionPath = \"/test\",\n SizeInMegabytes = 1024,\n StorageEfficiencyEnabled = true,\n StorageVirtualMachineId = aws_fsx_ontap_storage_virtual_machine.Test.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapVolume(ctx, \"test\", \u0026fsx.OntapVolumeArgs{\n\t\t\tJunctionPath: pulumi.String(\"/test\"),\n\t\t\tSizeInMegabytes: pulumi.Int(1024),\n\t\t\tStorageEfficiencyEnabled: pulumi.Bool(true),\n\t\t\tStorageVirtualMachineId: pulumi.Any(aws_fsx_ontap_storage_virtual_machine.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapVolume;\nimport com.pulumi.aws.fsx.OntapVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapVolume(\"test\", OntapVolumeArgs.builder() \n .junctionPath(\"/test\")\n .sizeInMegabytes(1024)\n .storageEfficiencyEnabled(true)\n .storageVirtualMachineId(aws_fsx_ontap_storage_virtual_machine.test().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapVolume\n properties:\n junctionPath: /test\n sizeInMegabytes: 1024\n storageEfficiencyEnabled: true\n storageVirtualMachineId: ${aws_fsx_ontap_storage_virtual_machine.test.id}\n```\n{{% /example %}}\n{{% example %}}\n### Using Tiering Policy\n\nAdditional information on tiering policy with ONTAP Volumes can be found in the [FSx ONTAP Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.fsx.OntapVolume(\"test\", {\n junctionPath: \"/test\",\n sizeInMegabytes: 1024,\n storageEfficiencyEnabled: true,\n storageVirtualMachineId: aws_fsx_ontap_storage_virtual_machine.test.id,\n tieringPolicy: {\n name: \"AUTO\",\n coolingPeriod: 31,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapVolume(\"test\",\n junction_path=\"/test\",\n size_in_megabytes=1024,\n storage_efficiency_enabled=True,\n storage_virtual_machine_id=aws_fsx_ontap_storage_virtual_machine[\"test\"][\"id\"],\n tiering_policy=aws.fsx.OntapVolumeTieringPolicyArgs(\n name=\"AUTO\",\n cooling_period=31,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapVolume(\"test\", new()\n {\n JunctionPath = \"/test\",\n SizeInMegabytes = 1024,\n StorageEfficiencyEnabled = true,\n StorageVirtualMachineId = aws_fsx_ontap_storage_virtual_machine.Test.Id,\n TieringPolicy = new Aws.Fsx.Inputs.OntapVolumeTieringPolicyArgs\n {\n Name = \"AUTO\",\n CoolingPeriod = 31,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapVolume(ctx, \"test\", \u0026fsx.OntapVolumeArgs{\n\t\t\tJunctionPath: pulumi.String(\"/test\"),\n\t\t\tSizeInMegabytes: pulumi.Int(1024),\n\t\t\tStorageEfficiencyEnabled: pulumi.Bool(true),\n\t\t\tStorageVirtualMachineId: pulumi.Any(aws_fsx_ontap_storage_virtual_machine.Test.Id),\n\t\t\tTieringPolicy: \u0026fsx.OntapVolumeTieringPolicyArgs{\n\t\t\t\tName: pulumi.String(\"AUTO\"),\n\t\t\t\tCoolingPeriod: pulumi.Int(31),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapVolume;\nimport com.pulumi.aws.fsx.OntapVolumeArgs;\nimport com.pulumi.aws.fsx.inputs.OntapVolumeTieringPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapVolume(\"test\", OntapVolumeArgs.builder() \n .junctionPath(\"/test\")\n .sizeInMegabytes(1024)\n .storageEfficiencyEnabled(true)\n .storageVirtualMachineId(aws_fsx_ontap_storage_virtual_machine.test().id())\n .tieringPolicy(OntapVolumeTieringPolicyArgs.builder()\n .name(\"AUTO\")\n .coolingPeriod(31)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapVolume\n properties:\n junctionPath: /test\n sizeInMegabytes: 1024\n storageEfficiencyEnabled: true\n storageVirtualMachineId: ${aws_fsx_ontap_storage_virtual_machine.test.id}\n tieringPolicy:\n name: AUTO\n coolingPeriod: 31\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx ONTAP volume can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/ontapVolume:OntapVolume example fsvol-12345678abcdef123\n```\n\n ",
+ "description": "Manages a FSx ONTAP Volume.\nSee the [FSx ONTAP User Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html) for more information.\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.fsx.OntapVolume(\"test\", {\n junctionPath: \"/test\",\n sizeInMegabytes: 1024,\n storageEfficiencyEnabled: true,\n storageVirtualMachineId: aws_fsx_ontap_storage_virtual_machine.test.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapVolume(\"test\",\n junction_path=\"/test\",\n size_in_megabytes=1024,\n storage_efficiency_enabled=True,\n storage_virtual_machine_id=aws_fsx_ontap_storage_virtual_machine[\"test\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapVolume(\"test\", new()\n {\n JunctionPath = \"/test\",\n SizeInMegabytes = 1024,\n StorageEfficiencyEnabled = true,\n StorageVirtualMachineId = aws_fsx_ontap_storage_virtual_machine.Test.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapVolume(ctx, \"test\", \u0026fsx.OntapVolumeArgs{\n\t\t\tJunctionPath: pulumi.String(\"/test\"),\n\t\t\tSizeInMegabytes: pulumi.Int(1024),\n\t\t\tStorageEfficiencyEnabled: pulumi.Bool(true),\n\t\t\tStorageVirtualMachineId: pulumi.Any(aws_fsx_ontap_storage_virtual_machine.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapVolume;\nimport com.pulumi.aws.fsx.OntapVolumeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapVolume(\"test\", OntapVolumeArgs.builder() \n .junctionPath(\"/test\")\n .sizeInMegabytes(1024)\n .storageEfficiencyEnabled(true)\n .storageVirtualMachineId(aws_fsx_ontap_storage_virtual_machine.test().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapVolume\n properties:\n junctionPath: /test\n sizeInMegabytes: 1024\n storageEfficiencyEnabled: true\n storageVirtualMachineId: ${aws_fsx_ontap_storage_virtual_machine.test.id}\n```\n{{% /example %}}\n{{% example %}}\n### Using Tiering Policy\n\nAdditional information on tiering policy with ONTAP Volumes can be found in the [FSx ONTAP Guide](https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/managing-volumes.html).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.fsx.OntapVolume(\"test\", {\n junctionPath: \"/test\",\n sizeInMegabytes: 1024,\n storageEfficiencyEnabled: true,\n storageVirtualMachineId: aws_fsx_ontap_storage_virtual_machine.test.id,\n tieringPolicy: {\n name: \"AUTO\",\n coolingPeriod: 31,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.fsx.OntapVolume(\"test\",\n junction_path=\"/test\",\n size_in_megabytes=1024,\n storage_efficiency_enabled=True,\n storage_virtual_machine_id=aws_fsx_ontap_storage_virtual_machine[\"test\"][\"id\"],\n tiering_policy=aws.fsx.OntapVolumeTieringPolicyArgs(\n name=\"AUTO\",\n cooling_period=31,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = new Aws.Fsx.OntapVolume(\"test\", new()\n {\n JunctionPath = \"/test\",\n SizeInMegabytes = 1024,\n StorageEfficiencyEnabled = true,\n StorageVirtualMachineId = aws_fsx_ontap_storage_virtual_machine.Test.Id,\n TieringPolicy = new Aws.Fsx.Inputs.OntapVolumeTieringPolicyArgs\n {\n Name = \"AUTO\",\n CoolingPeriod = 31,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewOntapVolume(ctx, \"test\", \u0026fsx.OntapVolumeArgs{\n\t\t\tJunctionPath: pulumi.String(\"/test\"),\n\t\t\tSizeInMegabytes: pulumi.Int(1024),\n\t\t\tStorageEfficiencyEnabled: pulumi.Bool(true),\n\t\t\tStorageVirtualMachineId: pulumi.Any(aws_fsx_ontap_storage_virtual_machine.Test.Id),\n\t\t\tTieringPolicy: \u0026fsx.OntapVolumeTieringPolicyArgs{\n\t\t\t\tName: pulumi.String(\"AUTO\"),\n\t\t\t\tCoolingPeriod: pulumi.Int(31),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OntapVolume;\nimport com.pulumi.aws.fsx.OntapVolumeArgs;\nimport com.pulumi.aws.fsx.inputs.OntapVolumeTieringPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new OntapVolume(\"test\", OntapVolumeArgs.builder() \n .junctionPath(\"/test\")\n .sizeInMegabytes(1024)\n .storageEfficiencyEnabled(true)\n .storageVirtualMachineId(aws_fsx_ontap_storage_virtual_machine.test().id())\n .tieringPolicy(OntapVolumeTieringPolicyArgs.builder()\n .name(\"AUTO\")\n .coolingPeriod(31)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:fsx:OntapVolume\n properties:\n junctionPath: /test\n sizeInMegabytes: 1024\n storageEfficiencyEnabled: true\n storageVirtualMachineId: ${aws_fsx_ontap_storage_virtual_machine.test.id}\n tieringPolicy:\n name: AUTO\n coolingPeriod: 31\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx ONTAP volume can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/ontapVolume:OntapVolume example fsvol-12345678abcdef123\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -458520,7 +462039,7 @@
}
},
"aws:fsx/openZfsSnapshot:OpenZfsSnapshot": {
- "description": "Manages an Amazon FSx for OpenZFS volume.\nSee the [FSx OpenZFS User Guide](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.html) for more information.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Root volume Example\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OpenZfsFileSystem;\nimport com.pulumi.aws.fsx.OpenZfsFileSystemArgs;\nimport com.pulumi.aws.fsx.OpenZfsSnapshot;\nimport com.pulumi.aws.fsx.OpenZfsSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleOpenZfsFileSystem = new OpenZfsFileSystem(\"exampleOpenZfsFileSystem\", OpenZfsFileSystemArgs.builder() \n .storageCapacity(64)\n .subnetIds(aws_subnet.example().id())\n .deploymentType(\"SINGLE_AZ_1\")\n .throughputCapacity(64)\n .build());\n\n var exampleOpenZfsSnapshot = new OpenZfsSnapshot(\"exampleOpenZfsSnapshot\", OpenZfsSnapshotArgs.builder() \n .volumeId(exampleOpenZfsFileSystem.rootVolumeId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleOpenZfsSnapshot:\n type: aws:fsx:OpenZfsSnapshot\n properties:\n volumeId: ${exampleOpenZfsFileSystem.rootVolumeId}\n exampleOpenZfsFileSystem:\n type: aws:fsx:OpenZfsFileSystem\n properties:\n storageCapacity: 64\n subnetIds:\n - ${aws_subnet.example.id}\n deploymentType: SINGLE_AZ_1\n throughputCapacity: 64\n```\n{{% /example %}}\n{{% example %}}\n### Child volume Example\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OpenZfsFileSystem;\nimport com.pulumi.aws.fsx.OpenZfsFileSystemArgs;\nimport com.pulumi.aws.fsx.OpenZfsVolume;\nimport com.pulumi.aws.fsx.OpenZfsVolumeArgs;\nimport com.pulumi.aws.fsx.OpenZfsSnapshot;\nimport com.pulumi.aws.fsx.OpenZfsSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleOpenZfsFileSystem = new OpenZfsFileSystem(\"exampleOpenZfsFileSystem\", OpenZfsFileSystemArgs.builder() \n .storageCapacity(64)\n .subnetIds(aws_subnet.example().id())\n .deploymentType(\"SINGLE_AZ_1\")\n .throughputCapacity(64)\n .build());\n\n var exampleOpenZfsVolume = new OpenZfsVolume(\"exampleOpenZfsVolume\", OpenZfsVolumeArgs.builder() \n .parentVolumeId(exampleOpenZfsFileSystem.rootVolumeId())\n .build());\n\n var exampleOpenZfsSnapshot = new OpenZfsSnapshot(\"exampleOpenZfsSnapshot\", OpenZfsSnapshotArgs.builder() \n .volumeId(exampleOpenZfsVolume.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleOpenZfsSnapshot:\n type: aws:fsx:OpenZfsSnapshot\n properties:\n volumeId: ${exampleOpenZfsVolume.id}\n exampleOpenZfsVolume:\n type: aws:fsx:OpenZfsVolume\n properties:\n parentVolumeId: ${exampleOpenZfsFileSystem.rootVolumeId}\n exampleOpenZfsFileSystem:\n type: aws:fsx:OpenZfsFileSystem\n properties:\n storageCapacity: 64\n subnetIds:\n - ${aws_subnet.example.id}\n deploymentType: SINGLE_AZ_1\n throughputCapacity: 64\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx OpenZFS snapshot can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/openZfsSnapshot:OpenZfsSnapshot example fs-543ab12b1ca672f33\n```\n\n ",
+ "description": "Manages an Amazon FSx for OpenZFS volume.\nSee the [FSx OpenZFS User Guide](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/what-is-fsx.html) for more information.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Root volume Example\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OpenZfsFileSystem;\nimport com.pulumi.aws.fsx.OpenZfsFileSystemArgs;\nimport com.pulumi.aws.fsx.OpenZfsSnapshot;\nimport com.pulumi.aws.fsx.OpenZfsSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleOpenZfsFileSystem = new OpenZfsFileSystem(\"exampleOpenZfsFileSystem\", OpenZfsFileSystemArgs.builder() \n .storageCapacity(64)\n .subnetIds(aws_subnet.example().id())\n .deploymentType(\"SINGLE_AZ_1\")\n .throughputCapacity(64)\n .build());\n\n var exampleOpenZfsSnapshot = new OpenZfsSnapshot(\"exampleOpenZfsSnapshot\", OpenZfsSnapshotArgs.builder() \n .volumeId(exampleOpenZfsFileSystem.rootVolumeId())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleOpenZfsSnapshot:\n type: aws:fsx:OpenZfsSnapshot\n properties:\n volumeId: ${exampleOpenZfsFileSystem.rootVolumeId}\n exampleOpenZfsFileSystem:\n type: aws:fsx:OpenZfsFileSystem\n properties:\n storageCapacity: 64\n subnetIds:\n - ${aws_subnet.example.id}\n deploymentType: SINGLE_AZ_1\n throughputCapacity: 64\n```\n{{% /example %}}\n{{% example %}}\n### Child volume Example\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.fsx.OpenZfsFileSystem;\nimport com.pulumi.aws.fsx.OpenZfsFileSystemArgs;\nimport com.pulumi.aws.fsx.OpenZfsVolume;\nimport com.pulumi.aws.fsx.OpenZfsVolumeArgs;\nimport com.pulumi.aws.fsx.OpenZfsSnapshot;\nimport com.pulumi.aws.fsx.OpenZfsSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleOpenZfsFileSystem = new OpenZfsFileSystem(\"exampleOpenZfsFileSystem\", OpenZfsFileSystemArgs.builder() \n .storageCapacity(64)\n .subnetIds(aws_subnet.example().id())\n .deploymentType(\"SINGLE_AZ_1\")\n .throughputCapacity(64)\n .build());\n\n var exampleOpenZfsVolume = new OpenZfsVolume(\"exampleOpenZfsVolume\", OpenZfsVolumeArgs.builder() \n .parentVolumeId(exampleOpenZfsFileSystem.rootVolumeId())\n .build());\n\n var exampleOpenZfsSnapshot = new OpenZfsSnapshot(\"exampleOpenZfsSnapshot\", OpenZfsSnapshotArgs.builder() \n .volumeId(exampleOpenZfsVolume.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleOpenZfsSnapshot:\n type: aws:fsx:OpenZfsSnapshot\n properties:\n volumeId: ${exampleOpenZfsVolume.id}\n exampleOpenZfsVolume:\n type: aws:fsx:OpenZfsVolume\n properties:\n parentVolumeId: ${exampleOpenZfsFileSystem.rootVolumeId}\n exampleOpenZfsFileSystem:\n type: aws:fsx:OpenZfsFileSystem\n properties:\n storageCapacity: 64\n subnetIds:\n - ${aws_subnet.example.id}\n deploymentType: SINGLE_AZ_1\n throughputCapacity: 64\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx OpenZFS snapshot can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:fsx/openZfsSnapshot:OpenZfsSnapshot example fs-543ab12b1ca672f33\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -460407,7 +463926,7 @@
}
},
"aws:globalaccelerator/accelerator:Accelerator": {
- "description": "Creates a Global Accelerator accelerator.\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.globalaccelerator.Accelerator(\"example\", {\n attributes: {\n flowLogsEnabled: true,\n flowLogsS3Bucket: \"example-bucket\",\n flowLogsS3Prefix: \"flow-logs/\",\n },\n enabled: true,\n ipAddressType: \"IPV4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.globalaccelerator.Accelerator(\"example\",\n attributes=aws.globalaccelerator.AcceleratorAttributesArgs(\n flow_logs_enabled=True,\n flow_logs_s3_bucket=\"example-bucket\",\n flow_logs_s3_prefix=\"flow-logs/\",\n ),\n enabled=True,\n ip_address_type=\"IPV4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.GlobalAccelerator.Accelerator(\"example\", new()\n {\n Attributes = new Aws.GlobalAccelerator.Inputs.AcceleratorAttributesArgs\n {\n FlowLogsEnabled = true,\n FlowLogsS3Bucket = \"example-bucket\",\n FlowLogsS3Prefix = \"flow-logs/\",\n },\n Enabled = true,\n IpAddressType = \"IPV4\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/globalaccelerator\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := globalaccelerator.NewAccelerator(ctx, \"example\", \u0026globalaccelerator.AcceleratorArgs{\n\t\t\tAttributes: \u0026globalaccelerator.AcceleratorAttributesArgs{\n\t\t\t\tFlowLogsEnabled: pulumi.Bool(true),\n\t\t\t\tFlowLogsS3Bucket: pulumi.String(\"example-bucket\"),\n\t\t\t\tFlowLogsS3Prefix: pulumi.String(\"flow-logs/\"),\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tIpAddressType: pulumi.String(\"IPV4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.globalaccelerator.Accelerator;\nimport com.pulumi.aws.globalaccelerator.AcceleratorArgs;\nimport com.pulumi.aws.globalaccelerator.inputs.AcceleratorAttributesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Accelerator(\"example\", AcceleratorArgs.builder() \n .attributes(AcceleratorAttributesArgs.builder()\n .flowLogsEnabled(true)\n .flowLogsS3Bucket(\"example-bucket\")\n .flowLogsS3Prefix(\"flow-logs/\")\n .build())\n .enabled(true)\n .ipAddressType(\"IPV4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:globalaccelerator:Accelerator\n properties:\n attributes:\n flowLogsEnabled: true\n flowLogsS3Bucket: example-bucket\n flowLogsS3Prefix: flow-logs/\n enabled: true\n ipAddressType: IPV4\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGlobal Accelerator accelerators can be imported using the `arn`, e.g.,\n\n```sh\n $ pulumi import aws:globalaccelerator/accelerator:Accelerator example arn:aws:globalaccelerator::111111111111:accelerator/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\n ",
+ "description": "Creates a Global Accelerator accelerator.\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.globalaccelerator.Accelerator(\"example\", {\n attributes: {\n flowLogsEnabled: true,\n flowLogsS3Bucket: \"example-bucket\",\n flowLogsS3Prefix: \"flow-logs/\",\n },\n enabled: true,\n ipAddressType: \"IPV4\",\n ipAddresses: [\"1.2.3.4\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.globalaccelerator.Accelerator(\"example\",\n attributes=aws.globalaccelerator.AcceleratorAttributesArgs(\n flow_logs_enabled=True,\n flow_logs_s3_bucket=\"example-bucket\",\n flow_logs_s3_prefix=\"flow-logs/\",\n ),\n enabled=True,\n ip_address_type=\"IPV4\",\n ip_addresses=[\"1.2.3.4\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.GlobalAccelerator.Accelerator(\"example\", new()\n {\n Attributes = new Aws.GlobalAccelerator.Inputs.AcceleratorAttributesArgs\n {\n FlowLogsEnabled = true,\n FlowLogsS3Bucket = \"example-bucket\",\n FlowLogsS3Prefix = \"flow-logs/\",\n },\n Enabled = true,\n IpAddressType = \"IPV4\",\n IpAddresses = new[]\n {\n \"1.2.3.4\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/globalaccelerator\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := globalaccelerator.NewAccelerator(ctx, \"example\", \u0026globalaccelerator.AcceleratorArgs{\n\t\t\tAttributes: \u0026globalaccelerator.AcceleratorAttributesArgs{\n\t\t\t\tFlowLogsEnabled: pulumi.Bool(true),\n\t\t\t\tFlowLogsS3Bucket: pulumi.String(\"example-bucket\"),\n\t\t\t\tFlowLogsS3Prefix: pulumi.String(\"flow-logs/\"),\n\t\t\t},\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t\tIpAddressType: pulumi.String(\"IPV4\"),\n\t\t\tIpAddresses: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1.2.3.4\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.globalaccelerator.Accelerator;\nimport com.pulumi.aws.globalaccelerator.AcceleratorArgs;\nimport com.pulumi.aws.globalaccelerator.inputs.AcceleratorAttributesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Accelerator(\"example\", AcceleratorArgs.builder() \n .attributes(AcceleratorAttributesArgs.builder()\n .flowLogsEnabled(true)\n .flowLogsS3Bucket(\"example-bucket\")\n .flowLogsS3Prefix(\"flow-logs/\")\n .build())\n .enabled(true)\n .ipAddressType(\"IPV4\")\n .ipAddresses(\"1.2.3.4\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:globalaccelerator:Accelerator\n properties:\n attributes:\n flowLogsEnabled: true\n flowLogsS3Bucket: example-bucket\n flowLogsS3Prefix: flow-logs/\n enabled: true\n ipAddressType: IPV4\n ipAddresses:\n - 1.2.3.4\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGlobal Accelerator accelerators can be imported using the `arn`, e.g.,\n\n```sh\n $ pulumi import aws:globalaccelerator/accelerator:Accelerator example arn:aws:globalaccelerator::111111111111:accelerator/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\n```\n\n ",
"properties": {
"attributes": {
"$ref": "#/types/aws:globalaccelerator/AcceleratorAttributes:AcceleratorAttributes",
@@ -460428,6 +463947,13 @@
"type": "string",
"description": "The value for the address type. Defaults to `IPV4`. Valid values: `IPV4`, `DUAL_STACK`.\n"
},
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.\n"
+ },
"ipSets": {
"type": "array",
"items": {
@@ -460474,6 +464000,14 @@
"type": "string",
"description": "The value for the address type. Defaults to `IPV4`. Valid values: `IPV4`, `DUAL_STACK`.\n"
},
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.\n",
+ "willReplaceOnChanges": true
+ },
"name": {
"type": "string",
"description": "The name of the accelerator.\n"
@@ -460508,6 +464042,14 @@
"type": "string",
"description": "The value for the address type. Defaults to `IPV4`. Valid values: `IPV4`, `DUAL_STACK`.\n"
},
+ "ipAddresses": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.\n",
+ "willReplaceOnChanges": true
+ },
"ipSets": {
"type": "array",
"items": {
@@ -461411,7 +464953,7 @@
}
},
"aws:glue/crawler:Crawler": {
- "description": "Manages a Glue Crawler. More information can be found in the [AWS Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n dynamodbTargets: [{\n path: \"table-name\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n dynamodb_targets=[aws.glue.CrawlerDynamodbTargetArgs(\n path=\"table-name\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n DynamodbTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerDynamodbTargetArgs\n {\n Path = \"table-name\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tDynamodbTargets: glue.CrawlerDynamodbTargetArray{\n\t\t\t\t\u0026glue.CrawlerDynamodbTargetArgs{\n\t\t\t\t\tPath: pulumi.String(\"table-name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerDynamodbTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .dynamodbTargets(CrawlerDynamodbTargetArgs.builder()\n .path(\"table-name\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n dynamodbTargets:\n - path: table-name\n```\n{{% /example %}}\n{{% example %}}\n### JDBC Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n jdbcTargets: [{\n connectionName: aws_glue_connection.example.name,\n path: `database-name/%`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n jdbc_targets=[aws.glue.CrawlerJdbcTargetArgs(\n connection_name=aws_glue_connection[\"example\"][\"name\"],\n path=\"database-name/%\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n JdbcTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerJdbcTargetArgs\n {\n ConnectionName = aws_glue_connection.Example.Name,\n Path = \"database-name/%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tJdbcTargets: glue.CrawlerJdbcTargetArray{\n\t\t\t\t\u0026glue.CrawlerJdbcTargetArgs{\n\t\t\t\t\tConnectionName: pulumi.Any(aws_glue_connection.Example.Name),\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"database-name/%v\", \"%\")),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerJdbcTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .jdbcTargets(CrawlerJdbcTargetArgs.builder()\n .connectionName(aws_glue_connection.example().name())\n .path(\"database-name/%\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n jdbcTargets:\n - connectionName: ${aws_glue_connection.example.name}\n path: database-name/%\n```\n{{% /example %}}\n{{% example %}}\n### S3 Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n s3Targets: [{\n path: `s3://${aws_s3_bucket.example.bucket}`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n s3_targets=[aws.glue.CrawlerS3TargetArgs(\n path=f\"s3://{aws_s3_bucket['example']['bucket']}\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n S3Targets = new[]\n {\n new Aws.Glue.Inputs.CrawlerS3TargetArgs\n {\n Path = $\"s3://{aws_s3_bucket.Example.Bucket}\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tS3Targets: glue.CrawlerS3TargetArray{\n\t\t\t\t\u0026glue.CrawlerS3TargetArgs{\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"s3://%v\", aws_s3_bucket.Example.Bucket)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerS3TargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .s3Targets(CrawlerS3TargetArgs.builder()\n .path(String.format(\"s3://%s\", aws_s3_bucket.example().bucket()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n s3Targets:\n - path: s3://${aws_s3_bucket.example.bucket}\n```\n\n{{% /example %}}\n{{% example %}}\n### Catalog Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n catalogTargets: [{\n databaseName: aws_glue_catalog_database.example.name,\n tables: [aws_glue_catalog_table.example.name],\n }],\n schemaChangePolicy: {\n deleteBehavior: \"LOG\",\n },\n configuration: `{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n catalog_targets=[aws.glue.CrawlerCatalogTargetArgs(\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n tables=[aws_glue_catalog_table[\"example\"][\"name\"]],\n )],\n schema_change_policy=aws.glue.CrawlerSchemaChangePolicyArgs(\n delete_behavior=\"LOG\",\n ),\n configuration=\"\"\"{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n CatalogTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerCatalogTargetArgs\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Tables = new[]\n {\n aws_glue_catalog_table.Example.Name,\n },\n },\n },\n SchemaChangePolicy = new Aws.Glue.Inputs.CrawlerSchemaChangePolicyArgs\n {\n DeleteBehavior = \"LOG\",\n },\n Configuration = @\"{\n \"\"Version\"\":1.0,\n \"\"Grouping\"\": {\n \"\"TableGroupingPolicy\"\": \"\"CombineCompatibleSchemas\"\"\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/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tCatalogTargets: glue.CrawlerCatalogTargetArray{\n\t\t\t\t\u0026glue.CrawlerCatalogTargetArgs{\n\t\t\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\t\t\tTables: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.Any(aws_glue_catalog_table.Example.Name),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSchemaChangePolicy: \u0026glue.CrawlerSchemaChangePolicyArgs{\n\t\t\t\tDeleteBehavior: pulumi.String(\"LOG\"),\n\t\t\t},\n\t\t\tConfiguration: pulumi.String(fmt.Sprintf(`{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerCatalogTargetArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerSchemaChangePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .catalogTargets(CrawlerCatalogTargetArgs.builder()\n .databaseName(aws_glue_catalog_database.example().name())\n .tables(aws_glue_catalog_table.example().name())\n .build())\n .schemaChangePolicy(CrawlerSchemaChangePolicyArgs.builder()\n .deleteBehavior(\"LOG\")\n .build())\n .configuration(\"\"\"\n{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n catalogTargets:\n - databaseName: ${aws_glue_catalog_database.example.name}\n tables:\n - ${aws_glue_catalog_table.example.name}\n schemaChangePolicy:\n deleteBehavior: LOG\n configuration: |\n {\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n }\n```\n{{% /example %}}\n{{% example %}}\n### MongoDB Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n mongodbTargets: [{\n connectionName: aws_glue_connection.example.name,\n path: `database-name/%`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n mongodb_targets=[aws.glue.CrawlerMongodbTargetArgs(\n connection_name=aws_glue_connection[\"example\"][\"name\"],\n path=\"database-name/%\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n MongodbTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerMongodbTargetArgs\n {\n ConnectionName = aws_glue_connection.Example.Name,\n Path = \"database-name/%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tMongodbTargets: glue.CrawlerMongodbTargetArray{\n\t\t\t\t\u0026glue.CrawlerMongodbTargetArgs{\n\t\t\t\t\tConnectionName: pulumi.Any(aws_glue_connection.Example.Name),\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"database-name/%v\", \"%\")),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerMongodbTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .mongodbTargets(CrawlerMongodbTargetArgs.builder()\n .connectionName(aws_glue_connection.example().name())\n .path(\"database-name/%\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n mongodbTargets:\n - connectionName: ${aws_glue_connection.example.name}\n path: database-name/%\n```\n{{% /example %}}\n{{% example %}}\n### Configuration Settings Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst eventsCrawler = new aws.glue.Crawler(\"eventsCrawler\", {\n databaseName: aws_glue_catalog_database.glue_database.name,\n schedule: \"cron(0 1 * * ? *)\",\n role: aws_iam_role.glue_role.arn,\n tags: _var.tags,\n configuration: JSON.stringify({\n Grouping: {\n TableGroupingPolicy: \"CombineCompatibleSchemas\",\n },\n CrawlerOutput: {\n Partitions: {\n AddOrUpdateBehavior: \"InheritFromTable\",\n },\n },\n Version: 1,\n }),\n s3Targets: [{\n path: `s3://${aws_s3_bucket.data_lake_bucket.bucket}`,\n }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nevents_crawler = aws.glue.Crawler(\"eventsCrawler\",\n database_name=aws_glue_catalog_database[\"glue_database\"][\"name\"],\n schedule=\"cron(0 1 * * ? *)\",\n role=aws_iam_role[\"glue_role\"][\"arn\"],\n tags=var[\"tags\"],\n configuration=json.dumps({\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\",\n },\n \"CrawlerOutput\": {\n \"Partitions\": {\n \"AddOrUpdateBehavior\": \"InheritFromTable\",\n },\n },\n \"Version\": 1,\n }),\n s3_targets=[aws.glue.CrawlerS3TargetArgs(\n path=f\"s3://{aws_s3_bucket['data_lake_bucket']['bucket']}\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventsCrawler = new Aws.Glue.Crawler(\"eventsCrawler\", new()\n {\n DatabaseName = aws_glue_catalog_database.Glue_database.Name,\n Schedule = \"cron(0 1 * * ? *)\",\n Role = aws_iam_role.Glue_role.Arn,\n Tags = @var.Tags,\n Configuration = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Grouping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"TableGroupingPolicy\"] = \"CombineCompatibleSchemas\",\n },\n [\"CrawlerOutput\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Partitions\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"AddOrUpdateBehavior\"] = \"InheritFromTable\",\n },\n },\n [\"Version\"] = 1,\n }),\n S3Targets = new[]\n {\n new Aws.Glue.Inputs.CrawlerS3TargetArgs\n {\n Path = $\"s3://{aws_s3_bucket.Data_lake_bucket.Bucket}\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Grouping\": map[string]interface{}{\n\t\t\t\t\"TableGroupingPolicy\": \"CombineCompatibleSchemas\",\n\t\t\t},\n\t\t\t\"CrawlerOutput\": map[string]interface{}{\n\t\t\t\t\"Partitions\": map[string]interface{}{\n\t\t\t\t\t\"AddOrUpdateBehavior\": \"InheritFromTable\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = glue.NewCrawler(ctx, \"eventsCrawler\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Glue_database.Name),\n\t\t\tSchedule: pulumi.String(\"cron(0 1 * * ? *)\"),\n\t\t\tRole: pulumi.Any(aws_iam_role.Glue_role.Arn),\n\t\t\tTags: pulumi.Any(_var.Tags),\n\t\t\tConfiguration: pulumi.String(json0),\n\t\t\tS3Targets: glue.CrawlerS3TargetArray{\n\t\t\t\t\u0026glue.CrawlerS3TargetArgs{\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"s3://%v\", aws_s3_bucket.Data_lake_bucket.Bucket)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerS3TargetArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventsCrawler = new Crawler(\"eventsCrawler\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.glue_database().name())\n .schedule(\"cron(0 1 * * ? *)\")\n .role(aws_iam_role.glue_role().arn())\n .tags(var_.tags())\n .configuration(serializeJson(\n jsonObject(\n jsonProperty(\"Grouping\", jsonObject(\n jsonProperty(\"TableGroupingPolicy\", \"CombineCompatibleSchemas\")\n )),\n jsonProperty(\"CrawlerOutput\", jsonObject(\n jsonProperty(\"Partitions\", jsonObject(\n jsonProperty(\"AddOrUpdateBehavior\", \"InheritFromTable\")\n ))\n )),\n jsonProperty(\"Version\", 1)\n )))\n .s3Targets(CrawlerS3TargetArgs.builder()\n .path(String.format(\"s3://%s\", aws_s3_bucket.data_lake_bucket().bucket()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventsCrawler:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.glue_database.name}\n schedule: cron(0 1 * * ? *)\n role: ${aws_iam_role.glue_role.arn}\n tags: ${var.tags}\n configuration:\n Fn::ToJSON:\n Grouping:\n TableGroupingPolicy: CombineCompatibleSchemas\n CrawlerOutput:\n Partitions:\n AddOrUpdateBehavior: InheritFromTable\n Version: 1\n s3Targets:\n - path: s3://${aws_s3_bucket.data_lake_bucket.bucket}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGlue Crawlers can be imported using `name`, e.g.,\n\n```sh\n $ pulumi import aws:glue/crawler:Crawler MyJob MyJob\n```\n\n ",
+ "description": "Manages a Glue Crawler. More information can be found in the [AWS Glue Developer Guide](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html)\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### DynamoDB Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n dynamodbTargets: [{\n path: \"table-name\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n dynamodb_targets=[aws.glue.CrawlerDynamodbTargetArgs(\n path=\"table-name\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n DynamodbTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerDynamodbTargetArgs\n {\n Path = \"table-name\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tDynamodbTargets: glue.CrawlerDynamodbTargetArray{\n\t\t\t\t\u0026glue.CrawlerDynamodbTargetArgs{\n\t\t\t\t\tPath: pulumi.String(\"table-name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerDynamodbTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .dynamodbTargets(CrawlerDynamodbTargetArgs.builder()\n .path(\"table-name\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n dynamodbTargets:\n - path: table-name\n```\n{{% /example %}}\n{{% example %}}\n### JDBC Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n jdbcTargets: [{\n connectionName: aws_glue_connection.example.name,\n path: `database-name/%`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n jdbc_targets=[aws.glue.CrawlerJdbcTargetArgs(\n connection_name=aws_glue_connection[\"example\"][\"name\"],\n path=\"database-name/%\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n JdbcTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerJdbcTargetArgs\n {\n ConnectionName = aws_glue_connection.Example.Name,\n Path = \"database-name/%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tJdbcTargets: glue.CrawlerJdbcTargetArray{\n\t\t\t\t\u0026glue.CrawlerJdbcTargetArgs{\n\t\t\t\t\tConnectionName: pulumi.Any(aws_glue_connection.Example.Name),\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"database-name/%v\", \"%\")),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerJdbcTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .jdbcTargets(CrawlerJdbcTargetArgs.builder()\n .connectionName(aws_glue_connection.example().name())\n .path(\"database-name/%\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n jdbcTargets:\n - connectionName: ${aws_glue_connection.example.name}\n path: database-name/%\n```\n{{% /example %}}\n{{% example %}}\n### S3 Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n s3Targets: [{\n path: `s3://${aws_s3_bucket.example.bucket}`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n s3_targets=[aws.glue.CrawlerS3TargetArgs(\n path=f\"s3://{aws_s3_bucket['example']['bucket']}\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n S3Targets = new[]\n {\n new Aws.Glue.Inputs.CrawlerS3TargetArgs\n {\n Path = $\"s3://{aws_s3_bucket.Example.Bucket}\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tS3Targets: glue.CrawlerS3TargetArray{\n\t\t\t\t\u0026glue.CrawlerS3TargetArgs{\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"s3://%v\", aws_s3_bucket.Example.Bucket)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerS3TargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .s3Targets(CrawlerS3TargetArgs.builder()\n .path(String.format(\"s3://%s\", aws_s3_bucket.example().bucket()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n s3Targets:\n - path: s3://${aws_s3_bucket.example.bucket}\n```\n{{% /example %}}\n{{% example %}}\n### Catalog Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n catalogTargets: [{\n databaseName: aws_glue_catalog_database.example.name,\n tables: [aws_glue_catalog_table.example.name],\n }],\n schemaChangePolicy: {\n deleteBehavior: \"LOG\",\n },\n configuration: `{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n catalog_targets=[aws.glue.CrawlerCatalogTargetArgs(\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n tables=[aws_glue_catalog_table[\"example\"][\"name\"]],\n )],\n schema_change_policy=aws.glue.CrawlerSchemaChangePolicyArgs(\n delete_behavior=\"LOG\",\n ),\n configuration=\"\"\"{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n CatalogTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerCatalogTargetArgs\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Tables = new[]\n {\n aws_glue_catalog_table.Example.Name,\n },\n },\n },\n SchemaChangePolicy = new Aws.Glue.Inputs.CrawlerSchemaChangePolicyArgs\n {\n DeleteBehavior = \"LOG\",\n },\n Configuration = @\"{\n \"\"Version\"\":1.0,\n \"\"Grouping\"\": {\n \"\"TableGroupingPolicy\"\": \"\"CombineCompatibleSchemas\"\"\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/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tCatalogTargets: glue.CrawlerCatalogTargetArray{\n\t\t\t\t\u0026glue.CrawlerCatalogTargetArgs{\n\t\t\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\t\t\tTables: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.Any(aws_glue_catalog_table.Example.Name),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tSchemaChangePolicy: \u0026glue.CrawlerSchemaChangePolicyArgs{\n\t\t\t\tDeleteBehavior: pulumi.String(\"LOG\"),\n\t\t\t},\n\t\t\tConfiguration: pulumi.String(fmt.Sprintf(`{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerCatalogTargetArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerSchemaChangePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .catalogTargets(CrawlerCatalogTargetArgs.builder()\n .databaseName(aws_glue_catalog_database.example().name())\n .tables(aws_glue_catalog_table.example().name())\n .build())\n .schemaChangePolicy(CrawlerSchemaChangePolicyArgs.builder()\n .deleteBehavior(\"LOG\")\n .build())\n .configuration(\"\"\"\n{\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n}\n \"\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n catalogTargets:\n - databaseName: ${aws_glue_catalog_database.example.name}\n tables:\n - ${aws_glue_catalog_table.example.name}\n schemaChangePolicy:\n deleteBehavior: LOG\n configuration: |\n {\n \"Version\":1.0,\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\"\n }\n }\n```\n{{% /example %}}\n{{% example %}}\n### MongoDB Target Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.glue.Crawler(\"example\", {\n databaseName: aws_glue_catalog_database.example.name,\n role: aws_iam_role.example.arn,\n mongodbTargets: [{\n connectionName: aws_glue_connection.example.name,\n path: `database-name/%`,\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.glue.Crawler(\"example\",\n database_name=aws_glue_catalog_database[\"example\"][\"name\"],\n role=aws_iam_role[\"example\"][\"arn\"],\n mongodb_targets=[aws.glue.CrawlerMongodbTargetArgs(\n connection_name=aws_glue_connection[\"example\"][\"name\"],\n path=\"database-name/%\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Glue.Crawler(\"example\", new()\n {\n DatabaseName = aws_glue_catalog_database.Example.Name,\n Role = aws_iam_role.Example.Arn,\n MongodbTargets = new[]\n {\n new Aws.Glue.Inputs.CrawlerMongodbTargetArgs\n {\n ConnectionName = aws_glue_connection.Example.Name,\n Path = \"database-name/%\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := glue.NewCrawler(ctx, \"example\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Example.Name),\n\t\t\tRole: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\tMongodbTargets: glue.CrawlerMongodbTargetArray{\n\t\t\t\t\u0026glue.CrawlerMongodbTargetArgs{\n\t\t\t\t\tConnectionName: pulumi.Any(aws_glue_connection.Example.Name),\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"database-name/%v\", \"%\")),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerMongodbTargetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Crawler(\"example\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.example().name())\n .role(aws_iam_role.example().arn())\n .mongodbTargets(CrawlerMongodbTargetArgs.builder()\n .connectionName(aws_glue_connection.example().name())\n .path(\"database-name/%\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.example.name}\n role: ${aws_iam_role.example.arn}\n mongodbTargets:\n - connectionName: ${aws_glue_connection.example.name}\n path: database-name/%\n```\n{{% /example %}}\n{{% example %}}\n### Configuration Settings Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst eventsCrawler = new aws.glue.Crawler(\"eventsCrawler\", {\n databaseName: aws_glue_catalog_database.glue_database.name,\n schedule: \"cron(0 1 * * ? *)\",\n role: aws_iam_role.glue_role.arn,\n tags: _var.tags,\n configuration: JSON.stringify({\n Grouping: {\n TableGroupingPolicy: \"CombineCompatibleSchemas\",\n },\n CrawlerOutput: {\n Partitions: {\n AddOrUpdateBehavior: \"InheritFromTable\",\n },\n },\n Version: 1,\n }),\n s3Targets: [{\n path: `s3://${aws_s3_bucket.data_lake_bucket.bucket}`,\n }],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\nevents_crawler = aws.glue.Crawler(\"eventsCrawler\",\n database_name=aws_glue_catalog_database[\"glue_database\"][\"name\"],\n schedule=\"cron(0 1 * * ? *)\",\n role=aws_iam_role[\"glue_role\"][\"arn\"],\n tags=var[\"tags\"],\n configuration=json.dumps({\n \"Grouping\": {\n \"TableGroupingPolicy\": \"CombineCompatibleSchemas\",\n },\n \"CrawlerOutput\": {\n \"Partitions\": {\n \"AddOrUpdateBehavior\": \"InheritFromTable\",\n },\n },\n \"Version\": 1,\n }),\n s3_targets=[aws.glue.CrawlerS3TargetArgs(\n path=f\"s3://{aws_s3_bucket['data_lake_bucket']['bucket']}\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eventsCrawler = new Aws.Glue.Crawler(\"eventsCrawler\", new()\n {\n DatabaseName = aws_glue_catalog_database.Glue_database.Name,\n Schedule = \"cron(0 1 * * ? *)\",\n Role = aws_iam_role.Glue_role.Arn,\n Tags = @var.Tags,\n Configuration = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Grouping\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"TableGroupingPolicy\"] = \"CombineCompatibleSchemas\",\n },\n [\"CrawlerOutput\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Partitions\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"AddOrUpdateBehavior\"] = \"InheritFromTable\",\n },\n },\n [\"Version\"] = 1,\n }),\n S3Targets = new[]\n {\n new Aws.Glue.Inputs.CrawlerS3TargetArgs\n {\n Path = $\"s3://{aws_s3_bucket.Data_lake_bucket.Bucket}\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/glue\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Grouping\": map[string]interface{}{\n\t\t\t\t\"TableGroupingPolicy\": \"CombineCompatibleSchemas\",\n\t\t\t},\n\t\t\t\"CrawlerOutput\": map[string]interface{}{\n\t\t\t\t\"Partitions\": map[string]interface{}{\n\t\t\t\t\t\"AddOrUpdateBehavior\": \"InheritFromTable\",\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"Version\": 1,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = glue.NewCrawler(ctx, \"eventsCrawler\", \u0026glue.CrawlerArgs{\n\t\t\tDatabaseName: pulumi.Any(aws_glue_catalog_database.Glue_database.Name),\n\t\t\tSchedule: pulumi.String(\"cron(0 1 * * ? *)\"),\n\t\t\tRole: pulumi.Any(aws_iam_role.Glue_role.Arn),\n\t\t\tTags: pulumi.Any(_var.Tags),\n\t\t\tConfiguration: pulumi.String(json0),\n\t\t\tS3Targets: glue.CrawlerS3TargetArray{\n\t\t\t\t\u0026glue.CrawlerS3TargetArgs{\n\t\t\t\t\tPath: pulumi.String(fmt.Sprintf(\"s3://%v\", aws_s3_bucket.Data_lake_bucket.Bucket)),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.glue.Crawler;\nimport com.pulumi.aws.glue.CrawlerArgs;\nimport com.pulumi.aws.glue.inputs.CrawlerS3TargetArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eventsCrawler = new Crawler(\"eventsCrawler\", CrawlerArgs.builder() \n .databaseName(aws_glue_catalog_database.glue_database().name())\n .schedule(\"cron(0 1 * * ? *)\")\n .role(aws_iam_role.glue_role().arn())\n .tags(var_.tags())\n .configuration(serializeJson(\n jsonObject(\n jsonProperty(\"Grouping\", jsonObject(\n jsonProperty(\"TableGroupingPolicy\", \"CombineCompatibleSchemas\")\n )),\n jsonProperty(\"CrawlerOutput\", jsonObject(\n jsonProperty(\"Partitions\", jsonObject(\n jsonProperty(\"AddOrUpdateBehavior\", \"InheritFromTable\")\n ))\n )),\n jsonProperty(\"Version\", 1)\n )))\n .s3Targets(CrawlerS3TargetArgs.builder()\n .path(String.format(\"s3://%s\", aws_s3_bucket.data_lake_bucket().bucket()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eventsCrawler:\n type: aws:glue:Crawler\n properties:\n databaseName: ${aws_glue_catalog_database.glue_database.name}\n schedule: cron(0 1 * * ? *)\n role: ${aws_iam_role.glue_role.arn}\n tags: ${var.tags}\n configuration:\n Fn::ToJSON:\n Grouping:\n TableGroupingPolicy: CombineCompatibleSchemas\n CrawlerOutput:\n Partitions:\n AddOrUpdateBehavior: InheritFromTable\n Version: 1\n s3Targets:\n - path: s3://${aws_s3_bucket.data_lake_bucket.bucket}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nGlue Crawlers can be imported using `name`, e.g.,\n\n```sh\n $ pulumi import aws:glue/crawler:Crawler MyJob MyJob\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -466577,7 +470119,7 @@
}
},
"aws:iam/role:Role": {
- "description": "Provides an IAM role.\n\n\u003e **NOTE:** If policies are attached to the role via the `aws.iam.PolicyAttachment` resource and you are modifying the role `name` or `path`, the `force_detach_policies` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `aws.iam.RolePolicyAttachment` resource does not have this requirement.\n\n\u003e **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testRole = new aws.iam.Role(\"testRole\", {\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags: {\n \"tag-key\": \"tag-value\",\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"testRole\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags={\n \"tag-key\": \"tag-value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testRole = new Aws.Iam.Role(\"testRole\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n Tags = \n {\n { \"tag-key\", \"tag-value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"testRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag-key\": pulumi.String(\"tag-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testRole = new Role(\"testRole\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .tags(Map.of(\"tag-key\", \"tag-value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: ec2.amazonaws.com\n tags:\n tag-key: tag-value\n```\n{{% /example %}}\n{{% example %}}\n### Example of Using Data Source for Assume Role Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst instance-assume-role-policy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n }],\n});\nconst instance = new aws.iam.Role(\"instance\", {\n path: \"/system/\",\n assumeRolePolicy: instance_assume_role_policy.then(instance_assume_role_policy =\u003e instance_assume_role_policy.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ninstance_assume_role_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n)])\ninstance = aws.iam.Role(\"instance\",\n path=\"/system/\",\n assume_role_policy=instance_assume_role_policy.json)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance_assume_role_policy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var instance = new Aws.Iam.Role(\"instance\", new()\n {\n Path = \"/system/\",\n AssumeRolePolicy = instance_assume_role_policy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult).Apply(instance_assume_role_policy =\u003e instance_assume_role_policy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance_assume_role_policy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\tiam.GetPolicyDocumentStatement{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\tiam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.amazonaws.com\",\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}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"instance\", \u0026iam.RoleArgs{\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(instance_assume_role_policy.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var instance-assume-role-policy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var instance = new Role(\"instance\", RoleArgs.builder() \n .path(\"/system/\")\n .assumeRolePolicy(instance_assume_role_policy.json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: aws:iam:Role\n properties:\n path: /system/\n assumeRolePolicy: ${[\"instance-assume-role-policy\"].json}\nvariables:\n instance-assume-role-policy:\n Fn::Invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n```\n{{% /example %}}\n{{% example %}}\n### Example of Exclusive Inline Policies\n\nThis example creates an IAM role with two inline IAM policies. If someone adds another inline policy out-of-band, on the next apply, the provider will remove that policy. If someone deletes these policies out-of-band, the provider will recreate them.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst inlinePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"ec2:DescribeAccountAttributes\"],\n resources: [\"*\"],\n }],\n});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n inlinePolicies: [\n {\n name: \"my_inline_policy\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n },\n {\n name: \"policy-8675309\",\n policy: inlinePolicy.then(inlinePolicy =\u003e inlinePolicy.json),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ninline_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"ec2:DescribeAccountAttributes\"],\n resources=[\"*\"],\n)])\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n inline_policies=[\n aws.iam.RoleInlinePolicyArgs(\n name=\"my_inline_policy\",\n policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n }),\n ),\n aws.iam.RoleInlinePolicyArgs(\n name=\"policy-8675309\",\n policy=inline_policy.json,\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inlinePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"ec2:DescribeAccountAttributes\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"my_inline_policy\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"policy-8675309\",\n Policy = inlinePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinlinePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\tiam.GetPolicyDocumentStatement{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"ec2:DescribeAccountAttributes\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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}, 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\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"my_inline_policy\"),\n\t\t\t\t\tPolicy: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"policy-8675309\"),\n\t\t\t\t\tPolicy: pulumi.String(inlinePolicy.Json),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var inlinePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"ec2:DescribeAccountAttributes\")\n .resources(\"*\")\n .build())\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .inlinePolicies( \n RoleInlinePolicyArgs.builder()\n .name(\"my_inline_policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build(),\n RoleInlinePolicyArgs.builder()\n .name(\"policy-8675309\")\n .policy(inlinePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json} # (not shown)\n inlinePolicies:\n - name: my_inline_policy\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n - name: policy-8675309\n policy: ${inlinePolicy.json}\nvariables:\n inlinePolicy:\n Fn::Invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - ec2:DescribeAccountAttributes\n resources:\n - '*'\n```\n{{% /example %}}\n{{% example %}}\n### Example of Removing Inline Policies\n\nThis example creates an IAM role with what appears to be empty IAM `inline_policy` argument instead of using `inline_policy` as a configuration block. The result is that if someone were to add an inline policy out-of-band, on the next apply, the provider will remove that policy.\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n inlinePolicies: [{}],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n inline_policies=[aws.iam.RoleInlinePolicyArgs()])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n InlinePolicies = new[]\n {\n ,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\tnil,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .inlinePolicies()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json} # (not shown)\n inlinePolicies:\n - {}\n```\n{{% /example %}}\n{{% example %}}\n### Example of Exclusive Managed Policies\n\nThis example creates an IAM role and attaches two managed IAM policies. If someone attaches another managed policy out-of-band, on the next apply, the provider will detach that policy. If someone detaches these policies out-of-band, the provider will attach them again.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst policyOne = new aws.iam.Policy(\"policyOne\", {policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n})});\nconst policyTwo = new aws.iam.Policy(\"policyTwo\", {policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n})});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n managedPolicyArns: [\n policyOne.arn,\n policyTwo.arn,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy_one = aws.iam.Policy(\"policyOne\", policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n}))\npolicy_two = aws.iam.Policy(\"policyTwo\", policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n}))\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n managed_policy_arns=[\n policy_one.arn,\n policy_two.arn,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policyOne = new Aws.Iam.Policy(\"policyOne\", new()\n {\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n });\n\n var policyTwo = new Aws.Iam.Policy(\"policyTwo\", new()\n {\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n ManagedPolicyArns = new[]\n {\n policyOne.Arn,\n policyTwo.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson0 := string(tmpJSON0)\n\t\tpolicyOne, err := iam.NewPolicy(ctx, \"policyOne\", \u0026iam.PolicyArgs{\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"s3:ListAllMyBuckets\",\n\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\"s3:HeadBucket\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\tpolicyTwo, err := iam.NewPolicy(ctx, \"policyTwo\", \u0026iam.PolicyArgs{\n\t\t\tPolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpolicyOne.Arn,\n\t\t\t\tpolicyTwo.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policyOne = new Policy(\"policyOne\", PolicyArgs.builder() \n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n var policyTwo = new Policy(\"policyTwo\", PolicyArgs.builder() \n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"s3:ListAllMyBuckets\", \n \"s3:ListBucket\", \n \"s3:HeadBucket\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .managedPolicyArns( \n policyOne.arn(),\n policyTwo.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json}\n # (not shown)\n managedPolicyArns:\n - ${policyOne.arn}\n - ${policyTwo.arn}\n policyOne:\n type: aws:iam:Policy\n properties:\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n policyTwo:\n type: aws:iam:Policy\n properties:\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - s3:ListAllMyBuckets\n - s3:ListBucket\n - s3:HeadBucket\n Effect: Allow\n Resource: '*'\n```\n{{% /example %}}\n{{% example %}}\n### Example of Removing Managed Policies\n\nThis example creates an IAM role with an empty `managed_policy_arns` argument. If someone attaches a policy out-of-band, on the next apply, the provider will detach that policy.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n managedPolicyArns: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n managed_policy_arns=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n ManagedPolicyArns = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .managedPolicyArns()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json}\n # (not shown)\n managedPolicyArns: []\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM Roles can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:iam/role:Role developer developer_name\n```\n\n ",
+ "description": "Provides an IAM role.\n\n\u003e **NOTE:** If policies are attached to the role via the `aws.iam.PolicyAttachment` resource and you are modifying the role `name` or `path`, the `force_detach_policies` argument must be set to `true` and applied before attempting the operation otherwise you will encounter a `DeleteConflict` error. The `aws.iam.RolePolicyAttachment` resource does not have this requirement.\n\n\u003e **NOTE:** If you use this resource's `managed_policy_arns` argument or `inline_policy` configuration blocks, this resource will take over exclusive management of the role's respective policy types (e.g., both policy types if both arguments are used). These arguments are incompatible with other ways of managing a role's policies, such as `aws.iam.PolicyAttachment`, `aws.iam.RolePolicyAttachment`, and `aws.iam.RolePolicy`. If you attempt to manage a role's policies by multiple means, you will get resource cycling and/or errors.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testRole = new aws.iam.Role(\"testRole\", {\n assumeRolePolicy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: \"sts:AssumeRole\",\n Effect: \"Allow\",\n Sid: \"\",\n Principal: {\n Service: \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags: {\n \"tag-key\": \"tag-value\",\n },\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ntest_role = aws.iam.Role(\"testRole\",\n assume_role_policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": \"sts:AssumeRole\",\n \"Effect\": \"Allow\",\n \"Sid\": \"\",\n \"Principal\": {\n \"Service\": \"ec2.amazonaws.com\",\n },\n }],\n }),\n tags={\n \"tag-key\": \"tag-value\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testRole = new Aws.Iam.Role(\"testRole\", new()\n {\n AssumeRolePolicy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = \"sts:AssumeRole\",\n [\"Effect\"] = \"Allow\",\n [\"Sid\"] = \"\",\n [\"Principal\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"Service\"] = \"ec2.amazonaws.com\",\n },\n },\n },\n }),\n Tags = \n {\n { \"tag-key\", \"tag-value\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": \"sts:AssumeRole\",\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Sid\": \"\",\n\t\t\t\t\t\"Principal\": map[string]interface{}{\n\t\t\t\t\t\t\"Service\": \"ec2.amazonaws.com\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"testRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(json0),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"tag-key\": pulumi.String(\"tag-value\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testRole = new Role(\"testRole\", RoleArgs.builder() \n .assumeRolePolicy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", \"sts:AssumeRole\"),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Sid\", \"\"),\n jsonProperty(\"Principal\", jsonObject(\n jsonProperty(\"Service\", \"ec2.amazonaws.com\")\n ))\n )))\n )))\n .tags(Map.of(\"tag-key\", \"tag-value\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action: sts:AssumeRole\n Effect: Allow\n Sid:\n Principal:\n Service: ec2.amazonaws.com\n tags:\n tag-key: tag-value\n```\n{{% /example %}}\n{{% example %}}\n### Example of Using Data Source for Assume Role Policy\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst instance-assume-role-policy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"ec2.amazonaws.com\"],\n }],\n }],\n});\nconst instance = new aws.iam.Role(\"instance\", {\n path: \"/system/\",\n assumeRolePolicy: instance_assume_role_policy.then(instance_assume_role_policy =\u003e instance_assume_role_policy.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ninstance_assume_role_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"ec2.amazonaws.com\"],\n )],\n)])\ninstance = aws.iam.Role(\"instance\",\n path=\"/system/\",\n assume_role_policy=instance_assume_role_policy.json)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var instance_assume_role_policy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"sts:AssumeRole\",\n },\n Principals = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalInputArgs\n {\n Type = \"Service\",\n Identifiers = new[]\n {\n \"ec2.amazonaws.com\",\n },\n },\n },\n },\n },\n });\n\n var instance = new Aws.Iam.Role(\"instance\", new()\n {\n Path = \"/system/\",\n AssumeRolePolicy = instance_assume_role_policy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult).Apply(instance_assume_role_policy =\u003e instance_assume_role_policy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json)),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinstance_assume_role_policy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\tiam.GetPolicyDocumentStatement{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"sts:AssumeRole\",\n\t\t\t\t\t},\n\t\t\t\t\tPrincipals: []iam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\tiam.GetPolicyDocumentStatementPrincipal{\n\t\t\t\t\t\t\tType: \"Service\",\n\t\t\t\t\t\t\tIdentifiers: []string{\n\t\t\t\t\t\t\t\t\"ec2.amazonaws.com\",\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}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"instance\", \u0026iam.RoleArgs{\n\t\t\tPath: pulumi.String(\"/system/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(instance_assume_role_policy.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var instance-assume-role-policy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"sts:AssumeRole\")\n .principals(GetPolicyDocumentStatementPrincipalArgs.builder()\n .type(\"Service\")\n .identifiers(\"ec2.amazonaws.com\")\n .build())\n .build())\n .build());\n\n var instance = new Role(\"instance\", RoleArgs.builder() \n .path(\"/system/\")\n .assumeRolePolicy(instance_assume_role_policy.json())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n instance:\n type: aws:iam:Role\n properties:\n path: /system/\n assumeRolePolicy: ${[\"instance-assume-role-policy\"].json}\nvariables:\n instance-assume-role-policy:\n Fn::Invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - sts:AssumeRole\n principals:\n - type: Service\n identifiers:\n - ec2.amazonaws.com\n```\n{{% /example %}}\n{{% example %}}\n### Example of Exclusive Inline Policies\n\nThis example creates an IAM role with two inline IAM policies. If someone adds another inline policy out-of-band, on the next apply, the provider will remove that policy. If someone deletes these policies out-of-band, the provider will recreate them.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst inlinePolicy = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"ec2:DescribeAccountAttributes\"],\n resources: [\"*\"],\n }],\n});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n inlinePolicies: [\n {\n name: \"my_inline_policy\",\n policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n }),\n },\n {\n name: \"policy-8675309\",\n policy: inlinePolicy.then(inlinePolicy =\u003e inlinePolicy.json),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\ninline_policy = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"ec2:DescribeAccountAttributes\"],\n resources=[\"*\"],\n)])\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n inline_policies=[\n aws.iam.RoleInlinePolicyArgs(\n name=\"my_inline_policy\",\n policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n }),\n ),\n aws.iam.RoleInlinePolicyArgs(\n name=\"policy-8675309\",\n policy=inline_policy.json,\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var inlinePolicy = Aws.Iam.GetPolicyDocument.Invoke(new()\n {\n Statements = new[]\n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementInputArgs\n {\n Actions = new[]\n {\n \"ec2:DescribeAccountAttributes\",\n },\n Resources = new[]\n {\n \"*\",\n },\n },\n },\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n InlinePolicies = new[]\n {\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"my_inline_policy\",\n Policy = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n },\n new Aws.Iam.Inputs.RoleInlinePolicyArgs\n {\n Name = \"policy-8675309\",\n Policy = inlinePolicy.Apply(getPolicyDocumentResult =\u003e getPolicyDocumentResult.Json),\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/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tinlinePolicy, err := iam.GetPolicyDocument(ctx, \u0026iam.GetPolicyDocumentArgs{\n\t\t\tStatements: []iam.GetPolicyDocumentStatement{\n\t\t\t\tiam.GetPolicyDocumentStatement{\n\t\t\t\t\tActions: []string{\n\t\t\t\t\t\t\"ec2:DescribeAccountAttributes\",\n\t\t\t\t\t},\n\t\t\t\t\tResources: []string{\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}, 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\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson0 := string(tmpJSON0)\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"my_inline_policy\"),\n\t\t\t\t\tPolicy: pulumi.String(json0),\n\t\t\t\t},\n\t\t\t\t\u0026iam.RoleInlinePolicyArgs{\n\t\t\t\t\tName: pulumi.String(\"policy-8675309\"),\n\t\t\t\t\tPolicy: pulumi.String(inlinePolicy.Json),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.IamFunctions;\nimport com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var inlinePolicy = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder()\n .statements(GetPolicyDocumentStatementArgs.builder()\n .actions(\"ec2:DescribeAccountAttributes\")\n .resources(\"*\")\n .build())\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .inlinePolicies( \n RoleInlinePolicyArgs.builder()\n .name(\"my_inline_policy\")\n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build(),\n RoleInlinePolicyArgs.builder()\n .name(\"policy-8675309\")\n .policy(inlinePolicy.applyValue(getPolicyDocumentResult -\u003e getPolicyDocumentResult.json()))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json} # (not shown)\n inlinePolicies:\n - name: my_inline_policy\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n - name: policy-8675309\n policy: ${inlinePolicy.json}\nvariables:\n inlinePolicy:\n Fn::Invoke:\n Function: aws:iam:getPolicyDocument\n Arguments:\n statements:\n - actions:\n - ec2:DescribeAccountAttributes\n resources:\n - '*'\n```\n{{% /example %}}\n{{% example %}}\n### Example of Removing Inline Policies\n\nThis example creates an IAM role with what appears to be empty IAM `inline_policy` argument instead of using `inline_policy` as a configuration block. The result is that if someone were to add an inline policy out-of-band, on the next apply, the provider will remove that policy.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n inlinePolicies: [{}],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n inline_policies=[aws.iam.RoleInlinePolicyArgs()])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n InlinePolicies = new[]\n {\n ,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tInlinePolicies: iam.RoleInlinePolicyArray{\n\t\t\t\tnil,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.inputs.RoleInlinePolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .inlinePolicies()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json} # (not shown)\n inlinePolicies:\n - {}\n```\n{{% /example %}}\n{{% example %}}\n### Example of Exclusive Managed Policies\n\nThis example creates an IAM role and attaches two managed IAM policies. If someone attaches another managed policy out-of-band, on the next apply, the provider will detach that policy. If someone detaches these policies out-of-band, the provider will attach them again.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst policyOne = new aws.iam.Policy(\"policyOne\", {policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\"ec2:Describe*\"],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n})});\nconst policyTwo = new aws.iam.Policy(\"policyTwo\", {policy: JSON.stringify({\n Version: \"2012-10-17\",\n Statement: [{\n Action: [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n Effect: \"Allow\",\n Resource: \"*\",\n }],\n})});\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n managedPolicyArns: [\n policyOne.arn,\n policyTwo.arn,\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_aws as aws\n\npolicy_one = aws.iam.Policy(\"policyOne\", policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\"ec2:Describe*\"],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n}))\npolicy_two = aws.iam.Policy(\"policyTwo\", policy=json.dumps({\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Action\": [\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n ],\n \"Effect\": \"Allow\",\n \"Resource\": \"*\",\n }],\n}))\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n managed_policy_arns=[\n policy_one.arn,\n policy_two.arn,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Text.Json;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policyOne = new Aws.Iam.Policy(\"policyOne\", new()\n {\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"ec2:Describe*\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n });\n\n var policyTwo = new Aws.Iam.Policy(\"policyTwo\", new()\n {\n PolicyDocument = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"Version\"] = \"2012-10-17\",\n [\"Statement\"] = new[]\n {\n new Dictionary\u003cstring, object?\u003e\n {\n [\"Action\"] = new[]\n {\n \"s3:ListAllMyBuckets\",\n \"s3:ListBucket\",\n \"s3:HeadBucket\",\n },\n [\"Effect\"] = \"Allow\",\n [\"Resource\"] = \"*\",\n },\n },\n }),\n });\n\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n ManagedPolicyArns = new[]\n {\n policyOne.Arn,\n policyTwo.Arn,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"ec2:Describe*\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson0 := string(tmpJSON0)\n\t\tpolicyOne, err := iam.NewPolicy(ctx, \"policyOne\", \u0026iam.PolicyArgs{\n\t\t\tPolicy: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON1, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Version\": \"2012-10-17\",\n\t\t\t\"Statement\": []map[string]interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"Action\": []string{\n\t\t\t\t\t\t\"s3:ListAllMyBuckets\",\n\t\t\t\t\t\t\"s3:ListBucket\",\n\t\t\t\t\t\t\"s3:HeadBucket\",\n\t\t\t\t\t},\n\t\t\t\t\t\"Effect\": \"Allow\",\n\t\t\t\t\t\"Resource\": \"*\",\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\tjson1 := string(tmpJSON1)\n\t\tpolicyTwo, err := iam.NewPolicy(ctx, \"policyTwo\", \u0026iam.PolicyArgs{\n\t\t\tPolicy: pulumi.String(json1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{\n\t\t\t\tpolicyOne.Arn,\n\t\t\t\tpolicyTwo.Arn,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Policy;\nimport com.pulumi.aws.iam.PolicyArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policyOne = new Policy(\"policyOne\", PolicyArgs.builder() \n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\"ec2:Describe*\")),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n var policyTwo = new Policy(\"policyTwo\", PolicyArgs.builder() \n .policy(serializeJson(\n jsonObject(\n jsonProperty(\"Version\", \"2012-10-17\"),\n jsonProperty(\"Statement\", jsonArray(jsonObject(\n jsonProperty(\"Action\", jsonArray(\n \"s3:ListAllMyBuckets\", \n \"s3:ListBucket\", \n \"s3:HeadBucket\"\n )),\n jsonProperty(\"Effect\", \"Allow\"),\n jsonProperty(\"Resource\", \"*\")\n )))\n )))\n .build());\n\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .managedPolicyArns( \n policyOne.arn(),\n policyTwo.arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json}\n # (not shown)\n managedPolicyArns:\n - ${policyOne.arn}\n - ${policyTwo.arn}\n policyOne:\n type: aws:iam:Policy\n properties:\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - ec2:Describe*\n Effect: Allow\n Resource: '*'\n policyTwo:\n type: aws:iam:Policy\n properties:\n policy:\n Fn::ToJSON:\n Version: 2012-10-17\n Statement:\n - Action:\n - s3:ListAllMyBuckets\n - s3:ListBucket\n - s3:HeadBucket\n Effect: Allow\n Resource: '*'\n```\n{{% /example %}}\n{{% example %}}\n### Example of Removing Managed Policies\n\nThis example creates an IAM role with an empty `managed_policy_arns` argument. If someone attaches a policy out-of-band, on the next apply, the provider will detach that policy.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.iam.Role(\"example\", {\n assumeRolePolicy: data.aws_iam_policy_document.instance_assume_role_policy.json,\n managedPolicyArns: [],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.iam.Role(\"example\",\n assume_role_policy=data[\"aws_iam_policy_document\"][\"instance_assume_role_policy\"][\"json\"],\n managed_policy_arns=[])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Iam.Role(\"example\", new()\n {\n AssumeRolePolicy = data.Aws_iam_policy_document.Instance_assume_role_policy.Json,\n ManagedPolicyArns = new[] {},\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := iam.NewRole(ctx, \"example\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.Any(data.Aws_iam_policy_document.Instance_assume_role_policy.Json),\n\t\t\tManagedPolicyArns: pulumi.StringArray{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Role(\"example\", RoleArgs.builder() \n .assumeRolePolicy(data.aws_iam_policy_document().instance_assume_role_policy().json())\n .managedPolicyArns()\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: ${data.aws_iam_policy_document.instance_assume_role_policy.json}\n # (not shown)\n managedPolicyArns: []\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nIAM Roles can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:iam/role:Role developer developer_name\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -468242,7 +471784,7 @@
},
"identityStoreId": {
"type": "string",
- "description": "The globally unique identifier for the identity store..\n"
+ "description": "The globally unique identifier for the identity store.\n"
}
},
"required": [
@@ -468263,7 +471805,7 @@
},
"identityStoreId": {
"type": "string",
- "description": "The globally unique identifier for the identity store..\n",
+ "description": "The globally unique identifier for the identity store.\n",
"willReplaceOnChanges": true
}
},
@@ -468296,7 +471838,7 @@
},
"identityStoreId": {
"type": "string",
- "description": "The globally unique identifier for the identity store..\n",
+ "description": "The globally unique identifier for the identity store.\n",
"willReplaceOnChanges": true
}
},
@@ -470454,6 +473996,48 @@
"type": "object"
}
},
+ "aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount": {
+ "description": "{{% 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 current = aws.getCallerIdentity({});\nconst example = new aws.inspector2.DelegatedAdminAccount(\"example\", {accountId: current.then(current =\u003e current.accountId)});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\nexample = aws.inspector2.DelegatedAdminAccount(\"example\", account_id=current.account_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.Inspector2.DelegatedAdminAccount(\"example\", new()\n {\n AccountId = current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/inspector2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = inspector2.NewDelegatedAdminAccount(ctx, \"example\", \u0026inspector2.DelegatedAdminAccountArgs{\n\t\t\tAccountId: pulumi.String(current.AccountId),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inspector2.DelegatedAdminAccount;\nimport com.pulumi.aws.inspector2.DelegatedAdminAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n var example = new DelegatedAdminAccount(\"example\", DelegatedAdminAccountArgs.builder() \n .accountId(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:inspector2:DelegatedAdminAccount\n properties:\n accountId: ${current.accountId}\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInspector V2 Delegated Admin Account can be imported using the `account_id`, e.g.,\n\n```sh\n $ pulumi import aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount example 012345678901\n```\n\n ",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "Account to enable as delegated admin account.\n"
+ },
+ "relationshipStatus": {
+ "type": "string",
+ "description": "Status of this delegated admin account.\n"
+ }
+ },
+ "required": [
+ "accountId",
+ "relationshipStatus"
+ ],
+ "inputProperties": {
+ "accountId": {
+ "type": "string",
+ "description": "Account to enable as delegated admin account.\n",
+ "willReplaceOnChanges": true
+ }
+ },
+ "requiredInputs": [
+ "accountId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering DelegatedAdminAccount resources.\n",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "Account to enable as delegated admin account.\n",
+ "willReplaceOnChanges": true
+ },
+ "relationshipStatus": {
+ "type": "string",
+ "description": "Status of this delegated admin account.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:inspector2/organizationConfiguration:OrganizationConfiguration": {
"description": "{{% 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.inspector2.OrganizationConfiguration(\"example\", {\n autoEnable: {\n ec2: true,\n ecr: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.inspector2.OrganizationConfiguration(\"example\", auto_enable=aws.inspector2.OrganizationConfigurationAutoEnableArgs(\n ec2=True,\n ecr=False,\n))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Inspector2.OrganizationConfiguration(\"example\", new()\n {\n AutoEnable = new Aws.Inspector2.Inputs.OrganizationConfigurationAutoEnableArgs\n {\n Ec2 = true,\n Ecr = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/inspector2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := inspector2.NewOrganizationConfiguration(ctx, \"example\", \u0026inspector2.OrganizationConfigurationArgs{\n\t\t\tAutoEnable: \u0026inspector2.OrganizationConfigurationAutoEnableArgs{\n\t\t\t\tEc2: pulumi.Bool(true),\n\t\t\t\tEcr: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.inspector2.OrganizationConfiguration;\nimport com.pulumi.aws.inspector2.OrganizationConfigurationArgs;\nimport com.pulumi.aws.inspector2.inputs.OrganizationConfigurationAutoEnableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OrganizationConfiguration(\"example\", OrganizationConfigurationArgs.builder() \n .autoEnable(OrganizationConfigurationAutoEnableArgs.builder()\n .ec2(true)\n .ecr(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:inspector2:OrganizationConfiguration\n properties:\n autoEnable:\n ec2: true\n ecr: false\n```\n{{% /example %}}\n{{% /examples %}}",
"properties": {
@@ -480554,7 +484138,7 @@
}
},
"aws:lightsail/database:Database": {
- "description": "Provides a Lightsail Database. Amazon Lightsail is a service to provide easy virtual private servers\nwith custom software already setup. See [What is Amazon Lightsail?](https://lightsail.aws.amazon.com/ls/docs/getting-started/article/what-is-amazon-lightsail)\nfor more information.\n\n\u003e **Note:** Lightsail is currently only supported in a limited number of AWS Regions, please see [\"Regions and Availability Zones\"](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) for more details\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic mysql blueprint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"mysql_8_0\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"mysql_8_0\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: mysql_8_0\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n{{% /example %}}\n{{% example %}}\n### Basic postrgres blueprint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n{{% /example %}}\n{{% example %}}\n### Custom backup and maintenance windows\n\nBelow is an example that sets a custom backup and maintenance window. Times are specified in UTC. This example will allow daily backups to take place between 16:00 and 16:30 each day. This example also requires any maintiance tasks (anything that would cause an outage, including changing some attributes) to take place on Tuesdays between 17:00 and 17:30. An action taken against this database that would cause an outage will wait until this time window to make the requested changes.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n preferredBackupWindow: \"16:00-16:30\",\n preferredMaintenanceWindow: \"Tue:17:00-Tue:17:30\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .preferredBackupWindow(\"16:00-16:30\")\n .preferredMaintenanceWindow(\"Tue:17:00-Tue:17:30\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n preferredBackupWindow: 16:00-16:30\n preferredMaintenanceWindow: Tue:17:00-Tue:17:30\n```\n{{% /example %}}\n{{% example %}}\n### Final Snapshots\n\nTo enable creating a final snapshot of your database on deletion, use the `final_snapshot_name` argument to provide a name to be used for the snapshot.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n finalSnapshotName: \"MyFinalSnapshot\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n preferredBackupWindow: \"16:00-16:30\",\n preferredMaintenanceWindow: \"Tue:17:00-Tue:17:30\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .finalSnapshotName(\"MyFinalSnapshot\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .preferredBackupWindow(\"16:00-16:30\")\n .preferredMaintenanceWindow(\"Tue:17:00-Tue:17:30\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n finalSnapshotName: MyFinalSnapshot\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n preferredBackupWindow: 16:00-16:30\n preferredMaintenanceWindow: Tue:17:00-Tue:17:30\n```\n{{% /example %}}\n{{% example %}}\n### Apply Immediately\n\nTo enable applying changes immediately instead of waiting for a maintiance window, use the `apply_immediately` argument.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n applyImmediately: true,\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .applyImmediately(true)\n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n applyImmediately: true\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n\n{{% /example %}}\n{{% /examples %}}\n## Blueprint Ids\n\nA list of all available Lightsail Blueprints for Relational Databases the [aws lightsail get-relational-database-blueprints](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-relational-database-blueprints.html) aws cli command.\n\n### Examples\n\n- `mysql_8_0`\n- `postgres_12`\n\n### Prefix\n\nA Blueprint ID starts with a prefix of the engine type.\n\n### Suffix\n\nA Blueprint ID has a sufix of the engine version.\n\n\n## Bundles\n\nA list of all available Lightsail Bundles for Relational Databases the [aws lightsail get-relational-database-bundles](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-relational-database-bundles.html) aws cli command.\n\n### Examples\n\n- `small_1_0`\n- `small_ha_1_0`\n- `large_1_0`\n- `large_ha_1_0`\n\n### Prefix\n\nA Bundle ID starts with one of the below size prefixes:\n\n- `micro_`\n- `small_`\n- `medium_`\n- `large_`\n\n### Infixes (Optional for HA Database)\n\nA Bundle Id can have the following infix added in order to use the HA option of the selected bundle.\n\n- `ha_`\n\n### Suffix\n\nA Bundle ID ends with one of the following suffix: `1_0`\n\n\n## Import\n\nLightsail Databases can be imported using their name, e.g.\n\n```sh\n $ pulumi import aws:lightsail/database:Database foo 'bar'\n```\n\n ",
+ "description": "Provides a Lightsail Database. Amazon Lightsail is a service to provide easy virtual private servers\nwith custom software already setup. See [What is Amazon Lightsail?](https://lightsail.aws.amazon.com/ls/docs/getting-started/article/what-is-amazon-lightsail)\nfor more information.\n\n\u003e **Note:** Lightsail is currently only supported in a limited number of AWS Regions, please see [\"Regions and Availability Zones\"](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/) for more details\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic mysql blueprint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"mysql_8_0\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"mysql_8_0\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: mysql_8_0\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n{{% /example %}}\n{{% example %}}\n### Basic postrgres blueprint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n{{% /example %}}\n{{% example %}}\n### Custom backup and maintenance windows\n\nBelow is an example that sets a custom backup and maintenance window. Times are specified in UTC. This example will allow daily backups to take place between 16:00 and 16:30 each day. This example also requires any maintiance tasks (anything that would cause an outage, including changing some attributes) to take place on Tuesdays between 17:00 and 17:30. An action taken against this database that would cause an outage will wait until this time window to make the requested changes.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n preferredBackupWindow: \"16:00-16:30\",\n preferredMaintenanceWindow: \"Tue:17:00-Tue:17:30\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .preferredBackupWindow(\"16:00-16:30\")\n .preferredMaintenanceWindow(\"Tue:17:00-Tue:17:30\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n preferredBackupWindow: 16:00-16:30\n preferredMaintenanceWindow: Tue:17:00-Tue:17:30\n```\n{{% /example %}}\n{{% example %}}\n### Final Snapshots\n\nTo enable creating a final snapshot of your database on deletion, use the `final_snapshot_name` argument to provide a name to be used for the snapshot.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n finalSnapshotName: \"MyFinalSnapshot\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n preferredBackupWindow: \"16:00-16:30\",\n preferredMaintenanceWindow: \"Tue:17:00-Tue:17:30\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .finalSnapshotName(\"MyFinalSnapshot\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .preferredBackupWindow(\"16:00-16:30\")\n .preferredMaintenanceWindow(\"Tue:17:00-Tue:17:30\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n finalSnapshotName: MyFinalSnapshot\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n preferredBackupWindow: 16:00-16:30\n preferredMaintenanceWindow: Tue:17:00-Tue:17:30\n```\n{{% /example %}}\n{{% example %}}\n### Apply Immediately\n\nTo enable applying changes immediately instead of waiting for a maintiance window, use the `apply_immediately` argument.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = new aws.lightsail.Database(\"test\", {\n applyImmediately: true,\n availabilityZone: \"us-east-1a\",\n blueprintId: \"postgres_12\",\n bundleId: \"micro_1_0\",\n masterDatabaseName: \"testdatabasename\",\n masterPassword: \"testdatabasepassword\",\n masterUsername: \"test\",\n name: \"test\",\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.lightsail.Database;\nimport com.pulumi.aws.lightsail.DatabaseArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var test = new Database(\"test\", DatabaseArgs.builder() \n .applyImmediately(true)\n .availabilityZone(\"us-east-1a\")\n .blueprintId(\"postgres_12\")\n .bundleId(\"micro_1_0\")\n .masterDatabaseName(\"testdatabasename\")\n .masterPassword(\"testdatabasepassword\")\n .masterUsername(\"test\")\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n test:\n type: aws:lightsail:Database\n properties:\n applyImmediately: true\n availabilityZone: us-east-1a\n blueprintId: postgres_12\n bundleId: micro_1_0\n masterDatabaseName: testdatabasename\n masterPassword: testdatabasepassword\n masterUsername: test\n name: test\n```\n{{% /example %}}\n{{% /examples %}}\n## Blueprint Ids\n\nA list of all available Lightsail Blueprints for Relational Databases the [aws lightsail get-relational-database-blueprints](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-relational-database-blueprints.html) aws cli command.\n\n### Examples\n\n- `mysql_8_0`\n- `postgres_12`\n\n### Prefix\n\nA Blueprint ID starts with a prefix of the engine type.\n\n### Suffix\n\nA Blueprint ID has a sufix of the engine version.\n\n## Bundles\n\nA list of all available Lightsail Bundles for Relational Databases the [aws lightsail get-relational-database-bundles](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-relational-database-bundles.html) aws cli command.\n\n### Examples\n\n- `small_1_0`\n- `small_ha_1_0`\n- `large_1_0`\n- `large_ha_1_0`\n\n### Prefix\n\nA Bundle ID starts with one of the below size prefixes:\n\n- `micro_`\n- `small_`\n- `medium_`\n- `large_`\n\n### Infixes (Optional for HA Database)\n\nA Bundle Id can have the following infix added in order to use the HA option of the selected bundle.\n\n- `ha_`\n\n### Suffix\n\nA Bundle ID ends with one of the following suffix: `1_0`\n\n\n## Import\n\nLightsail Databases can be imported using their name, e.g.\n\n```sh\n $ pulumi import aws:lightsail/database:Database foo 'bar'\n```\n\n ",
"properties": {
"applyImmediately": {
"type": "boolean",
@@ -485087,7 +488671,7 @@
}
},
"aws:mq/broker:Broker": {
- "description": "Provides an Amazon MQ broker resource. This resources also manages users for the broker.\n\n\u003e For more information on Amazon MQ, see [Amazon MQ documentation](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html).\n\n\u003e **NOTE:** Amazon MQ currently places limits on **RabbitMQ** brokers. For example, a RabbitMQ broker cannot have: instances with an associated IP address of an ENI attached to the broker, an associated LDAP server to authenticate and authorize broker connections, storage type `EFS`, audit logging, or `configuration` blocks. Although this resource allows you to create RabbitMQ users, RabbitMQ users cannot have console access or groups. Also, Amazon MQ does not return information about RabbitMQ users so drift detection is not possible.\n\n\u003e **NOTE:** Changes to an MQ Broker can occur when you change a parameter, such as `configuration` or `user`, and are reflected in the next maintenance window. Because of this, the provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `apply_immediately` flag to instruct the service to apply the change immediately (see documentation below). Using `apply_immediately` can result in a brief downtime as the broker reboots.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.mq.Broker(\"example\", {\n configuration: {\n id: aws_mq_configuration.test.id,\n revision: aws_mq_configuration.test.latest_revision,\n },\n engineType: \"ActiveMQ\",\n engineVersion: \"5.15.9\",\n hostInstanceType: \"mq.t2.micro\",\n securityGroups: [aws_security_group.test.id],\n users: [{\n username: \"ExampleUser\",\n password: \"MindTheGap\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.mq.Broker(\"example\",\n configuration=aws.mq.BrokerConfigurationArgs(\n id=aws_mq_configuration[\"test\"][\"id\"],\n revision=aws_mq_configuration[\"test\"][\"latest_revision\"],\n ),\n engine_type=\"ActiveMQ\",\n engine_version=\"5.15.9\",\n host_instance_type=\"mq.t2.micro\",\n security_groups=[aws_security_group[\"test\"][\"id\"]],\n users=[aws.mq.BrokerUserArgs(\n username=\"ExampleUser\",\n password=\"MindTheGap\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Mq.Broker(\"example\", new()\n {\n Configuration = new Aws.Mq.Inputs.BrokerConfigurationArgs\n {\n Id = aws_mq_configuration.Test.Id,\n Revision = aws_mq_configuration.Test.Latest_revision,\n },\n EngineType = \"ActiveMQ\",\n EngineVersion = \"5.15.9\",\n HostInstanceType = \"mq.t2.micro\",\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n Users = new[]\n {\n new Aws.Mq.Inputs.BrokerUserArgs\n {\n Username = \"ExampleUser\",\n Password = \"MindTheGap\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/mq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mq.NewBroker(ctx, \"example\", \u0026mq.BrokerArgs{\n\t\t\tConfiguration: \u0026mq.BrokerConfigurationArgs{\n\t\t\t\tId: pulumi.Any(aws_mq_configuration.Test.Id),\n\t\t\t\tRevision: pulumi.Any(aws_mq_configuration.Test.Latest_revision),\n\t\t\t},\n\t\t\tEngineType: pulumi.String(\"ActiveMQ\"),\n\t\t\tEngineVersion: pulumi.String(\"5.15.9\"),\n\t\t\tHostInstanceType: pulumi.String(\"mq.t2.micro\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_security_group.Test.Id),\n\t\t\t},\n\t\t\tUsers: mq.BrokerUserArray{\n\t\t\t\t\u0026mq.BrokerUserArgs{\n\t\t\t\t\tUsername: pulumi.String(\"ExampleUser\"),\n\t\t\t\t\tPassword: pulumi.String(\"MindTheGap\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.mq.Broker;\nimport com.pulumi.aws.mq.BrokerArgs;\nimport com.pulumi.aws.mq.inputs.BrokerConfigurationArgs;\nimport com.pulumi.aws.mq.inputs.BrokerUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Broker(\"example\", BrokerArgs.builder() \n .configuration(BrokerConfigurationArgs.builder()\n .id(aws_mq_configuration.test().id())\n .revision(aws_mq_configuration.test().latest_revision())\n .build())\n .engineType(\"ActiveMQ\")\n .engineVersion(\"5.15.9\")\n .hostInstanceType(\"mq.t2.micro\")\n .securityGroups(aws_security_group.test().id())\n .users(BrokerUserArgs.builder()\n .username(\"ExampleUser\")\n .password(\"MindTheGap\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:mq:Broker\n properties:\n configuration:\n id: ${aws_mq_configuration.test.id}\n revision: ${aws_mq_configuration.test.latest_revision}\n engineType: ActiveMQ\n engineVersion: 5.15.9\n hostInstanceType: mq.t2.micro\n securityGroups:\n - ${aws_security_group.test.id}\n users:\n - username: ExampleUser\n password: MindTheGap\n```\n{{% /example %}}\n{{% example %}}\n### High-throughput Optimized Example\n\nThis example shows the use of EBS storage for high-throughput optimized performance.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.mq.Broker(\"example\", {\n configuration: {\n id: aws_mq_configuration.test.id,\n revision: aws_mq_configuration.test.latest_revision,\n },\n engineType: \"ActiveMQ\",\n engineVersion: \"5.15.9\",\n storageType: \"ebs\",\n hostInstanceType: \"mq.m5.large\",\n securityGroups: [aws_security_group.test.id],\n users: [{\n username: \"ExampleUser\",\n password: \"MindTheGap\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.mq.Broker(\"example\",\n configuration=aws.mq.BrokerConfigurationArgs(\n id=aws_mq_configuration[\"test\"][\"id\"],\n revision=aws_mq_configuration[\"test\"][\"latest_revision\"],\n ),\n engine_type=\"ActiveMQ\",\n engine_version=\"5.15.9\",\n storage_type=\"ebs\",\n host_instance_type=\"mq.m5.large\",\n security_groups=[aws_security_group[\"test\"][\"id\"]],\n users=[aws.mq.BrokerUserArgs(\n username=\"ExampleUser\",\n password=\"MindTheGap\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Mq.Broker(\"example\", new()\n {\n Configuration = new Aws.Mq.Inputs.BrokerConfigurationArgs\n {\n Id = aws_mq_configuration.Test.Id,\n Revision = aws_mq_configuration.Test.Latest_revision,\n },\n EngineType = \"ActiveMQ\",\n EngineVersion = \"5.15.9\",\n StorageType = \"ebs\",\n HostInstanceType = \"mq.m5.large\",\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n Users = new[]\n {\n new Aws.Mq.Inputs.BrokerUserArgs\n {\n Username = \"ExampleUser\",\n Password = \"MindTheGap\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/mq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mq.NewBroker(ctx, \"example\", \u0026mq.BrokerArgs{\n\t\t\tConfiguration: \u0026mq.BrokerConfigurationArgs{\n\t\t\t\tId: pulumi.Any(aws_mq_configuration.Test.Id),\n\t\t\t\tRevision: pulumi.Any(aws_mq_configuration.Test.Latest_revision),\n\t\t\t},\n\t\t\tEngineType: pulumi.String(\"ActiveMQ\"),\n\t\t\tEngineVersion: pulumi.String(\"5.15.9\"),\n\t\t\tStorageType: pulumi.String(\"ebs\"),\n\t\t\tHostInstanceType: pulumi.String(\"mq.m5.large\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_security_group.Test.Id),\n\t\t\t},\n\t\t\tUsers: mq.BrokerUserArray{\n\t\t\t\t\u0026mq.BrokerUserArgs{\n\t\t\t\t\tUsername: pulumi.String(\"ExampleUser\"),\n\t\t\t\t\tPassword: pulumi.String(\"MindTheGap\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.mq.Broker;\nimport com.pulumi.aws.mq.BrokerArgs;\nimport com.pulumi.aws.mq.inputs.BrokerConfigurationArgs;\nimport com.pulumi.aws.mq.inputs.BrokerUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Broker(\"example\", BrokerArgs.builder() \n .configuration(BrokerConfigurationArgs.builder()\n .id(aws_mq_configuration.test().id())\n .revision(aws_mq_configuration.test().latest_revision())\n .build())\n .engineType(\"ActiveMQ\")\n .engineVersion(\"5.15.9\")\n .storageType(\"ebs\")\n .hostInstanceType(\"mq.m5.large\")\n .securityGroups(aws_security_group.test().id())\n .users(BrokerUserArgs.builder()\n .username(\"ExampleUser\")\n .password(\"MindTheGap\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:mq:Broker\n properties:\n configuration:\n id: ${aws_mq_configuration.test.id}\n revision: ${aws_mq_configuration.test.latest_revision}\n engineType: ActiveMQ\n engineVersion: 5.15.9\n storageType: ebs\n hostInstanceType: mq.m5.large\n securityGroups:\n - ${aws_security_group.test.id}\n users:\n - username: ExampleUser\n password: MindTheGap\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMQ Brokers can be imported using their broker id, e.g.,\n\n```sh\n $ pulumi import aws:mq/broker:Broker example a1b2c3d4-d5f6-7777-8888-9999aaaabbbbcccc\n```\n\n ",
+ "description": "Provides an Amazon MQ broker resource. This resources also manages users for the broker.\n\n\u003e For more information on Amazon MQ, see [Amazon MQ documentation](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/welcome.html).\n\n\u003e **NOTE:** Amazon MQ currently places limits on **RabbitMQ** brokers. For example, a RabbitMQ broker cannot have: instances with an associated IP address of an ENI attached to the broker, an associated LDAP server to authenticate and authorize broker connections, storage type `EFS`, audit logging, or `configuration` blocks. Although this resource allows you to create RabbitMQ users, RabbitMQ users cannot have console access or groups. Also, Amazon MQ does not return information about RabbitMQ users so drift detection is not possible.\n\n\u003e **NOTE:** Changes to an MQ Broker can occur when you change a parameter, such as `configuration` or `user`, and are reflected in the next maintenance window. Because of this, the provider may report a difference in its planning phase because a modification has not yet taken place. You can use the `apply_immediately` flag to instruct the service to apply the change immediately (see documentation below). Using `apply_immediately` can result in a brief downtime as the broker reboots.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.mq.Broker(\"example\", {\n configuration: {\n id: aws_mq_configuration.test.id,\n revision: aws_mq_configuration.test.latest_revision,\n },\n engineType: \"ActiveMQ\",\n engineVersion: \"5.15.9\",\n hostInstanceType: \"mq.t2.micro\",\n securityGroups: [aws_security_group.test.id],\n users: [{\n username: \"ExampleUser\",\n password: \"MindTheGap\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.mq.Broker(\"example\",\n configuration=aws.mq.BrokerConfigurationArgs(\n id=aws_mq_configuration[\"test\"][\"id\"],\n revision=aws_mq_configuration[\"test\"][\"latest_revision\"],\n ),\n engine_type=\"ActiveMQ\",\n engine_version=\"5.15.9\",\n host_instance_type=\"mq.t2.micro\",\n security_groups=[aws_security_group[\"test\"][\"id\"]],\n users=[aws.mq.BrokerUserArgs(\n username=\"ExampleUser\",\n password=\"MindTheGap\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Mq.Broker(\"example\", new()\n {\n Configuration = new Aws.Mq.Inputs.BrokerConfigurationArgs\n {\n Id = aws_mq_configuration.Test.Id,\n Revision = aws_mq_configuration.Test.Latest_revision,\n },\n EngineType = \"ActiveMQ\",\n EngineVersion = \"5.15.9\",\n HostInstanceType = \"mq.t2.micro\",\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n Users = new[]\n {\n new Aws.Mq.Inputs.BrokerUserArgs\n {\n Username = \"ExampleUser\",\n Password = \"MindTheGap\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/mq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mq.NewBroker(ctx, \"example\", \u0026mq.BrokerArgs{\n\t\t\tConfiguration: \u0026mq.BrokerConfigurationArgs{\n\t\t\t\tId: pulumi.Any(aws_mq_configuration.Test.Id),\n\t\t\t\tRevision: pulumi.Any(aws_mq_configuration.Test.Latest_revision),\n\t\t\t},\n\t\t\tEngineType: pulumi.String(\"ActiveMQ\"),\n\t\t\tEngineVersion: pulumi.String(\"5.15.9\"),\n\t\t\tHostInstanceType: pulumi.String(\"mq.t2.micro\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_security_group.Test.Id),\n\t\t\t},\n\t\t\tUsers: mq.BrokerUserArray{\n\t\t\t\t\u0026mq.BrokerUserArgs{\n\t\t\t\t\tUsername: pulumi.String(\"ExampleUser\"),\n\t\t\t\t\tPassword: pulumi.String(\"MindTheGap\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.mq.Broker;\nimport com.pulumi.aws.mq.BrokerArgs;\nimport com.pulumi.aws.mq.inputs.BrokerConfigurationArgs;\nimport com.pulumi.aws.mq.inputs.BrokerUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Broker(\"example\", BrokerArgs.builder() \n .configuration(BrokerConfigurationArgs.builder()\n .id(aws_mq_configuration.test().id())\n .revision(aws_mq_configuration.test().latest_revision())\n .build())\n .engineType(\"ActiveMQ\")\n .engineVersion(\"5.15.9\")\n .hostInstanceType(\"mq.t2.micro\")\n .securityGroups(aws_security_group.test().id())\n .users(BrokerUserArgs.builder()\n .username(\"ExampleUser\")\n .password(\"MindTheGap\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:mq:Broker\n properties:\n configuration:\n id: ${aws_mq_configuration.test.id}\n revision: ${aws_mq_configuration.test.latest_revision}\n engineType: ActiveMQ\n engineVersion: 5.15.9\n hostInstanceType: mq.t2.micro\n securityGroups:\n - ${aws_security_group.test.id}\n users:\n - username: ExampleUser\n password: MindTheGap\n```\n{{% /example %}}\n{{% example %}}\n### High-throughput Optimized Example\n\nThis example shows the use of EBS storage for high-throughput optimized performance.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.mq.Broker(\"example\", {\n configuration: {\n id: aws_mq_configuration.test.id,\n revision: aws_mq_configuration.test.latest_revision,\n },\n engineType: \"ActiveMQ\",\n engineVersion: \"5.15.9\",\n storageType: \"ebs\",\n hostInstanceType: \"mq.m5.large\",\n securityGroups: [aws_security_group.test.id],\n users: [{\n username: \"ExampleUser\",\n password: \"MindTheGap\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.mq.Broker(\"example\",\n configuration=aws.mq.BrokerConfigurationArgs(\n id=aws_mq_configuration[\"test\"][\"id\"],\n revision=aws_mq_configuration[\"test\"][\"latest_revision\"],\n ),\n engine_type=\"ActiveMQ\",\n engine_version=\"5.15.9\",\n storage_type=\"ebs\",\n host_instance_type=\"mq.m5.large\",\n security_groups=[aws_security_group[\"test\"][\"id\"]],\n users=[aws.mq.BrokerUserArgs(\n username=\"ExampleUser\",\n password=\"MindTheGap\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Mq.Broker(\"example\", new()\n {\n Configuration = new Aws.Mq.Inputs.BrokerConfigurationArgs\n {\n Id = aws_mq_configuration.Test.Id,\n Revision = aws_mq_configuration.Test.Latest_revision,\n },\n EngineType = \"ActiveMQ\",\n EngineVersion = \"5.15.9\",\n StorageType = \"ebs\",\n HostInstanceType = \"mq.m5.large\",\n SecurityGroups = new[]\n {\n aws_security_group.Test.Id,\n },\n Users = new[]\n {\n new Aws.Mq.Inputs.BrokerUserArgs\n {\n Username = \"ExampleUser\",\n Password = \"MindTheGap\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/mq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := mq.NewBroker(ctx, \"example\", \u0026mq.BrokerArgs{\n\t\t\tConfiguration: \u0026mq.BrokerConfigurationArgs{\n\t\t\t\tId: pulumi.Any(aws_mq_configuration.Test.Id),\n\t\t\t\tRevision: pulumi.Any(aws_mq_configuration.Test.Latest_revision),\n\t\t\t},\n\t\t\tEngineType: pulumi.String(\"ActiveMQ\"),\n\t\t\tEngineVersion: pulumi.String(\"5.15.9\"),\n\t\t\tStorageType: pulumi.String(\"ebs\"),\n\t\t\tHostInstanceType: pulumi.String(\"mq.m5.large\"),\n\t\t\tSecurityGroups: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_security_group.Test.Id),\n\t\t\t},\n\t\t\tUsers: mq.BrokerUserArray{\n\t\t\t\t\u0026mq.BrokerUserArgs{\n\t\t\t\t\tUsername: pulumi.String(\"ExampleUser\"),\n\t\t\t\t\tPassword: pulumi.String(\"MindTheGap\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.mq.Broker;\nimport com.pulumi.aws.mq.BrokerArgs;\nimport com.pulumi.aws.mq.inputs.BrokerConfigurationArgs;\nimport com.pulumi.aws.mq.inputs.BrokerUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Broker(\"example\", BrokerArgs.builder() \n .configuration(BrokerConfigurationArgs.builder()\n .id(aws_mq_configuration.test().id())\n .revision(aws_mq_configuration.test().latest_revision())\n .build())\n .engineType(\"ActiveMQ\")\n .engineVersion(\"5.15.9\")\n .storageType(\"ebs\")\n .hostInstanceType(\"mq.m5.large\")\n .securityGroups(aws_security_group.test().id())\n .users(BrokerUserArgs.builder()\n .username(\"ExampleUser\")\n .password(\"MindTheGap\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:mq:Broker\n properties:\n configuration:\n id: ${aws_mq_configuration.test.id}\n revision: ${aws_mq_configuration.test.latest_revision}\n engineType: ActiveMQ\n engineVersion: 5.15.9\n storageType: ebs\n hostInstanceType: mq.m5.large\n securityGroups:\n - ${aws_security_group.test.id}\n users:\n - username: ExampleUser\n password: MindTheGap\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nMQ Brokers can be imported using their broker id, e.g.,\n\n```sh\n $ pulumi import aws:mq/broker:Broker example a1b2c3d4-d5f6-7777-8888-9999aaaabbbbcccc\n```\n\n ",
"properties": {
"applyImmediately": {
"type": "boolean",
@@ -487574,7 +491158,7 @@
}
},
"aws:neptune/clusterInstance:ClusterInstance": {
- "description": "A Cluster Instance Resource defines attributes that are specific to a single instance in a Neptune Cluster.\n\nYou can simply add neptune instances and Neptune manages the replication. You can use the [count](https://www.terraform.io/docs/configuration/meta-arguments/count.html)\nmeta-parameter to make multiple instances and join them all to the same Neptune Cluster, or you may specify different Cluster Instance resources with various `instance_class` sizes.\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example will create a neptune cluster with two neptune instances(one writer and one reader).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.neptune.Cluster(\"default\", {\n clusterIdentifier: \"neptune-cluster-demo\",\n engine: \"neptune\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n skipFinalSnapshot: true,\n iamDatabaseAuthenticationEnabled: true,\n applyImmediately: true,\n});\nconst example: aws.neptune.ClusterInstance[];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n example.push(new aws.neptune.ClusterInstance(`example-${range.value}`, {\n clusterIdentifier: _default.id,\n engine: \"neptune\",\n instanceClass: \"db.r4.large\",\n applyImmediately: true,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.neptune.Cluster(\"default\",\n cluster_identifier=\"neptune-cluster-demo\",\n engine=\"neptune\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\",\n skip_final_snapshot=True,\n iam_database_authentication_enabled=True,\n apply_immediately=True)\nexample = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n example.append(aws.neptune.ClusterInstance(f\"example-{range['value']}\",\n cluster_identifier=default.id,\n engine=\"neptune\",\n instance_class=\"db.r4.large\",\n apply_immediately=True))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Neptune.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"neptune-cluster-demo\",\n Engine = \"neptune\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n SkipFinalSnapshot = true,\n IamDatabaseAuthenticationEnabled = true,\n ApplyImmediately = true,\n });\n\n var example = new List\u003cAws.Neptune.ClusterInstance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Neptune.ClusterInstance($\"example-{range.Value}\", new()\n {\n ClusterIdentifier = @default.Id,\n Engine = \"neptune\",\n InstanceClass = \"db.r4.large\",\n ApplyImmediately = true,\n }));\n }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/neptune\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := neptune.NewCluster(ctx, \"default\", \u0026neptune.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"neptune-cluster-demo\"),\n\t\t\tEngine: pulumi.String(\"neptune\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t\tSkipFinalSnapshot: pulumi.Bool(true),\n\t\t\tIamDatabaseAuthenticationEnabled: pulumi.Bool(true),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar example []*neptune.ClusterInstance\n\t\tfor key0, _ := range 2 {\n\t\t\t__res, err := neptune.NewClusterInstance(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026neptune.ClusterInstanceArgs{\n\t\t\t\tClusterIdentifier: _default.ID(),\n\t\t\t\tEngine: pulumi.String(\"neptune\"),\n\t\t\t\tInstanceClass: pulumi.String(\"db.r4.large\"),\n\t\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texample = append(example, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.neptune.Cluster;\nimport com.pulumi.aws.neptune.ClusterArgs;\nimport com.pulumi.aws.neptune.ClusterInstance;\nimport com.pulumi.aws.neptune.ClusterInstanceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder() \n .clusterIdentifier(\"neptune-cluster-demo\")\n .engine(\"neptune\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .skipFinalSnapshot(true)\n .iamDatabaseAuthenticationEnabled(true)\n .applyImmediately(true)\n .build());\n\n for (var i = 0; i \u003c 2; i++) {\n new ClusterInstance(\"example-\" + i, ClusterInstanceArgs.builder() \n .clusterIdentifier(default_.id())\n .engine(\"neptune\")\n .instanceClass(\"db.r4.large\")\n .applyImmediately(true)\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:neptune:Cluster\n properties:\n clusterIdentifier: neptune-cluster-demo\n engine: neptune\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n skipFinalSnapshot: true\n iamDatabaseAuthenticationEnabled: true\n applyImmediately: true\n example:\n type: aws:neptune:ClusterInstance\n properties:\n clusterIdentifier: ${default.id}\n engine: neptune\n instanceClass: db.r4.large\n applyImmediately: true\n options: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_neptune_cluster_instance` can be imported by using the instance identifier, e.g.,\n\n```sh\n $ pulumi import aws:neptune/clusterInstance:ClusterInstance example my-instance\n```\n\n ",
+ "description": "A Cluster Instance Resource defines attributes that are specific to a single instance in a Neptune Cluster.\n\nYou can simply add neptune instances and Neptune manages the replication. You can use the [count](https://www.terraform.io/docs/configuration/meta-arguments/count.html)\nmeta-parameter to make multiple instances and join them all to the same Neptune Cluster, or you may specify different Cluster Instance resources with various `instance_class` sizes.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example will create a neptune cluster with two neptune instances(one writer and one reader).\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst _default = new aws.neptune.Cluster(\"default\", {\n clusterIdentifier: \"neptune-cluster-demo\",\n engine: \"neptune\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n skipFinalSnapshot: true,\n iamDatabaseAuthenticationEnabled: true,\n applyImmediately: true,\n});\nconst example: aws.neptune.ClusterInstance[];\nfor (const range = {value: 0}; range.value \u003c 2; range.value++) {\n example.push(new aws.neptune.ClusterInstance(`example-${range.value}`, {\n clusterIdentifier: _default.id,\n engine: \"neptune\",\n instanceClass: \"db.r4.large\",\n applyImmediately: true,\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.neptune.Cluster(\"default\",\n cluster_identifier=\"neptune-cluster-demo\",\n engine=\"neptune\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\",\n skip_final_snapshot=True,\n iam_database_authentication_enabled=True,\n apply_immediately=True)\nexample = []\nfor range in [{\"value\": i} for i in range(0, 2)]:\n example.append(aws.neptune.ClusterInstance(f\"example-{range['value']}\",\n cluster_identifier=default.id,\n engine=\"neptune\",\n instance_class=\"db.r4.large\",\n apply_immediately=True))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Neptune.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"neptune-cluster-demo\",\n Engine = \"neptune\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n SkipFinalSnapshot = true,\n IamDatabaseAuthenticationEnabled = true,\n ApplyImmediately = true,\n });\n\n var example = new List\u003cAws.Neptune.ClusterInstance\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 2; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n example.Add(new Aws.Neptune.ClusterInstance($\"example-{range.Value}\", new()\n {\n ClusterIdentifier = @default.Id,\n Engine = \"neptune\",\n InstanceClass = \"db.r4.large\",\n ApplyImmediately = true,\n }));\n }\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/neptune\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := neptune.NewCluster(ctx, \"default\", \u0026neptune.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"neptune-cluster-demo\"),\n\t\t\tEngine: pulumi.String(\"neptune\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t\tSkipFinalSnapshot: pulumi.Bool(true),\n\t\t\tIamDatabaseAuthenticationEnabled: pulumi.Bool(true),\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar example []*neptune.ClusterInstance\n\t\tfor key0, _ := range 2 {\n\t\t\t__res, err := neptune.NewClusterInstance(ctx, fmt.Sprintf(\"example-%v\", key0), \u0026neptune.ClusterInstanceArgs{\n\t\t\t\tClusterIdentifier: _default.ID(),\n\t\t\t\tEngine: pulumi.String(\"neptune\"),\n\t\t\t\tInstanceClass: pulumi.String(\"db.r4.large\"),\n\t\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texample = append(example, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.neptune.Cluster;\nimport com.pulumi.aws.neptune.ClusterArgs;\nimport com.pulumi.aws.neptune.ClusterInstance;\nimport com.pulumi.aws.neptune.ClusterInstanceArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder() \n .clusterIdentifier(\"neptune-cluster-demo\")\n .engine(\"neptune\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .skipFinalSnapshot(true)\n .iamDatabaseAuthenticationEnabled(true)\n .applyImmediately(true)\n .build());\n\n for (var i = 0; i \u003c 2; i++) {\n new ClusterInstance(\"example-\" + i, ClusterInstanceArgs.builder() \n .clusterIdentifier(default_.id())\n .engine(\"neptune\")\n .instanceClass(\"db.r4.large\")\n .applyImmediately(true)\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:neptune:Cluster\n properties:\n clusterIdentifier: neptune-cluster-demo\n engine: neptune\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n skipFinalSnapshot: true\n iamDatabaseAuthenticationEnabled: true\n applyImmediately: true\n example:\n type: aws:neptune:ClusterInstance\n properties:\n clusterIdentifier: ${default.id}\n engine: neptune\n instanceClass: db.r4.large\n applyImmediately: true\n options: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_neptune_cluster_instance` can be imported by using the instance identifier, e.g.,\n\n```sh\n $ pulumi import aws:neptune/clusterInstance:ClusterInstance example my-instance\n```\n\n ",
"properties": {
"address": {
"type": "string",
@@ -489849,7 +493433,7 @@
}
},
"aws:networkmanager/link:Link": {
- "description": "Creates a link for a site.\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.networkmanager.Link(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n siteId: aws_networkmanager_global_site.example.id,\n bandwidth: {\n uploadSpeed: 10,\n downloadSpeed: 50,\n },\n providerName: \"MegaCorp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.Link(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n site_id=aws_networkmanager_global_site[\"example\"][\"id\"],\n bandwidth=aws.networkmanager.LinkBandwidthArgs(\n upload_speed=10,\n download_speed=50,\n ),\n provider_name=\"MegaCorp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.Link(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n SiteId = aws_networkmanager_global_site.Example.Id,\n Bandwidth = new Aws.NetworkManager.Inputs.LinkBandwidthArgs\n {\n UploadSpeed = 10,\n DownloadSpeed = 50,\n },\n ProviderName = \"MegaCorp\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkmanager.NewLink(ctx, \"example\", \u0026networkmanager.LinkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tSiteId: pulumi.Any(aws_networkmanager_global_site.Example.Id),\n\t\t\tBandwidth: \u0026networkmanager.LinkBandwidthArgs{\n\t\t\t\tUploadSpeed: pulumi.Int(10),\n\t\t\t\tDownloadSpeed: pulumi.Int(50),\n\t\t\t},\n\t\t\tProviderName: pulumi.String(\"MegaCorp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.networkmanager.Link;\nimport com.pulumi.aws.networkmanager.LinkArgs;\nimport com.pulumi.aws.networkmanager.inputs.LinkBandwidthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Link(\"example\", LinkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .siteId(aws_networkmanager_global_site.example().id())\n .bandwidth(LinkBandwidthArgs.builder()\n .uploadSpeed(10)\n .downloadSpeed(50)\n .build())\n .providerName(\"MegaCorp\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:Link\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n siteId: ${aws_networkmanager_global_site.example.id}\n bandwidth:\n uploadSpeed: 10\n downloadSpeed: 50\n providerName: MegaCorp\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_networkmanager_link` can be imported using the link ARN, e.g.\n\n```sh\n $ pulumi import aws:networkmanager/link:Link example arn:aws:networkmanager::123456789012:link/global-network-0d47f6t230mz46dy4/link-444555aaabbb11223\n```\n\n ",
+ "description": "Creates a link for a site.\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.networkmanager.Link(\"example\", {\n globalNetworkId: aws_networkmanager_global_network.example.id,\n siteId: aws_networkmanager_site.example.id,\n bandwidth: {\n uploadSpeed: 10,\n downloadSpeed: 50,\n },\n providerName: \"MegaCorp\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.networkmanager.Link(\"example\",\n global_network_id=aws_networkmanager_global_network[\"example\"][\"id\"],\n site_id=aws_networkmanager_site[\"example\"][\"id\"],\n bandwidth=aws.networkmanager.LinkBandwidthArgs(\n upload_speed=10,\n download_speed=50,\n ),\n provider_name=\"MegaCorp\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.NetworkManager.Link(\"example\", new()\n {\n GlobalNetworkId = aws_networkmanager_global_network.Example.Id,\n SiteId = aws_networkmanager_site.Example.Id,\n Bandwidth = new Aws.NetworkManager.Inputs.LinkBandwidthArgs\n {\n UploadSpeed = 10,\n DownloadSpeed = 50,\n },\n ProviderName = \"MegaCorp\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/networkmanager\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := networkmanager.NewLink(ctx, \"example\", \u0026networkmanager.LinkArgs{\n\t\t\tGlobalNetworkId: pulumi.Any(aws_networkmanager_global_network.Example.Id),\n\t\t\tSiteId: pulumi.Any(aws_networkmanager_site.Example.Id),\n\t\t\tBandwidth: \u0026networkmanager.LinkBandwidthArgs{\n\t\t\t\tUploadSpeed: pulumi.Int(10),\n\t\t\t\tDownloadSpeed: pulumi.Int(50),\n\t\t\t},\n\t\t\tProviderName: pulumi.String(\"MegaCorp\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.networkmanager.Link;\nimport com.pulumi.aws.networkmanager.LinkArgs;\nimport com.pulumi.aws.networkmanager.inputs.LinkBandwidthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Link(\"example\", LinkArgs.builder() \n .globalNetworkId(aws_networkmanager_global_network.example().id())\n .siteId(aws_networkmanager_site.example().id())\n .bandwidth(LinkBandwidthArgs.builder()\n .uploadSpeed(10)\n .downloadSpeed(50)\n .build())\n .providerName(\"MegaCorp\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:networkmanager:Link\n properties:\n globalNetworkId: ${aws_networkmanager_global_network.example.id}\n siteId: ${aws_networkmanager_site.example.id}\n bandwidth:\n uploadSpeed: 10\n downloadSpeed: 50\n providerName: MegaCorp\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_networkmanager_link` can be imported using the link ARN, e.g.\n\n```sh\n $ pulumi import aws:networkmanager/link:Link example arn:aws:networkmanager::123456789012:link/global-network-0d47f6t230mz46dy4/link-444555aaabbb11223\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -491537,6 +495121,10 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/CustomLayerLoadBasedAutoScaling:CustomLayerLoadBasedAutoScaling",
+ "description": "Load-based auto scaling configuration. See Load Based AutoScaling\n"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -491578,6 +495166,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"shortName",
"stackId",
@@ -491668,6 +495257,10 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/CustomLayerLoadBasedAutoScaling:CustomLayerLoadBasedAutoScaling",
+ "description": "Load-based auto scaling configuration. See Load Based AutoScaling\n"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -491795,6 +495388,10 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/CustomLayerLoadBasedAutoScaling:CustomLayerLoadBasedAutoScaling",
+ "description": "Load-based auto scaling configuration. See Load Based AutoScaling\n"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -491931,6 +495528,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerLoadBasedAutoScaling:EcsClusterLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -491968,6 +495568,7 @@
"arn",
"ebsVolumes",
"ecsClusterArn",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -492061,6 +495662,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerLoadBasedAutoScaling:EcsClusterLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492188,6 +495792,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/EcsClusterLayerLoadBasedAutoScaling:EcsClusterLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492315,6 +495922,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerLoadBasedAutoScaling:GangliaLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492364,6 +495974,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"password",
"stackId",
@@ -492453,6 +496064,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerLoadBasedAutoScaling:GangliaLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492587,6 +496201,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/GangliaLayerLoadBasedAutoScaling:GangliaLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492735,6 +496352,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/HaproxyLayerLoadBasedAutoScaling:HaproxyLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -492788,6 +496408,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"statsPassword",
@@ -492885,6 +496506,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/HaproxyLayerLoadBasedAutoScaling:HaproxyLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -493031,6 +496655,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/HaproxyLayerLoadBasedAutoScaling:HaproxyLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -493801,6 +497428,9 @@
"type": "string",
"description": "Version of JVM to use. Defaults to \"7\".\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/JavaAppLayerLoadBasedAutoScaling:JavaAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -493838,6 +497468,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -493946,6 +497577,9 @@
"type": "string",
"description": "Version of JVM to use. Defaults to \"7\".\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/JavaAppLayerLoadBasedAutoScaling:JavaAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494087,6 +497721,9 @@
"type": "string",
"description": "Version of JVM to use. Defaults to \"7\".\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/JavaAppLayerLoadBasedAutoScaling:JavaAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494219,6 +497856,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerLoadBasedAutoScaling:MemcachedLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494256,6 +497896,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -494348,6 +497989,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerLoadBasedAutoScaling:MemcachedLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494473,6 +498117,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MemcachedLayerLoadBasedAutoScaling:MemcachedLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494601,6 +498248,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerLoadBasedAutoScaling:MysqlLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494646,6 +498296,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -494734,6 +498385,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerLoadBasedAutoScaling:MysqlLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494863,6 +498517,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/MysqlLayerLoadBasedAutoScaling:MysqlLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -494999,6 +498656,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerLoadBasedAutoScaling:NodejsAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495040,6 +498700,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -495128,6 +498789,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerLoadBasedAutoScaling:NodejsAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495253,6 +498917,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/NodejsAppLayerLoadBasedAutoScaling:NodejsAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495468,6 +499135,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/PhpAppLayerLoadBasedAutoScaling:PhpAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495505,6 +499175,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -495593,6 +499264,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/PhpAppLayerLoadBasedAutoScaling:PhpAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495714,6 +499388,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/PhpAppLayerLoadBasedAutoScaling:PhpAppLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -495850,6 +499527,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/RailsAppLayerLoadBasedAutoScaling:RailsAppLayerLoadBasedAutoScaling"
+ },
"manageBundler": {
"type": "boolean",
"description": "Whether OpsWorks should manage bundler. On by default.\n"
@@ -495903,6 +499583,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -495999,6 +499680,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/RailsAppLayerLoadBasedAutoScaling:RailsAppLayerLoadBasedAutoScaling"
+ },
"manageBundler": {
"type": "boolean",
"description": "Whether OpsWorks should manage bundler. On by default.\n"
@@ -496144,6 +499828,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/RailsAppLayerLoadBasedAutoScaling:RailsAppLayerLoadBasedAutoScaling"
+ },
"manageBundler": {
"type": "boolean",
"description": "Whether OpsWorks should manage bundler. On by default.\n"
@@ -496710,6 +500397,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/StaticWebLayerLoadBasedAutoScaling:StaticWebLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -496747,6 +500437,7 @@
"required": [
"arn",
"ebsVolumes",
+ "loadBasedAutoScaling",
"name",
"stackId",
"tagsAll"
@@ -496834,6 +500525,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/StaticWebLayerLoadBasedAutoScaling:StaticWebLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -496954,6 +500648,9 @@
"type": "integer",
"description": "The time, in seconds, that OpsWorks will wait for Chef to complete after triggering the Shutdown event.\n"
},
+ "loadBasedAutoScaling": {
+ "$ref": "#/types/aws:opsworks/StaticWebLayerLoadBasedAutoScaling:StaticWebLayerLoadBasedAutoScaling"
+ },
"name": {
"type": "string",
"description": "A human-readable name for the layer.\n"
@@ -497781,7 +501478,7 @@
}
},
"aws:pinpoint/admChannel:AdmChannel": {
- "description": "Provides a Pinpoint ADM (Amazon Device Messaging) Channel resource.\n\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 app = new aws.pinpoint.App(\"app\", {});\nconst channel = new aws.pinpoint.AdmChannel(\"channel\", {\n applicationId: app.applicationId,\n clientId: \"\",\n clientSecret: \"\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\napp = aws.pinpoint.App(\"app\")\nchannel = aws.pinpoint.AdmChannel(\"channel\",\n application_id=app.application_id,\n client_id=\"\",\n client_secret=\"\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var app = new Aws.Pinpoint.App(\"app\");\n\n var channel = new Aws.Pinpoint.AdmChannel(\"channel\", new()\n {\n ApplicationId = app.ApplicationId,\n ClientId = \"\",\n ClientSecret = \"\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/pinpoint\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := pinpoint.NewApp(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pinpoint.NewAdmChannel(ctx, \"channel\", \u0026pinpoint.AdmChannelArgs{\n\t\t\tApplicationId: app.ApplicationId,\n\t\t\tClientId: pulumi.String(\"\"),\n\t\t\tClientSecret: pulumi.String(\"\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.pinpoint.App;\nimport com.pulumi.aws.pinpoint.AdmChannel;\nimport com.pulumi.aws.pinpoint.AdmChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var app = new App(\"app\");\n\n var channel = new AdmChannel(\"channel\", AdmChannelArgs.builder() \n .applicationId(app.applicationId())\n .clientId(\"\")\n .clientSecret(\"\")\n .enabled(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n app:\n type: aws:pinpoint:App\n channel:\n type: aws:pinpoint:AdmChannel\n properties:\n applicationId: ${app.applicationId}\n clientId:\n clientSecret:\n enabled: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPinpoint ADM Channel can be imported using the `application-id`, e.g.,\n\n```sh\n $ pulumi import aws:pinpoint/admChannel:AdmChannel channel application-id\n```\n\n ",
+ "description": "Provides a Pinpoint ADM (Amazon Device Messaging) Channel 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 app = new aws.pinpoint.App(\"app\", {});\nconst channel = new aws.pinpoint.AdmChannel(\"channel\", {\n applicationId: app.applicationId,\n clientId: \"\",\n clientSecret: \"\",\n enabled: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\napp = aws.pinpoint.App(\"app\")\nchannel = aws.pinpoint.AdmChannel(\"channel\",\n application_id=app.application_id,\n client_id=\"\",\n client_secret=\"\",\n enabled=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var app = new Aws.Pinpoint.App(\"app\");\n\n var channel = new Aws.Pinpoint.AdmChannel(\"channel\", new()\n {\n ApplicationId = app.ApplicationId,\n ClientId = \"\",\n ClientSecret = \"\",\n Enabled = true,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/pinpoint\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := pinpoint.NewApp(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pinpoint.NewAdmChannel(ctx, \"channel\", \u0026pinpoint.AdmChannelArgs{\n\t\t\tApplicationId: app.ApplicationId,\n\t\t\tClientId: pulumi.String(\"\"),\n\t\t\tClientSecret: pulumi.String(\"\"),\n\t\t\tEnabled: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.pinpoint.App;\nimport com.pulumi.aws.pinpoint.AdmChannel;\nimport com.pulumi.aws.pinpoint.AdmChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var app = new App(\"app\");\n\n var channel = new AdmChannel(\"channel\", AdmChannelArgs.builder() \n .applicationId(app.applicationId())\n .clientId(\"\")\n .clientSecret(\"\")\n .enabled(true)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n app:\n type: aws:pinpoint:App\n channel:\n type: aws:pinpoint:AdmChannel\n properties:\n applicationId: ${app.applicationId}\n clientId:\n clientSecret:\n enabled: true\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPinpoint ADM Channel can be imported using the `application-id`, e.g.,\n\n```sh\n $ pulumi import aws:pinpoint/admChannel:AdmChannel channel application-id\n```\n\n ",
"properties": {
"applicationId": {
"type": "string",
@@ -498504,7 +502201,7 @@
}
},
"aws:pinpoint/baiduChannel:BaiduChannel": {
- "description": "Provides a Pinpoint Baidu Channel resource.\n\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 app = new aws.pinpoint.App(\"app\", {});\nconst channel = new aws.pinpoint.BaiduChannel(\"channel\", {\n applicationId: app.applicationId,\n apiKey: \"\",\n secretKey: \"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\napp = aws.pinpoint.App(\"app\")\nchannel = aws.pinpoint.BaiduChannel(\"channel\",\n application_id=app.application_id,\n api_key=\"\",\n secret_key=\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var app = new Aws.Pinpoint.App(\"app\");\n\n var channel = new Aws.Pinpoint.BaiduChannel(\"channel\", new()\n {\n ApplicationId = app.ApplicationId,\n ApiKey = \"\",\n SecretKey = \"\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/pinpoint\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := pinpoint.NewApp(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pinpoint.NewBaiduChannel(ctx, \"channel\", \u0026pinpoint.BaiduChannelArgs{\n\t\t\tApplicationId: app.ApplicationId,\n\t\t\tApiKey: pulumi.String(\"\"),\n\t\t\tSecretKey: pulumi.String(\"\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.pinpoint.App;\nimport com.pulumi.aws.pinpoint.BaiduChannel;\nimport com.pulumi.aws.pinpoint.BaiduChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var app = new App(\"app\");\n\n var channel = new BaiduChannel(\"channel\", BaiduChannelArgs.builder() \n .applicationId(app.applicationId())\n .apiKey(\"\")\n .secretKey(\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n app:\n type: aws:pinpoint:App\n channel:\n type: aws:pinpoint:BaiduChannel\n properties:\n applicationId: ${app.applicationId}\n apiKey:\n secretKey:\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPinpoint Baidu Channel can be imported using the `application-id`, e.g.,\n\n```sh\n $ pulumi import aws:pinpoint/baiduChannel:BaiduChannel channel application-id\n```\n\n ",
+ "description": "Provides a Pinpoint Baidu Channel 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 app = new aws.pinpoint.App(\"app\", {});\nconst channel = new aws.pinpoint.BaiduChannel(\"channel\", {\n applicationId: app.applicationId,\n apiKey: \"\",\n secretKey: \"\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\napp = aws.pinpoint.App(\"app\")\nchannel = aws.pinpoint.BaiduChannel(\"channel\",\n application_id=app.application_id,\n api_key=\"\",\n secret_key=\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var app = new Aws.Pinpoint.App(\"app\");\n\n var channel = new Aws.Pinpoint.BaiduChannel(\"channel\", new()\n {\n ApplicationId = app.ApplicationId,\n ApiKey = \"\",\n SecretKey = \"\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/pinpoint\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tapp, err := pinpoint.NewApp(ctx, \"app\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = pinpoint.NewBaiduChannel(ctx, \"channel\", \u0026pinpoint.BaiduChannelArgs{\n\t\t\tApplicationId: app.ApplicationId,\n\t\t\tApiKey: pulumi.String(\"\"),\n\t\t\tSecretKey: pulumi.String(\"\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.pinpoint.App;\nimport com.pulumi.aws.pinpoint.BaiduChannel;\nimport com.pulumi.aws.pinpoint.BaiduChannelArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var app = new App(\"app\");\n\n var channel = new BaiduChannel(\"channel\", BaiduChannelArgs.builder() \n .applicationId(app.applicationId())\n .apiKey(\"\")\n .secretKey(\"\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n app:\n type: aws:pinpoint:App\n channel:\n type: aws:pinpoint:BaiduChannel\n properties:\n applicationId: ${app.applicationId}\n apiKey:\n secretKey:\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nPinpoint Baidu Channel can be imported using the `application-id`, e.g.,\n\n```sh\n $ pulumi import aws:pinpoint/baiduChannel:BaiduChannel channel application-id\n```\n\n ",
"properties": {
"apiKey": {
"type": "string",
@@ -499755,7 +503452,7 @@
}
},
"aws:ram/resourceShare:ResourceShare": {
- "description": "Manages a Resource Access Manager (RAM) Resource Share. To associate principals with the share, see the `aws.ram.PrincipalAssociation` resource. To associate resources with the share, see the `aws.ram.ResourceAssociation` 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.ram.ResourceShare(\"example\", {\n allowExternalPrincipals: true,\n tags: {\n Environment: \"Production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ram.ResourceShare(\"example\",\n allow_external_principals=True,\n tags={\n \"Environment\": \"Production\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ram.ResourceShare(\"example\", new()\n {\n AllowExternalPrincipals = true,\n Tags = \n {\n { \"Environment\", \"Production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewResourceShare(ctx, \"example\", \u0026ram.ResourceShareArgs{\n\t\t\tAllowExternalPrincipals: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ram.ResourceShare;\nimport com.pulumi.aws.ram.ResourceShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceShare(\"example\", ResourceShareArgs.builder() \n .allowExternalPrincipals(true)\n .tags(Map.of(\"Environment\", \"Production\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ram:ResourceShare\n properties:\n allowExternalPrincipals: true\n tags:\n Environment: Production\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource shares can be imported using the `id`, e.g.,\n\n```sh\n $ pulumi import aws:ram/resourceShare:ResourceShare example arn:aws:ram:eu-west-1:123456789012:resource-share/73da1ab9-b94a-4ba3-8eb4-45917f7f4b12\n```\n\n ",
+ "description": "Manages a Resource Access Manager (RAM) Resource Share. To associate principals with the share, see the `aws.ram.PrincipalAssociation` resource. To associate resources with the share, see the `aws.ram.ResourceAssociation` 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.ram.ResourceShare(\"example\", {\n allowExternalPrincipals: true,\n tags: {\n Environment: \"Production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ram.ResourceShare(\"example\",\n allow_external_principals=True,\n tags={\n \"Environment\": \"Production\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Ram.ResourceShare(\"example\", new()\n {\n AllowExternalPrincipals = true,\n Tags = \n {\n { \"Environment\", \"Production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ram\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ram.NewResourceShare(ctx, \"example\", \u0026ram.ResourceShareArgs{\n\t\t\tAllowExternalPrincipals: pulumi.Bool(true),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ram.ResourceShare;\nimport com.pulumi.aws.ram.ResourceShareArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceShare(\"example\", ResourceShareArgs.builder() \n .allowExternalPrincipals(true)\n .tags(Map.of(\"Environment\", \"Production\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:ram:ResourceShare\n properties:\n allowExternalPrincipals: true\n tags:\n Environment: Production\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource shares can be imported using the `arn` of the resource share, e.g.,\n\n```sh\n $ pulumi import aws:ram/resourceShare:ResourceShare example arn:aws:ram:eu-west-1:123456789012:resource-share/73da1ab9-b94a-4ba3-8eb4-45917f7f4b12\n```\n\n ",
"properties": {
"allowExternalPrincipals": {
"type": "boolean",
@@ -500822,7 +504519,7 @@
}
},
"aws:rds/clusterEndpoint:ClusterEndpoint": {
- "description": "Manages an RDS Aurora Cluster Endpoint.\nYou can refer to the [User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Cluster).\n\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 _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"bar\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\nconst test1 = new aws.rds.ClusterInstance(\"test1\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test1\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst test2 = new aws.rds.ClusterInstance(\"test2\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test2\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst test3 = new aws.rds.ClusterInstance(\"test3\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test3\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst eligible = new aws.rds.ClusterEndpoint(\"eligible\", {\n clusterIdentifier: _default.id,\n clusterEndpointIdentifier: \"reader\",\n customEndpointType: \"READER\",\n excludedMembers: [\n test1.id,\n test2.id,\n ],\n});\nconst static = new aws.rds.ClusterEndpoint(\"static\", {\n clusterIdentifier: _default.id,\n clusterEndpointIdentifier: \"static\",\n customEndpointType: \"READER\",\n staticMembers: [\n test1.id,\n test3.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"bar\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\ntest1 = aws.rds.ClusterInstance(\"test1\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test1\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\ntest2 = aws.rds.ClusterInstance(\"test2\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test2\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\ntest3 = aws.rds.ClusterInstance(\"test3\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test3\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\neligible = aws.rds.ClusterEndpoint(\"eligible\",\n cluster_identifier=default.id,\n cluster_endpoint_identifier=\"reader\",\n custom_endpoint_type=\"READER\",\n excluded_members=[\n test1.id,\n test2.id,\n ])\nstatic = aws.rds.ClusterEndpoint(\"static\",\n cluster_identifier=default.id,\n cluster_endpoint_identifier=\"static\",\n custom_endpoint_type=\"READER\",\n static_members=[\n test1.id,\n test3.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"bar\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n var test1 = new Aws.Rds.ClusterInstance(\"test1\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test1\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var test2 = new Aws.Rds.ClusterInstance(\"test2\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test2\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var test3 = new Aws.Rds.ClusterInstance(\"test3\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test3\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var eligible = new Aws.Rds.ClusterEndpoint(\"eligible\", new()\n {\n ClusterIdentifier = @default.Id,\n ClusterEndpointIdentifier = \"reader\",\n CustomEndpointType = \"READER\",\n ExcludedMembers = new[]\n {\n test1.Id,\n test2.Id,\n },\n });\n\n var @static = new Aws.Rds.ClusterEndpoint(\"static\", new()\n {\n ClusterIdentifier = @default.Id,\n ClusterEndpointIdentifier = \"static\",\n CustomEndpointType = \"READER\",\n StaticMembers = new[]\n {\n test1.Id,\n test3.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"bar\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest1, err := rds.NewClusterInstance(ctx, \"test1\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test1\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest2, err := rds.NewClusterInstance(ctx, \"test2\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test2\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest3, err := rds.NewClusterInstance(ctx, \"test3\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test3\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterEndpoint(ctx, \"eligible\", \u0026rds.ClusterEndpointArgs{\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tClusterEndpointIdentifier: pulumi.String(\"reader\"),\n\t\t\tCustomEndpointType: pulumi.String(\"READER\"),\n\t\t\tExcludedMembers: pulumi.StringArray{\n\t\t\t\ttest1.ID(),\n\t\t\t\ttest2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterEndpoint(ctx, \"static\", \u0026rds.ClusterEndpointArgs{\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tClusterEndpointIdentifier: pulumi.String(\"static\"),\n\t\t\tCustomEndpointType: pulumi.String(\"READER\"),\n\t\t\tStaticMembers: pulumi.StringArray{\n\t\t\t\ttest1.ID(),\n\t\t\t\ttest3.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.ClusterInstance;\nimport com.pulumi.aws.rds.ClusterInstanceArgs;\nimport com.pulumi.aws.rds.ClusterEndpoint;\nimport com.pulumi.aws.rds.ClusterEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder() \n .clusterIdentifier(\"aurora-cluster-demo\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"bar\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n var test1 = new ClusterInstance(\"test1\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test1\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var test2 = new ClusterInstance(\"test2\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test2\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var test3 = new ClusterInstance(\"test3\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test3\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var eligible = new ClusterEndpoint(\"eligible\", ClusterEndpointArgs.builder() \n .clusterIdentifier(default_.id())\n .clusterEndpointIdentifier(\"reader\")\n .customEndpointType(\"READER\")\n .excludedMembers( \n test1.id(),\n test2.id())\n .build());\n\n var static_ = new ClusterEndpoint(\"static\", ClusterEndpointArgs.builder() \n .clusterIdentifier(default_.id())\n .clusterEndpointIdentifier(\"static\")\n .customEndpointType(\"READER\")\n .staticMembers( \n test1.id(),\n test3.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: bar\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n test1:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test1\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n test2:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test2\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n test3:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test3\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n eligible:\n type: aws:rds:ClusterEndpoint\n properties:\n clusterIdentifier: ${default.id}\n clusterEndpointIdentifier: reader\n customEndpointType: READER\n excludedMembers:\n - ${test1.id}\n - ${test2.id}\n static:\n type: aws:rds:ClusterEndpoint\n properties:\n clusterIdentifier: ${default.id}\n clusterEndpointIdentifier: static\n customEndpointType: READER\n staticMembers:\n - ${test1.id}\n - ${test3.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRDS Clusters Endpoint can be imported using the `cluster_endpoint_identifier`, e.g.,\n\n```sh\n $ pulumi import aws:rds/clusterEndpoint:ClusterEndpoint custom_reader aurora-prod-cluster-custom-reader\n```\n\n [1]https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Cluster ",
+ "description": "Manages an RDS Aurora Cluster Endpoint.\nYou can refer to the [User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Cluster).\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 _default = new aws.rds.Cluster(\"default\", {\n clusterIdentifier: \"aurora-cluster-demo\",\n availabilityZones: [\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n databaseName: \"mydb\",\n masterUsername: \"foo\",\n masterPassword: \"bar\",\n backupRetentionPeriod: 5,\n preferredBackupWindow: \"07:00-09:00\",\n});\nconst test1 = new aws.rds.ClusterInstance(\"test1\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test1\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst test2 = new aws.rds.ClusterInstance(\"test2\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test2\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst test3 = new aws.rds.ClusterInstance(\"test3\", {\n applyImmediately: true,\n clusterIdentifier: _default.id,\n identifier: \"test3\",\n instanceClass: \"db.t2.small\",\n engine: _default.engine,\n engineVersion: _default.engineVersion,\n});\nconst eligible = new aws.rds.ClusterEndpoint(\"eligible\", {\n clusterIdentifier: _default.id,\n clusterEndpointIdentifier: \"reader\",\n customEndpointType: \"READER\",\n excludedMembers: [\n test1.id,\n test2.id,\n ],\n});\nconst static = new aws.rds.ClusterEndpoint(\"static\", {\n clusterIdentifier: _default.id,\n clusterEndpointIdentifier: \"static\",\n customEndpointType: \"READER\",\n staticMembers: [\n test1.id,\n test3.id,\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.rds.Cluster(\"default\",\n cluster_identifier=\"aurora-cluster-demo\",\n availability_zones=[\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n ],\n database_name=\"mydb\",\n master_username=\"foo\",\n master_password=\"bar\",\n backup_retention_period=5,\n preferred_backup_window=\"07:00-09:00\")\ntest1 = aws.rds.ClusterInstance(\"test1\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test1\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\ntest2 = aws.rds.ClusterInstance(\"test2\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test2\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\ntest3 = aws.rds.ClusterInstance(\"test3\",\n apply_immediately=True,\n cluster_identifier=default.id,\n identifier=\"test3\",\n instance_class=\"db.t2.small\",\n engine=default.engine,\n engine_version=default.engine_version)\neligible = aws.rds.ClusterEndpoint(\"eligible\",\n cluster_identifier=default.id,\n cluster_endpoint_identifier=\"reader\",\n custom_endpoint_type=\"READER\",\n excluded_members=[\n test1.id,\n test2.id,\n ])\nstatic = aws.rds.ClusterEndpoint(\"static\",\n cluster_identifier=default.id,\n cluster_endpoint_identifier=\"static\",\n custom_endpoint_type=\"READER\",\n static_members=[\n test1.id,\n test3.id,\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = new Aws.Rds.Cluster(\"default\", new()\n {\n ClusterIdentifier = \"aurora-cluster-demo\",\n AvailabilityZones = new[]\n {\n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\",\n },\n DatabaseName = \"mydb\",\n MasterUsername = \"foo\",\n MasterPassword = \"bar\",\n BackupRetentionPeriod = 5,\n PreferredBackupWindow = \"07:00-09:00\",\n });\n\n var test1 = new Aws.Rds.ClusterInstance(\"test1\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test1\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var test2 = new Aws.Rds.ClusterInstance(\"test2\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test2\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var test3 = new Aws.Rds.ClusterInstance(\"test3\", new()\n {\n ApplyImmediately = true,\n ClusterIdentifier = @default.Id,\n Identifier = \"test3\",\n InstanceClass = \"db.t2.small\",\n Engine = @default.Engine,\n EngineVersion = @default.EngineVersion,\n });\n\n var eligible = new Aws.Rds.ClusterEndpoint(\"eligible\", new()\n {\n ClusterIdentifier = @default.Id,\n ClusterEndpointIdentifier = \"reader\",\n CustomEndpointType = \"READER\",\n ExcludedMembers = new[]\n {\n test1.Id,\n test2.Id,\n },\n });\n\n var @static = new Aws.Rds.ClusterEndpoint(\"static\", new()\n {\n ClusterIdentifier = @default.Id,\n ClusterEndpointIdentifier = \"static\",\n CustomEndpointType = \"READER\",\n StaticMembers = new[]\n {\n test1.Id,\n test3.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewCluster(ctx, \"default\", \u0026rds.ClusterArgs{\n\t\t\tClusterIdentifier: pulumi.String(\"aurora-cluster-demo\"),\n\t\t\tAvailabilityZones: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"us-west-2a\"),\n\t\t\t\tpulumi.String(\"us-west-2b\"),\n\t\t\t\tpulumi.String(\"us-west-2c\"),\n\t\t\t},\n\t\t\tDatabaseName: pulumi.String(\"mydb\"),\n\t\t\tMasterUsername: pulumi.String(\"foo\"),\n\t\t\tMasterPassword: pulumi.String(\"bar\"),\n\t\t\tBackupRetentionPeriod: pulumi.Int(5),\n\t\t\tPreferredBackupWindow: pulumi.String(\"07:00-09:00\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest1, err := rds.NewClusterInstance(ctx, \"test1\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test1\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest2, err := rds.NewClusterInstance(ctx, \"test2\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test2\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttest3, err := rds.NewClusterInstance(ctx, \"test3\", \u0026rds.ClusterInstanceArgs{\n\t\t\tApplyImmediately: pulumi.Bool(true),\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tIdentifier: pulumi.String(\"test3\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.small\"),\n\t\t\tEngine: _default.Engine,\n\t\t\tEngineVersion: _default.EngineVersion,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterEndpoint(ctx, \"eligible\", \u0026rds.ClusterEndpointArgs{\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tClusterEndpointIdentifier: pulumi.String(\"reader\"),\n\t\t\tCustomEndpointType: pulumi.String(\"READER\"),\n\t\t\tExcludedMembers: pulumi.StringArray{\n\t\t\t\ttest1.ID(),\n\t\t\t\ttest2.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewClusterEndpoint(ctx, \"static\", \u0026rds.ClusterEndpointArgs{\n\t\t\tClusterIdentifier: _default.ID(),\n\t\t\tClusterEndpointIdentifier: pulumi.String(\"static\"),\n\t\t\tCustomEndpointType: pulumi.String(\"READER\"),\n\t\t\tStaticMembers: pulumi.StringArray{\n\t\t\t\ttest1.ID(),\n\t\t\t\ttest3.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Cluster;\nimport com.pulumi.aws.rds.ClusterArgs;\nimport com.pulumi.aws.rds.ClusterInstance;\nimport com.pulumi.aws.rds.ClusterInstanceArgs;\nimport com.pulumi.aws.rds.ClusterEndpoint;\nimport com.pulumi.aws.rds.ClusterEndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var default_ = new Cluster(\"default\", ClusterArgs.builder() \n .clusterIdentifier(\"aurora-cluster-demo\")\n .availabilityZones( \n \"us-west-2a\",\n \"us-west-2b\",\n \"us-west-2c\")\n .databaseName(\"mydb\")\n .masterUsername(\"foo\")\n .masterPassword(\"bar\")\n .backupRetentionPeriod(5)\n .preferredBackupWindow(\"07:00-09:00\")\n .build());\n\n var test1 = new ClusterInstance(\"test1\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test1\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var test2 = new ClusterInstance(\"test2\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test2\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var test3 = new ClusterInstance(\"test3\", ClusterInstanceArgs.builder() \n .applyImmediately(true)\n .clusterIdentifier(default_.id())\n .identifier(\"test3\")\n .instanceClass(\"db.t2.small\")\n .engine(default_.engine())\n .engineVersion(default_.engineVersion())\n .build());\n\n var eligible = new ClusterEndpoint(\"eligible\", ClusterEndpointArgs.builder() \n .clusterIdentifier(default_.id())\n .clusterEndpointIdentifier(\"reader\")\n .customEndpointType(\"READER\")\n .excludedMembers( \n test1.id(),\n test2.id())\n .build());\n\n var static_ = new ClusterEndpoint(\"static\", ClusterEndpointArgs.builder() \n .clusterIdentifier(default_.id())\n .clusterEndpointIdentifier(\"static\")\n .customEndpointType(\"READER\")\n .staticMembers( \n test1.id(),\n test3.id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n default:\n type: aws:rds:Cluster\n properties:\n clusterIdentifier: aurora-cluster-demo\n availabilityZones:\n - us-west-2a\n - us-west-2b\n - us-west-2c\n databaseName: mydb\n masterUsername: foo\n masterPassword: bar\n backupRetentionPeriod: 5\n preferredBackupWindow: 07:00-09:00\n test1:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test1\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n test2:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test2\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n test3:\n type: aws:rds:ClusterInstance\n properties:\n applyImmediately: true\n clusterIdentifier: ${default.id}\n identifier: test3\n instanceClass: db.t2.small\n engine: ${default.engine}\n engineVersion: ${default.engineVersion}\n eligible:\n type: aws:rds:ClusterEndpoint\n properties:\n clusterIdentifier: ${default.id}\n clusterEndpointIdentifier: reader\n customEndpointType: READER\n excludedMembers:\n - ${test1.id}\n - ${test2.id}\n static:\n type: aws:rds:ClusterEndpoint\n properties:\n clusterIdentifier: ${default.id}\n clusterEndpointIdentifier: static\n customEndpointType: READER\n staticMembers:\n - ${test1.id}\n - ${test3.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRDS Clusters Endpoint can be imported using the `cluster_endpoint_identifier`, e.g.,\n\n```sh\n $ pulumi import aws:rds/clusterEndpoint:ClusterEndpoint custom_reader aurora-prod-cluster-custom-reader\n```\n\n [1]https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html#Aurora.Endpoints.Cluster ",
"properties": {
"arn": {
"type": "string",
@@ -503221,7 +506918,7 @@
}
},
"aws:rds/optionGroup:OptionGroup": {
- "description": "Provides an RDS DB option group resource. Documentation of the available options for various RDS engines can be found at:\n\n* [MariaDB Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MariaDB.Options.html)\n* [Microsoft SQL Server Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html)\n* [MySQL Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.html)\n* [Oracle Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html)\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.rds.OptionGroup(\"example\", {\n optionGroupDescription: \"Option Group\",\n engineName: \"sqlserver-ee\",\n majorEngineVersion: \"11.00\",\n options: [\n {\n optionName: \"Timezone\",\n optionSettings: [{\n name: \"TIME_ZONE\",\n value: \"UTC\",\n }],\n },\n {\n optionName: \"SQLSERVER_BACKUP_RESTORE\",\n optionSettings: [{\n name: \"IAM_ROLE_ARN\",\n value: aws_iam_role.example.arn,\n }],\n },\n {\n optionName: \"TDE\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.OptionGroup(\"example\",\n option_group_description=\"Option Group\",\n engine_name=\"sqlserver-ee\",\n major_engine_version=\"11.00\",\n options=[\n aws.rds.OptionGroupOptionArgs(\n option_name=\"Timezone\",\n option_settings=[aws.rds.OptionGroupOptionOptionSettingArgs(\n name=\"TIME_ZONE\",\n value=\"UTC\",\n )],\n ),\n aws.rds.OptionGroupOptionArgs(\n option_name=\"SQLSERVER_BACKUP_RESTORE\",\n option_settings=[aws.rds.OptionGroupOptionOptionSettingArgs(\n name=\"IAM_ROLE_ARN\",\n value=aws_iam_role[\"example\"][\"arn\"],\n )],\n ),\n aws.rds.OptionGroupOptionArgs(\n option_name=\"TDE\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.OptionGroup(\"example\", new()\n {\n OptionGroupDescription = \"Option Group\",\n EngineName = \"sqlserver-ee\",\n MajorEngineVersion = \"11.00\",\n Options = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"Timezone\",\n OptionSettings = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionOptionSettingArgs\n {\n Name = \"TIME_ZONE\",\n Value = \"UTC\",\n },\n },\n },\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"SQLSERVER_BACKUP_RESTORE\",\n OptionSettings = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionOptionSettingArgs\n {\n Name = \"IAM_ROLE_ARN\",\n Value = aws_iam_role.Example.Arn,\n },\n },\n },\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"TDE\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewOptionGroup(ctx, \"example\", \u0026rds.OptionGroupArgs{\n\t\t\tOptionGroupDescription: pulumi.String(\"Option Group\"),\n\t\t\tEngineName: pulumi.String(\"sqlserver-ee\"),\n\t\t\tMajorEngineVersion: pulumi.String(\"11.00\"),\n\t\t\tOptions: rds.OptionGroupOptionArray{\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"Timezone\"),\n\t\t\t\t\tOptionSettings: rds.OptionGroupOptionOptionSettingArray{\n\t\t\t\t\t\t\u0026rds.OptionGroupOptionOptionSettingArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"TIME_ZONE\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"UTC\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"SQLSERVER_BACKUP_RESTORE\"),\n\t\t\t\t\tOptionSettings: rds.OptionGroupOptionOptionSettingArray{\n\t\t\t\t\t\t\u0026rds.OptionGroupOptionOptionSettingArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"IAM_ROLE_ARN\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"TDE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.OptionGroup;\nimport com.pulumi.aws.rds.OptionGroupArgs;\nimport com.pulumi.aws.rds.inputs.OptionGroupOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OptionGroup(\"example\", OptionGroupArgs.builder() \n .optionGroupDescription(\"Option Group\")\n .engineName(\"sqlserver-ee\")\n .majorEngineVersion(\"11.00\")\n .options( \n OptionGroupOptionArgs.builder()\n .optionName(\"Timezone\")\n .optionSettings(OptionGroupOptionOptionSettingArgs.builder()\n .name(\"TIME_ZONE\")\n .value(\"UTC\")\n .build())\n .build(),\n OptionGroupOptionArgs.builder()\n .optionName(\"SQLSERVER_BACKUP_RESTORE\")\n .optionSettings(OptionGroupOptionOptionSettingArgs.builder()\n .name(\"IAM_ROLE_ARN\")\n .value(aws_iam_role.example().arn())\n .build())\n .build(),\n OptionGroupOptionArgs.builder()\n .optionName(\"TDE\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:OptionGroup\n properties:\n optionGroupDescription: Option Group\n engineName: sqlserver-ee\n majorEngineVersion: 11.00\n options:\n - optionName: Timezone\n optionSettings:\n - name: TIME_ZONE\n value: UTC\n - optionName: SQLSERVER_BACKUP_RESTORE\n optionSettings:\n - name: IAM_ROLE_ARN\n value: ${aws_iam_role.example.arn}\n - optionName: TDE\n```\n\n\u003e **Note**: Any modifications to the `aws.rds.OptionGroup` are set to happen immediately as we default to applying immediately.\n\n\u003e **WARNING:** You can perform a destroy on a `aws.rds.OptionGroup`, as long as it is not associated with any Amazon RDS resource. An option group can be associated with a DB instance, a manual DB snapshot, or an automated DB snapshot.\n\nIf you try to delete an option group that is associated with an Amazon RDS resource, an error similar to the following is returned:\n\n\u003e An error occurred (InvalidOptionGroupStateFault) when calling the DeleteOptionGroup operation: The option group 'optionGroupName' cannot be deleted because it is in use.\n\nMore information about this can be found [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html#USER_WorkingWithOptionGroups.Delete).\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDB Option groups can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:rds/optionGroup:OptionGroup example mysql-option-group\n```\n\n ",
+ "description": "Provides an RDS DB option group resource. Documentation of the available options for various RDS engines can be found at:\n\n* [MariaDB Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MariaDB.Options.html)\n* [Microsoft SQL Server Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.html)\n* [MySQL Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.html)\n* [Oracle Options](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.html)\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.rds.OptionGroup(\"example\", {\n optionGroupDescription: \"Option Group\",\n engineName: \"sqlserver-ee\",\n majorEngineVersion: \"11.00\",\n options: [\n {\n optionName: \"Timezone\",\n optionSettings: [{\n name: \"TIME_ZONE\",\n value: \"UTC\",\n }],\n },\n {\n optionName: \"SQLSERVER_BACKUP_RESTORE\",\n optionSettings: [{\n name: \"IAM_ROLE_ARN\",\n value: aws_iam_role.example.arn,\n }],\n },\n {\n optionName: \"TDE\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.OptionGroup(\"example\",\n option_group_description=\"Option Group\",\n engine_name=\"sqlserver-ee\",\n major_engine_version=\"11.00\",\n options=[\n aws.rds.OptionGroupOptionArgs(\n option_name=\"Timezone\",\n option_settings=[aws.rds.OptionGroupOptionOptionSettingArgs(\n name=\"TIME_ZONE\",\n value=\"UTC\",\n )],\n ),\n aws.rds.OptionGroupOptionArgs(\n option_name=\"SQLSERVER_BACKUP_RESTORE\",\n option_settings=[aws.rds.OptionGroupOptionOptionSettingArgs(\n name=\"IAM_ROLE_ARN\",\n value=aws_iam_role[\"example\"][\"arn\"],\n )],\n ),\n aws.rds.OptionGroupOptionArgs(\n option_name=\"TDE\",\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.OptionGroup(\"example\", new()\n {\n OptionGroupDescription = \"Option Group\",\n EngineName = \"sqlserver-ee\",\n MajorEngineVersion = \"11.00\",\n Options = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"Timezone\",\n OptionSettings = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionOptionSettingArgs\n {\n Name = \"TIME_ZONE\",\n Value = \"UTC\",\n },\n },\n },\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"SQLSERVER_BACKUP_RESTORE\",\n OptionSettings = new[]\n {\n new Aws.Rds.Inputs.OptionGroupOptionOptionSettingArgs\n {\n Name = \"IAM_ROLE_ARN\",\n Value = aws_iam_role.Example.Arn,\n },\n },\n },\n new Aws.Rds.Inputs.OptionGroupOptionArgs\n {\n OptionName = \"TDE\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewOptionGroup(ctx, \"example\", \u0026rds.OptionGroupArgs{\n\t\t\tOptionGroupDescription: pulumi.String(\"Option Group\"),\n\t\t\tEngineName: pulumi.String(\"sqlserver-ee\"),\n\t\t\tMajorEngineVersion: pulumi.String(\"11.00\"),\n\t\t\tOptions: rds.OptionGroupOptionArray{\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"Timezone\"),\n\t\t\t\t\tOptionSettings: rds.OptionGroupOptionOptionSettingArray{\n\t\t\t\t\t\t\u0026rds.OptionGroupOptionOptionSettingArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"TIME_ZONE\"),\n\t\t\t\t\t\t\tValue: pulumi.String(\"UTC\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"SQLSERVER_BACKUP_RESTORE\"),\n\t\t\t\t\tOptionSettings: rds.OptionGroupOptionOptionSettingArray{\n\t\t\t\t\t\t\u0026rds.OptionGroupOptionOptionSettingArgs{\n\t\t\t\t\t\t\tName: pulumi.String(\"IAM_ROLE_ARN\"),\n\t\t\t\t\t\t\tValue: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026rds.OptionGroupOptionArgs{\n\t\t\t\t\tOptionName: pulumi.String(\"TDE\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.OptionGroup;\nimport com.pulumi.aws.rds.OptionGroupArgs;\nimport com.pulumi.aws.rds.inputs.OptionGroupOptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new OptionGroup(\"example\", OptionGroupArgs.builder() \n .optionGroupDescription(\"Option Group\")\n .engineName(\"sqlserver-ee\")\n .majorEngineVersion(\"11.00\")\n .options( \n OptionGroupOptionArgs.builder()\n .optionName(\"Timezone\")\n .optionSettings(OptionGroupOptionOptionSettingArgs.builder()\n .name(\"TIME_ZONE\")\n .value(\"UTC\")\n .build())\n .build(),\n OptionGroupOptionArgs.builder()\n .optionName(\"SQLSERVER_BACKUP_RESTORE\")\n .optionSettings(OptionGroupOptionOptionSettingArgs.builder()\n .name(\"IAM_ROLE_ARN\")\n .value(aws_iam_role.example().arn())\n .build())\n .build(),\n OptionGroupOptionArgs.builder()\n .optionName(\"TDE\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:OptionGroup\n properties:\n optionGroupDescription: Option Group\n engineName: sqlserver-ee\n majorEngineVersion: 11.00\n options:\n - optionName: Timezone\n optionSettings:\n - name: TIME_ZONE\n value: UTC\n - optionName: SQLSERVER_BACKUP_RESTORE\n optionSettings:\n - name: IAM_ROLE_ARN\n value: ${aws_iam_role.example.arn}\n - optionName: TDE\n```\n\n\u003e **Note:** Any modifications to the `aws.rds.OptionGroup` are set to happen immediately as we default to applying immediately.\n\n\u003e **WARNING:** You can perform a destroy on a `aws.rds.OptionGroup`, as long as it is not associated with any Amazon RDS resource. An option group can be associated with a DB instance, a manual DB snapshot, or an automated DB snapshot.\n\nIf you try to delete an option group that is associated with an Amazon RDS resource, an error similar to the following is returned:\n\n\u003e An error occurred (InvalidOptionGroupStateFault) when calling the DeleteOptionGroup operation: The option group 'optionGroupName' cannot be deleted because it is in use.\n\nMore information about this can be found [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithOptionGroups.html#USER_WorkingWithOptionGroups.Delete).\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDB Option groups can be imported using the `name`, e.g.,\n\n```sh\n $ pulumi import aws:rds/optionGroup:OptionGroup example mysql-option-group\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -504126,6 +507823,225 @@
"type": "object"
}
},
+ "aws:rds/reservedInstance:ReservedInstance": {
+ "description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.rds.getReservedInstanceOffering({\n dbInstanceClass: \"db.t2.micro\",\n duration: 31536000,\n multiAz: false,\n offeringType: \"All Upfront\",\n productDescription: \"mysql\",\n});\nconst example = new aws.rds.ReservedInstance(\"example\", {\n offeringId: test.then(test =\u003e test.offeringId),\n reservationId: \"optionalCustomReservationID\",\n instanceCount: 3,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.rds.get_reserved_instance_offering(db_instance_class=\"db.t2.micro\",\n duration=31536000,\n multi_az=False,\n offering_type=\"All Upfront\",\n product_description=\"mysql\")\nexample = aws.rds.ReservedInstance(\"example\",\n offering_id=test.offering_id,\n reservation_id=\"optionalCustomReservationID\",\n instance_count=3)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Rds.GetReservedInstanceOffering.Invoke(new()\n {\n DbInstanceClass = \"db.t2.micro\",\n Duration = 31536000,\n MultiAz = false,\n OfferingType = \"All Upfront\",\n ProductDescription = \"mysql\",\n });\n\n var example = new Aws.Rds.ReservedInstance(\"example\", new()\n {\n OfferingId = test.Apply(getReservedInstanceOfferingResult =\u003e getReservedInstanceOfferingResult.OfferingId),\n ReservationId = \"optionalCustomReservationID\",\n InstanceCount = 3,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rds.GetReservedInstanceOffering(ctx, \u0026rds.GetReservedInstanceOfferingArgs{\n\t\t\tDbInstanceClass: \"db.t2.micro\",\n\t\t\tDuration: 31536000,\n\t\t\tMultiAz: false,\n\t\t\tOfferingType: \"All Upfront\",\n\t\t\tProductDescription: \"mysql\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rds.NewReservedInstance(ctx, \"example\", \u0026rds.ReservedInstanceArgs{\n\t\t\tOfferingId: pulumi.String(test.OfferingId),\n\t\t\tReservationId: pulumi.String(\"optionalCustomReservationID\"),\n\t\t\tInstanceCount: pulumi.Int(3),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetReservedInstanceOfferingArgs;\nimport com.pulumi.aws.rds.ReservedInstance;\nimport com.pulumi.aws.rds.ReservedInstanceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = RdsFunctions.getReservedInstanceOffering(GetReservedInstanceOfferingArgs.builder()\n .dbInstanceClass(\"db.t2.micro\")\n .duration(31536000)\n .multiAz(false)\n .offeringType(\"All Upfront\")\n .productDescription(\"mysql\")\n .build());\n\n var example = new ReservedInstance(\"example\", ReservedInstanceArgs.builder() \n .offeringId(test.applyValue(getReservedInstanceOfferingResult -\u003e getReservedInstanceOfferingResult.offeringId()))\n .reservationId(\"optionalCustomReservationID\")\n .instanceCount(3)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:ReservedInstance\n properties:\n offeringId: ${test.offeringId}\n reservationId: optionalCustomReservationID\n instanceCount: 3\nvariables:\n test:\n Fn::Invoke:\n Function: aws:rds:getReservedInstanceOffering\n Arguments:\n dbInstanceClass: db.t2.micro\n duration: 3.1536e+07\n multiAz: false\n offeringType: All Upfront\n productDescription: mysql\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nRDS DB Instance Reservations can be imported using the `instance_id`, e.g.,\n\n```sh\n $ pulumi import aws:rds/reservedInstance:ReservedInstance reservation_instance CustomReservationID\n```\n\n ",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN for the reserved DB instance.\n"
+ },
+ "currencyCode": {
+ "type": "string",
+ "description": "Currency code for the reserved DB instance.\n"
+ },
+ "dbInstanceClass": {
+ "type": "string"
+ },
+ "duration": {
+ "type": "integer",
+ "description": "Duration of the reservation in seconds.\n"
+ },
+ "fixedPrice": {
+ "type": "number",
+ "description": "Fixed price charged for this reserved DB instance.\n"
+ },
+ "instanceCount": {
+ "type": "integer",
+ "description": "Number of instances to reserve. Default value is `1`.\n"
+ },
+ "leaseId": {
+ "type": "string",
+ "description": "Unique identifier for the lease associated with the reserved DB instance. Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance.\n"
+ },
+ "multiAz": {
+ "type": "boolean",
+ "description": "Whether the reservation applies to Multi-AZ deployments.\n"
+ },
+ "offeringId": {
+ "type": "string",
+ "description": "ID of the Reserved DB instance offering to purchase. To determine an `offering_id`, see the `aws.rds.getReservedInstanceOffering` data source.\n"
+ },
+ "offeringType": {
+ "type": "string",
+ "description": "Offering type of this reserved DB instance.\n"
+ },
+ "productDescription": {
+ "type": "string",
+ "description": "Description of the reserved DB instance.\n"
+ },
+ "recurringCharges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:rds/ReservedInstanceRecurringCharge:ReservedInstanceRecurringCharge"
+ },
+ "description": "Recurring price charged to run this reserved DB instance.\n"
+ },
+ "reservationId": {
+ "type": "string"
+ },
+ "startTime": {
+ "type": "string",
+ "description": "Time the reservation started.\n"
+ },
+ "state": {
+ "type": "string",
+ "description": "State of the reserved DB instance.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of tags to assign to the DB reservation. If configured with a provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "usagePrice": {
+ "type": "number",
+ "description": "Hourly price charged for this reserved DB instance.\n"
+ }
+ },
+ "required": [
+ "arn",
+ "currencyCode",
+ "dbInstanceClass",
+ "duration",
+ "fixedPrice",
+ "leaseId",
+ "multiAz",
+ "offeringId",
+ "offeringType",
+ "productDescription",
+ "recurringCharges",
+ "startTime",
+ "state",
+ "tagsAll",
+ "usagePrice"
+ ],
+ "inputProperties": {
+ "instanceCount": {
+ "type": "integer",
+ "description": "Number of instances to reserve. Default value is `1`.\n",
+ "willReplaceOnChanges": true
+ },
+ "offeringId": {
+ "type": "string",
+ "description": "ID of the Reserved DB instance offering to purchase. To determine an `offering_id`, see the `aws.rds.getReservedInstanceOffering` data source.\n",
+ "willReplaceOnChanges": true
+ },
+ "reservationId": {
+ "type": "string",
+ "willReplaceOnChanges": true
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of tags to assign to the DB reservation. If configured with a provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "requiredInputs": [
+ "offeringId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering ReservedInstance resources.\n",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN for the reserved DB instance.\n"
+ },
+ "currencyCode": {
+ "type": "string",
+ "description": "Currency code for the reserved DB instance.\n"
+ },
+ "dbInstanceClass": {
+ "type": "string"
+ },
+ "duration": {
+ "type": "integer",
+ "description": "Duration of the reservation in seconds.\n"
+ },
+ "fixedPrice": {
+ "type": "number",
+ "description": "Fixed price charged for this reserved DB instance.\n"
+ },
+ "instanceCount": {
+ "type": "integer",
+ "description": "Number of instances to reserve. Default value is `1`.\n",
+ "willReplaceOnChanges": true
+ },
+ "leaseId": {
+ "type": "string",
+ "description": "Unique identifier for the lease associated with the reserved DB instance. Amazon Web Services Support might request the lease ID for an issue related to a reserved DB instance.\n"
+ },
+ "multiAz": {
+ "type": "boolean",
+ "description": "Whether the reservation applies to Multi-AZ deployments.\n"
+ },
+ "offeringId": {
+ "type": "string",
+ "description": "ID of the Reserved DB instance offering to purchase. To determine an `offering_id`, see the `aws.rds.getReservedInstanceOffering` data source.\n",
+ "willReplaceOnChanges": true
+ },
+ "offeringType": {
+ "type": "string",
+ "description": "Offering type of this reserved DB instance.\n"
+ },
+ "productDescription": {
+ "type": "string",
+ "description": "Description of the reserved DB instance.\n"
+ },
+ "recurringCharges": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:rds/ReservedInstanceRecurringCharge:ReservedInstanceRecurringCharge"
+ },
+ "description": "Recurring price charged to run this reserved DB instance.\n"
+ },
+ "reservationId": {
+ "type": "string",
+ "willReplaceOnChanges": true
+ },
+ "startTime": {
+ "type": "string",
+ "description": "Time the reservation started.\n"
+ },
+ "state": {
+ "type": "string",
+ "description": "State of the reserved DB instance.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Map of tags to assign to the DB reservation. If configured with a provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.\n"
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "usagePrice": {
+ "type": "number",
+ "description": "Hourly price charged for this reserved DB instance.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:rds/roleAssociation:RoleAssociation": {
"description": "Manages an RDS DB Instance association with an IAM Role. Example use cases:\n\n* [Amazon RDS Oracle integration with Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)\n* [Importing Amazon S3 Data into an RDS PostgreSQL DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.S3Import.html)\n\n\u003e To manage the RDS DB Instance IAM Role for [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html), see the `aws.rds.Instance` resource `monitoring_role_arn` argument instead.\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.rds.RoleAssociation(\"example\", {\n dbInstanceIdentifier: aws_db_instance.example.id,\n featureName: \"S3_INTEGRATION\",\n roleArn: aws_iam_role.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.RoleAssociation(\"example\",\n db_instance_identifier=aws_db_instance[\"example\"][\"id\"],\n feature_name=\"S3_INTEGRATION\",\n role_arn=aws_iam_role[\"example\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Rds.RoleAssociation(\"example\", new()\n {\n DbInstanceIdentifier = aws_db_instance.Example.Id,\n FeatureName = \"S3_INTEGRATION\",\n RoleArn = aws_iam_role.Example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewRoleAssociation(ctx, \"example\", \u0026rds.RoleAssociationArgs{\n\t\t\tDbInstanceIdentifier: pulumi.Any(aws_db_instance.Example.Id),\n\t\t\tFeatureName: pulumi.String(\"S3_INTEGRATION\"),\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RoleAssociation;\nimport com.pulumi.aws.rds.RoleAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new RoleAssociation(\"example\", RoleAssociationArgs.builder() \n .dbInstanceIdentifier(aws_db_instance.example().id())\n .featureName(\"S3_INTEGRATION\")\n .roleArn(aws_iam_role.example().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:rds:RoleAssociation\n properties:\n dbInstanceIdentifier: ${aws_db_instance.example.id}\n featureName: S3_INTEGRATION\n roleArn: ${aws_iam_role.example.arn}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_db_instance_role_association` can be imported using the DB Instance Identifier and IAM Role ARN separated by a comma (`,`), e.g.,\n\n```sh\n $ pulumi import aws:rds/roleAssociation:RoleAssociation example my-db-instance,arn:aws:iam::123456789012:role/my-role\n```\n\n ",
"properties": {
@@ -516590,6 +520506,129 @@
"type": "object"
}
},
+ "aws:s3control/storageLensConfiguration:StorageLensConfiguration": {
+ "description": "Provides a resource to manage an S3 Storage Lens configuration.\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 current = aws.getCallerIdentity({});\nconst example = new aws.s3control.StorageLensConfiguration(\"example\", {\n configId: \"example-1\",\n storageLensConfiguration: {\n enabled: true,\n accountLevel: {\n activityMetrics: {\n enabled: true,\n },\n bucketLevel: {\n activityMetrics: {\n enabled: true,\n },\n },\n },\n dataExport: {\n cloudWatchMetrics: {\n enabled: true,\n },\n s3BucketDestination: {\n accountId: current.then(current =\u003e current.accountId),\n arn: aws_s3_bucket.target.arn,\n format: \"CSV\",\n outputSchemaVersion: \"V_1\",\n encryption: {\n sseS3s: [{}],\n },\n },\n },\n exclude: {\n buckets: [\n aws_s3_bucket.b1.arn,\n aws_s3_bucket.b2.arn,\n ],\n regions: [\"us-east-2\"],\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_caller_identity()\nexample = aws.s3control.StorageLensConfiguration(\"example\",\n config_id=\"example-1\",\n storage_lens_configuration=aws.s3control.StorageLensConfigurationStorageLensConfigurationArgs(\n enabled=True,\n account_level=aws.s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelArgs(\n activity_metrics=aws.s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs(\n enabled=True,\n ),\n bucket_level=aws.s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs(\n activity_metrics=aws.s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs(\n enabled=True,\n ),\n ),\n ),\n data_export=aws.s3control.StorageLensConfigurationStorageLensConfigurationDataExportArgs(\n cloud_watch_metrics=aws.s3control.StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs(\n enabled=True,\n ),\n s3_bucket_destination=aws.s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs(\n account_id=current.account_id,\n arn=aws_s3_bucket[\"target\"][\"arn\"],\n format=\"CSV\",\n output_schema_version=\"V_1\",\n encryption=aws.s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs(\n sse_s3s=[aws.s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Args()],\n ),\n ),\n ),\n exclude=aws.s3control.StorageLensConfigurationStorageLensConfigurationExcludeArgs(\n buckets=[\n aws_s3_bucket[\"b1\"][\"arn\"],\n aws_s3_bucket[\"b2\"][\"arn\"],\n ],\n regions=[\"us-east-2\"],\n ),\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetCallerIdentity.Invoke();\n\n var example = new Aws.S3Control.StorageLensConfiguration(\"example\", new()\n {\n ConfigId = \"example-1\",\n StorageLensConfigurationDetail = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationArgs\n {\n Enabled = true,\n AccountLevel = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelArgs\n {\n ActivityMetrics = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs\n {\n Enabled = true,\n },\n BucketLevel = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs\n {\n ActivityMetrics = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs\n {\n Enabled = true,\n },\n },\n },\n DataExport = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationDataExportArgs\n {\n CloudWatchMetrics = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs\n {\n Enabled = true,\n },\n S3BucketDestination = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs\n {\n AccountId = current.Apply(getCallerIdentityResult =\u003e getCallerIdentityResult.AccountId),\n Arn = aws_s3_bucket.Target.Arn,\n Format = \"CSV\",\n OutputSchemaVersion = \"V_1\",\n Encryption = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs\n {\n SseS3s = new[]\n {\n ,\n },\n },\n },\n },\n Exclude = new Aws.S3Control.Inputs.StorageLensConfigurationStorageLensConfigurationExcludeArgs\n {\n Buckets = new[]\n {\n aws_s3_bucket.B1.Arn,\n aws_s3_bucket.B2.Arn,\n },\n Regions = new[]\n {\n \"us-east-2\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3control\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetCallerIdentity(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = s3control.NewStorageLensConfiguration(ctx, \"example\", \u0026s3control.StorageLensConfigurationArgs{\n\t\t\tConfigId: pulumi.String(\"example-1\"),\n\t\t\tStorageLensConfiguration: \u0026s3control.StorageLensConfigurationStorageLensConfigurationArgs{\n\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\tAccountLevel: \u0026s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelArgs{\n\t\t\t\t\tActivityMetrics: \u0026s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tBucketLevel: \u0026s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs{\n\t\t\t\t\t\tActivityMetrics: \u0026s3control.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs{\n\t\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tDataExport: \u0026s3control.StorageLensConfigurationStorageLensConfigurationDataExportArgs{\n\t\t\t\t\tCloudWatchMetrics: \u0026s3control.StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs{\n\t\t\t\t\t\tEnabled: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t\tS3BucketDestination: \u0026s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs{\n\t\t\t\t\t\tAccountId: pulumi.String(current.AccountId),\n\t\t\t\t\t\tArn: pulumi.Any(aws_s3_bucket.Target.Arn),\n\t\t\t\t\t\tFormat: pulumi.String(\"CSV\"),\n\t\t\t\t\t\tOutputSchemaVersion: pulumi.String(\"V_1\"),\n\t\t\t\t\t\tEncryption: \u0026s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs{\n\t\t\t\t\t\t\tSseS3s: s3control.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionSseS3Array{\n\t\t\t\t\t\t\t\tnil,\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\tExclude: \u0026s3control.StorageLensConfigurationStorageLensConfigurationExcludeArgs{\n\t\t\t\t\tBuckets: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.Any(aws_s3_bucket.B1.Arn),\n\t\t\t\t\t\tpulumi.Any(aws_s3_bucket.B2.Arn),\n\t\t\t\t\t},\n\t\t\t\t\tRegions: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"us-east-2\"),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.s3control.StorageLensConfiguration;\nimport com.pulumi.aws.s3control.StorageLensConfigurationArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationDataExportArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs;\nimport com.pulumi.aws.s3control.inputs.StorageLensConfigurationStorageLensConfigurationExcludeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getCallerIdentity();\n\n var example = new StorageLensConfiguration(\"example\", StorageLensConfigurationArgs.builder() \n .configId(\"example-1\")\n .storageLensConfiguration(StorageLensConfigurationStorageLensConfigurationArgs.builder()\n .enabled(true)\n .accountLevel(StorageLensConfigurationStorageLensConfigurationAccountLevelArgs.builder()\n .activityMetrics(StorageLensConfigurationStorageLensConfigurationAccountLevelActivityMetricsArgs.builder()\n .enabled(true)\n .build())\n .bucketLevel(StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelArgs.builder()\n .activityMetrics(StorageLensConfigurationStorageLensConfigurationAccountLevelBucketLevelActivityMetricsArgs.builder()\n .enabled(true)\n .build())\n .build())\n .build())\n .dataExport(StorageLensConfigurationStorageLensConfigurationDataExportArgs.builder()\n .cloudWatchMetrics(StorageLensConfigurationStorageLensConfigurationDataExportCloudWatchMetricsArgs.builder()\n .enabled(true)\n .build())\n .s3BucketDestination(StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationArgs.builder()\n .accountId(current.applyValue(getCallerIdentityResult -\u003e getCallerIdentityResult.accountId()))\n .arn(aws_s3_bucket.target().arn())\n .format(\"CSV\")\n .outputSchemaVersion(\"V_1\")\n .encryption(StorageLensConfigurationStorageLensConfigurationDataExportS3BucketDestinationEncryptionArgs.builder()\n .sseS3s()\n .build())\n .build())\n .build())\n .exclude(StorageLensConfigurationStorageLensConfigurationExcludeArgs.builder()\n .buckets( \n aws_s3_bucket.b1().arn(),\n aws_s3_bucket.b2().arn())\n .regions(\"us-east-2\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3control:StorageLensConfiguration\n properties:\n configId: example-1\n storageLensConfiguration:\n enabled: true\n accountLevel:\n activityMetrics:\n enabled: true\n bucketLevel:\n activityMetrics:\n enabled: true\n dataExport:\n cloudWatchMetrics:\n enabled: true\n s3BucketDestination:\n accountId: ${current.accountId}\n arn: ${aws_s3_bucket.target.arn}\n format: CSV\n outputSchemaVersion: V_1\n encryption:\n sseS3s:\n - {}\n exclude:\n buckets:\n - ${aws_s3_bucket.b1.arn}\n - ${aws_s3_bucket.b2.arn}\n regions:\n - us-east-2\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getCallerIdentity\n Arguments: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nS3 Storage Lens configurations can be imported using the `account_id` and `config_id`, separated by a colon (`:`), e.g.\n\n```sh\n $ pulumi import aws:s3control/storageLensConfiguration:StorageLensConfiguration example 123456789012:example-1\n```\n\n ",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "The account ID of the owner of the S3 Storage Lens metrics export bucket.\n"
+ },
+ "arn": {
+ "type": "string",
+ "description": "The Amazon Resource Name (ARN) of the bucket.\n"
+ },
+ "configId": {
+ "type": "string",
+ "description": "The ID of the S3 Storage Lens configuration.\n"
+ },
+ "storageLensConfiguration": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfiguration:StorageLensConfigurationStorageLensConfiguration",
+ "description": "The S3 Storage Lens configuration. See Storage Lens Configuration below for more details.\n",
+ "language": {
+ "csharp": {
+ "name": "StorageLensConfigurationDetail"
+ }
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "required": [
+ "accountId",
+ "arn",
+ "configId",
+ "storageLensConfiguration",
+ "tagsAll"
+ ],
+ "inputProperties": {
+ "accountId": {
+ "type": "string",
+ "description": "The account ID of the owner of the S3 Storage Lens metrics export bucket.\n",
+ "willReplaceOnChanges": true
+ },
+ "configId": {
+ "type": "string",
+ "description": "The ID of the S3 Storage Lens configuration.\n",
+ "willReplaceOnChanges": true
+ },
+ "storageLensConfiguration": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfiguration:StorageLensConfigurationStorageLensConfiguration",
+ "description": "The S3 Storage Lens configuration. See Storage Lens Configuration below for more details.\n",
+ "language": {
+ "csharp": {
+ "name": "StorageLensConfigurationDetail"
+ }
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "requiredInputs": [
+ "configId",
+ "storageLensConfiguration"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering StorageLensConfiguration resources.\n",
+ "properties": {
+ "accountId": {
+ "type": "string",
+ "description": "The account ID of the owner of the S3 Storage Lens metrics export bucket.\n",
+ "willReplaceOnChanges": true
+ },
+ "arn": {
+ "type": "string",
+ "description": "The Amazon Resource Name (ARN) of the bucket.\n"
+ },
+ "configId": {
+ "type": "string",
+ "description": "The ID of the S3 Storage Lens configuration.\n",
+ "willReplaceOnChanges": true
+ },
+ "storageLensConfiguration": {
+ "$ref": "#/types/aws:s3control/StorageLensConfigurationStorageLensConfiguration:StorageLensConfigurationStorageLensConfiguration",
+ "description": "The S3 Storage Lens configuration. See Storage Lens Configuration below for more details.\n",
+ "language": {
+ "csharp": {
+ "name": "StorageLensConfigurationDetail"
+ }
+ }
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:s3outposts/endpoint:Endpoint": {
"description": "Provides a resource to manage an S3 Outposts Endpoint.\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.s3outposts.Endpoint(\"example\", {\n outpostId: data.aws_outposts_outpost.example.id,\n securityGroupId: aws_security_group.example.id,\n subnetId: aws_subnet.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.s3outposts.Endpoint(\"example\",\n outpost_id=data[\"aws_outposts_outpost\"][\"example\"][\"id\"],\n security_group_id=aws_security_group[\"example\"][\"id\"],\n subnet_id=aws_subnet[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.S3Outposts.Endpoint(\"example\", new()\n {\n OutpostId = data.Aws_outposts_outpost.Example.Id,\n SecurityGroupId = aws_security_group.Example.Id,\n SubnetId = aws_subnet.Example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/s3outposts\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := s3outposts.NewEndpoint(ctx, \"example\", \u0026s3outposts.EndpointArgs{\n\t\t\tOutpostId: pulumi.Any(data.Aws_outposts_outpost.Example.Id),\n\t\t\tSecurityGroupId: pulumi.Any(aws_security_group.Example.Id),\n\t\t\tSubnetId: pulumi.Any(aws_subnet.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.s3outposts.Endpoint;\nimport com.pulumi.aws.s3outposts.EndpointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Endpoint(\"example\", EndpointArgs.builder() \n .outpostId(data.aws_outposts_outpost().example().id())\n .securityGroupId(aws_security_group.example().id())\n .subnetId(aws_subnet.example().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:s3outposts:Endpoint\n properties:\n outpostId: ${data.aws_outposts_outpost.example.id}\n securityGroupId: ${aws_security_group.example.id}\n subnetId: ${aws_subnet.example.id}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nS3 Outposts Endpoints can be imported using Amazon Resource Name (ARN), EC2 Security Group identifier, and EC2 Subnet identifier, separated by commas (`,`) e.g.,\n\n```sh\n $ pulumi import aws:s3outposts/endpoint:Endpoint example arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-12345678/endpoint/0123456789abcdef,sg-12345678,subnet-12345678\n```\n\n ",
"properties": {
@@ -519621,7 +523660,7 @@
}
},
"aws:schemas/discoverer:Discoverer": {
- "description": "Provides an EventBridge Schema Discoverer resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 messenger = new aws.cloudwatch.EventBus(\"messenger\", {});\nconst test = new aws.schemas.Discoverer(\"test\", {\n sourceArn: messenger.arn,\n description: \"Auto discover event schemas\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmessenger = aws.cloudwatch.EventBus(\"messenger\")\ntest = aws.schemas.Discoverer(\"test\",\n source_arn=messenger.arn,\n description=\"Auto discover event schemas\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var messenger = new Aws.CloudWatch.EventBus(\"messenger\");\n\n var test = new Aws.Schemas.Discoverer(\"test\", new()\n {\n SourceArn = messenger.Arn,\n Description = \"Auto discover event schemas\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/schemas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmessenger, err := cloudwatch.NewEventBus(ctx, \"messenger\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = schemas.NewDiscoverer(ctx, \"test\", \u0026schemas.DiscovererArgs{\n\t\t\tSourceArn: messenger.Arn,\n\t\t\tDescription: pulumi.String(\"Auto discover event schemas\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.schemas.Discoverer;\nimport com.pulumi.aws.schemas.DiscovererArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var messenger = new EventBus(\"messenger\");\n\n var test = new Discoverer(\"test\", DiscovererArgs.builder() \n .sourceArn(messenger.arn())\n .description(\"Auto discover event schemas\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n messenger:\n type: aws:cloudwatch:EventBus\n test:\n type: aws:schemas:Discoverer\n properties:\n sourceArn: ${messenger.arn}\n description: Auto discover event schemas\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge discoverers can be imported using the `id`, e.g., console\n\n```sh\n $ pulumi import aws:schemas/discoverer:Discoverer test 123\n```\n\n ",
+ "description": "Provides an EventBridge Schema Discoverer resource.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 messenger = new aws.cloudwatch.EventBus(\"messenger\", {});\nconst test = new aws.schemas.Discoverer(\"test\", {\n sourceArn: messenger.arn,\n description: \"Auto discover event schemas\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmessenger = aws.cloudwatch.EventBus(\"messenger\")\ntest = aws.schemas.Discoverer(\"test\",\n source_arn=messenger.arn,\n description=\"Auto discover event schemas\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var messenger = new Aws.CloudWatch.EventBus(\"messenger\");\n\n var test = new Aws.Schemas.Discoverer(\"test\", new()\n {\n SourceArn = messenger.Arn,\n Description = \"Auto discover event schemas\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/schemas\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmessenger, err := cloudwatch.NewEventBus(ctx, \"messenger\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = schemas.NewDiscoverer(ctx, \"test\", \u0026schemas.DiscovererArgs{\n\t\t\tSourceArn: messenger.Arn,\n\t\t\tDescription: pulumi.String(\"Auto discover event schemas\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.EventBus;\nimport com.pulumi.aws.schemas.Discoverer;\nimport com.pulumi.aws.schemas.DiscovererArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var messenger = new EventBus(\"messenger\");\n\n var test = new Discoverer(\"test\", DiscovererArgs.builder() \n .sourceArn(messenger.arn())\n .description(\"Auto discover event schemas\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n messenger:\n type: aws:cloudwatch:EventBus\n test:\n type: aws:schemas:Discoverer\n properties:\n sourceArn: ${messenger.arn}\n description: Auto discover event schemas\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEventBridge discoverers can be imported using the `id`, e.g., console\n\n```sh\n $ pulumi import aws:schemas/discoverer:Discoverer test 123\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -521661,7 +525700,7 @@
}
},
"aws:servicecatalog/product:Product": {
- "description": "Manages a Service Catalog Product.\n\n\u003e **NOTE:** The user or role that uses this resources must have the `cloudformation:GetTemplate` IAM policy permission. This policy permission is required when using the `template_physical_id` argument.\n\n\u003e A \"provisioning artifact\" is also referred to as a \"version.\" A \"distributor\" is also referred to as a \"vendor.\"\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Usage\n\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.servicecatalog.Product;\nimport com.pulumi.aws.servicecatalog.ProductArgs;\nimport com.pulumi.aws.servicecatalog.inputs.ProductProvisioningArtifactParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Product(\"example\", ProductArgs.builder() \n .owner(aws_security_group.example().id())\n .type(aws_subnet.main().id())\n .provisioningArtifactParameters(ProductProvisioningArtifactParametersArgs.builder()\n .templateUrl(\"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\")\n .build())\n .tags(Map.of(\"foo\", \"bar\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicecatalog:Product\n properties:\n owner:\n - ${aws_security_group.example.id}\n type: ${aws_subnet.main.id}\n provisioningArtifactParameters:\n templateUrl: https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\n tags:\n foo: bar\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_servicecatalog_product` can be imported using the product ID, e.g.,\n\n```sh\n $ pulumi import aws:servicecatalog/product:Product example prod-dnigbtea24ste\n```\n\n ",
+ "description": "Manages a Service Catalog Product.\n\n\u003e **NOTE:** The user or role that uses this resources must have the `cloudformation:GetTemplate` IAM policy permission. This policy permission is required when using the `template_physical_id` argument.\n\n\u003e A \"provisioning artifact\" is also referred to as a \"version.\" A \"distributor\" is also referred to as a \"vendor.\"\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.servicecatalog.Product(\"example\", {\n owner: \"example-owner\",\n provisioningArtifactParameters: {\n templateUrl: \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\",\n },\n tags: {\n foo: \"bar\",\n },\n type: \"CLOUD_FORMATION_TEMPLATE\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicecatalog.Product(\"example\",\n owner=\"example-owner\",\n provisioning_artifact_parameters=aws.servicecatalog.ProductProvisioningArtifactParametersArgs(\n template_url=\"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\",\n ),\n tags={\n \"foo\": \"bar\",\n },\n type=\"CLOUD_FORMATION_TEMPLATE\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.ServiceCatalog.Product(\"example\", new()\n {\n Owner = \"example-owner\",\n ProvisioningArtifactParameters = new Aws.ServiceCatalog.Inputs.ProductProvisioningArtifactParametersArgs\n {\n TemplateUrl = \"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\",\n },\n Tags = \n {\n { \"foo\", \"bar\" },\n },\n Type = \"CLOUD_FORMATION_TEMPLATE\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/servicecatalog\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := servicecatalog.NewProduct(ctx, \"example\", \u0026servicecatalog.ProductArgs{\n\t\t\tOwner: pulumi.String(\"example-owner\"),\n\t\t\tProvisioningArtifactParameters: \u0026servicecatalog.ProductProvisioningArtifactParametersArgs{\n\t\t\t\tTemplateUrl: pulumi.String(\"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"foo\": pulumi.String(\"bar\"),\n\t\t\t},\n\t\t\tType: pulumi.String(\"CLOUD_FORMATION_TEMPLATE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.servicecatalog.Product;\nimport com.pulumi.aws.servicecatalog.ProductArgs;\nimport com.pulumi.aws.servicecatalog.inputs.ProductProvisioningArtifactParametersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Product(\"example\", ProductArgs.builder() \n .owner(\"example-owner\")\n .provisioningArtifactParameters(ProductProvisioningArtifactParametersArgs.builder()\n .templateUrl(\"https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\")\n .build())\n .tags(Map.of(\"foo\", \"bar\"))\n .type(\"CLOUD_FORMATION_TEMPLATE\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:servicecatalog:Product\n properties:\n owner: example-owner\n provisioningArtifactParameters:\n templateUrl: https://s3.amazonaws.com/cf-templates-ozkq9d3hgiq2-us-east-1/temp1.json\n tags:\n foo: bar\n type: CLOUD_FORMATION_TEMPLATE\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_servicecatalog_product` can be imported using the product ID, e.g.,\n\n```sh\n $ pulumi import aws:servicecatalog/product:Product example prod-dnigbtea24ste\n```\n\n ",
"properties": {
"acceptLanguage": {
"type": "string",
@@ -523579,7 +527618,7 @@
]
},
"aws:ses/domainDkim:DomainDkim": {
- "description": "Provides an SES domain DKIM generation resource.\n\nDomain ownership needs to be confirmed first using `aws.ses.DomainIdentity` 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 exampleDomainIdentity = new aws.ses.DomainIdentity(\"exampleDomainIdentity\", {domain: \"example.com\"});\nconst exampleDomainDkim = new aws.ses.DomainDkim(\"exampleDomainDkim\", {domain: exampleDomainIdentity.domain});\nconst exampleAmazonsesDkimRecord: aws.route53.Record[];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n exampleAmazonsesDkimRecord.push(new aws.route53.Record(`exampleAmazonsesDkimRecord-${range.value}`, {\n zoneId: \"ABCDEFGHIJ123\",\n name: exampleDomainDkim.dkimTokens[range.value].apply(dkimTokens =\u003e `${dkimTokens}._domainkey`),\n type: \"CNAME\",\n ttl: 600,\n records: [exampleDomainDkim.dkimTokens[range.value].apply(dkimTokens =\u003e `${dkimTokens}.dkim.amazonses.com`)],\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_domain_identity = aws.ses.DomainIdentity(\"exampleDomainIdentity\", domain=\"example.com\")\nexample_domain_dkim = aws.ses.DomainDkim(\"exampleDomainDkim\", domain=example_domain_identity.domain)\nexample_amazonses_dkim_record = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example_amazonses_dkim_record.append(aws.route53.Record(f\"exampleAmazonsesDkimRecord-{range['value']}\",\n zone_id=\"ABCDEFGHIJ123\",\n name=example_domain_dkim.dkim_tokens[range[\"value\"]].apply(lambda dkim_tokens: f\"{dkim_tokens}._domainkey\"),\n type=\"CNAME\",\n ttl=600,\n records=[example_domain_dkim.dkim_tokens[range[\"value\"]].apply(lambda dkim_tokens: f\"{dkim_tokens}.dkim.amazonses.com\")]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleDomainIdentity = new Aws.Ses.DomainIdentity(\"exampleDomainIdentity\", new()\n {\n Domain = \"example.com\",\n });\n\n var exampleDomainDkim = new Aws.Ses.DomainDkim(\"exampleDomainDkim\", new()\n {\n Domain = exampleDomainIdentity.Domain,\n });\n\n var exampleAmazonsesDkimRecord = new List\u003cAws.Route53.Record\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n exampleAmazonsesDkimRecord.Add(new Aws.Route53.Record($\"exampleAmazonsesDkimRecord-{range.Value}\", new()\n {\n ZoneId = \"ABCDEFGHIJ123\",\n Name = exampleDomainDkim.DkimTokens[range.Value].Apply(dkimTokens =\u003e $\"{dkimTokens}._domainkey\"),\n Type = \"CNAME\",\n Ttl = 600,\n Records = new[]\n {\n exampleDomainDkim.DkimTokens[range.Value].Apply(dkimTokens =\u003e $\"{dkimTokens}.dkim.amazonses.com\"),\n },\n }));\n }\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.DomainIdentity;\nimport com.pulumi.aws.ses.DomainIdentityArgs;\nimport com.pulumi.aws.ses.DomainDkim;\nimport com.pulumi.aws.ses.DomainDkimArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleDomainIdentity = new DomainIdentity(\"exampleDomainIdentity\", DomainIdentityArgs.builder() \n .domain(\"example.com\")\n .build());\n\n var exampleDomainDkim = new DomainDkim(\"exampleDomainDkim\", DomainDkimArgs.builder() \n .domain(exampleDomainIdentity.domain())\n .build());\n\n for (var i = 0; i \u003c 3; i++) {\n new Record(\"exampleAmazonsesDkimRecord-\" + i, RecordArgs.builder() \n .zoneId(\"ABCDEFGHIJ123\")\n .name(exampleDomainDkim.dkimTokens()[range.value()].applyValue(dkimTokens -\u003e String.format(\"%s._domainkey\", dkimTokens)))\n .type(\"CNAME\")\n .ttl(\"600\")\n .records(exampleDomainDkim.dkimTokens()[range.value()].applyValue(dkimTokens -\u003e String.format(\"%s.dkim.amazonses.com\", dkimTokens)))\n .build());\n\n \n}\n }\n}\n```\n```yaml\nresources:\n exampleDomainIdentity:\n type: aws:ses:DomainIdentity\n properties:\n domain: example.com\n exampleDomainDkim:\n type: aws:ses:DomainDkim\n properties:\n domain: ${exampleDomainIdentity.domain}\n exampleAmazonsesDkimRecord:\n type: aws:route53:Record\n properties:\n zoneId: ABCDEFGHIJ123\n name:\n Fn::Join:\n -\n - - Fn::Select:\n - ${range.value}\n - ${exampleDomainDkim.dkimTokens}\n - ._domainkey\n type: CNAME\n ttl: 600\n records:\n - Fn::Join:\n -\n - - Fn::Select:\n - ${range.value}\n - ${exampleDomainDkim.dkimTokens}\n - .dkim.amazonses.com\n options: {}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDKIM tokens can be imported using the `domain` attribute, e.g.,\n\n```sh\n $ pulumi import aws:ses/domainDkim:DomainDkim example example.com\n```\n\n ",
+ "description": "Provides an SES domain DKIM generation resource.\n\nDomain ownership needs to be confirmed first using `aws.ses.DomainIdentity` 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 exampleDomainIdentity = new aws.ses.DomainIdentity(\"exampleDomainIdentity\", {domain: \"example.com\"});\nconst exampleDomainDkim = new aws.ses.DomainDkim(\"exampleDomainDkim\", {domain: exampleDomainIdentity.domain});\nconst exampleAmazonsesDkimRecord: aws.route53.Record[];\nfor (const range = {value: 0}; range.value \u003c 3; range.value++) {\n exampleAmazonsesDkimRecord.push(new aws.route53.Record(`exampleAmazonsesDkimRecord-${range.value}`, {\n zoneId: \"ABCDEFGHIJ123\",\n name: pulumi.interpolate`${exampleDomainDkim.dkimTokens}._domainkey`,\n type: \"CNAME\",\n ttl: 600,\n records: [pulumi.interpolate`${exampleDomainDkim.dkimTokens}.dkim.amazonses.com`],\n }));\n}\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_domain_identity = aws.ses.DomainIdentity(\"exampleDomainIdentity\", domain=\"example.com\")\nexample_domain_dkim = aws.ses.DomainDkim(\"exampleDomainDkim\", domain=example_domain_identity.domain)\nexample_amazonses_dkim_record = []\nfor range in [{\"value\": i} for i in range(0, 3)]:\n example_amazonses_dkim_record.append(aws.route53.Record(f\"exampleAmazonsesDkimRecord-{range['value']}\",\n zone_id=\"ABCDEFGHIJ123\",\n name=example_domain_dkim.dkim_tokens.apply(lambda dkim_tokens: f\"{dkim_tokens[range['value']]}._domainkey\"),\n type=\"CNAME\",\n ttl=600,\n records=[example_domain_dkim.dkim_tokens.apply(lambda dkim_tokens: f\"{dkim_tokens[range['value']]}.dkim.amazonses.com\")]))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleDomainIdentity = new Aws.Ses.DomainIdentity(\"exampleDomainIdentity\", new()\n {\n Domain = \"example.com\",\n });\n\n var exampleDomainDkim = new Aws.Ses.DomainDkim(\"exampleDomainDkim\", new()\n {\n Domain = exampleDomainIdentity.Domain,\n });\n\n var exampleAmazonsesDkimRecord = new List\u003cAws.Route53.Record\u003e();\n for (var rangeIndex = 0; rangeIndex \u003c 3; rangeIndex++)\n {\n var range = new { Value = rangeIndex };\n exampleAmazonsesDkimRecord.Add(new Aws.Route53.Record($\"exampleAmazonsesDkimRecord-{range.Value}\", new()\n {\n ZoneId = \"ABCDEFGHIJ123\",\n Name = exampleDomainDkim.DkimTokens.Apply(dkimTokens =\u003e $\"{dkimTokens[range.Value]}._domainkey\"),\n Type = \"CNAME\",\n Ttl = 600,\n Records = new[]\n {\n exampleDomainDkim.DkimTokens.Apply(dkimTokens =\u003e $\"{dkimTokens[range.Value]}.dkim.amazonses.com\"),\n },\n }));\n }\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ses\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleDomainIdentity, err := ses.NewDomainIdentity(ctx, \"exampleDomainIdentity\", \u0026ses.DomainIdentityArgs{\n\t\t\tDomain: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDomainDkim, err := ses.NewDomainDkim(ctx, \"exampleDomainDkim\", \u0026ses.DomainDkimArgs{\n\t\t\tDomain: exampleDomainIdentity.Domain,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tvar exampleAmazonsesDkimRecord []*route53.Record\n\t\tfor key0, val0 := range 3 {\n\t\t\t__res, err := route53.NewRecord(ctx, fmt.Sprintf(\"exampleAmazonsesDkimRecord-%v\", key0), \u0026route53.RecordArgs{\n\t\t\t\tZoneId: pulumi.String(\"ABCDEFGHIJ123\"),\n\t\t\t\tName: exampleDomainDkim.DkimTokens.ApplyT(func(dkimTokens []string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v._domainkey\", dkimTokens[val0]), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tType: pulumi.String(\"CNAME\"),\n\t\t\t\tTtl: pulumi.Int(600),\n\t\t\t\tRecords: pulumi.StringArray{\n\t\t\t\t\texampleDomainDkim.DkimTokens.ApplyT(func(dkimTokens []string) (string, error) {\n\t\t\t\t\t\treturn fmt.Sprintf(\"%v.dkim.amazonses.com\", dkimTokens[val0]), nil\n\t\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\t},\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\texampleAmazonsesDkimRecord = append(exampleAmazonsesDkimRecord, __res)\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ses.DomainIdentity;\nimport com.pulumi.aws.ses.DomainIdentityArgs;\nimport com.pulumi.aws.ses.DomainDkim;\nimport com.pulumi.aws.ses.DomainDkimArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport com.pulumi.codegen.internal.KeyedValue;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleDomainIdentity = new DomainIdentity(\"exampleDomainIdentity\", DomainIdentityArgs.builder() \n .domain(\"example.com\")\n .build());\n\n var exampleDomainDkim = new DomainDkim(\"exampleDomainDkim\", DomainDkimArgs.builder() \n .domain(exampleDomainIdentity.domain())\n .build());\n\n for (var i = 0; i \u003c 3; i++) {\n new Record(\"exampleAmazonsesDkimRecord-\" + i, RecordArgs.builder() \n .zoneId(\"ABCDEFGHIJ123\")\n .name(exampleDomainDkim.dkimTokens().applyValue(dkimTokens -\u003e String.format(\"%s._domainkey\", dkimTokens[range.value()])))\n .type(\"CNAME\")\n .ttl(\"600\")\n .records(exampleDomainDkim.dkimTokens().applyValue(dkimTokens -\u003e String.format(\"%s.dkim.amazonses.com\", dkimTokens[range.value()])))\n .build());\n\n \n}\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nDKIM tokens can be imported using the `domain` attribute, e.g.,\n\n```sh\n $ pulumi import aws:ses/domainDkim:DomainDkim example example.com\n```\n\n ",
"properties": {
"dkimTokens": {
"type": "array",
@@ -524566,6 +528605,147 @@
"type": "object"
}
},
+ "aws:sesv2/configurationSet:ConfigurationSet": {
+ "description": "{{% 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.sesv2.ConfigurationSet(\"example\", {\n configurationSetName: \"example\",\n deliveryOptions: {\n tlsPolicy: \"REQUIRE\",\n },\n reputationOptions: {\n reputationMetricsEnabled: false,\n },\n sendigOptions: [{\n sendingEnabled: true,\n }],\n suppressionOptions: {\n suppressedReasons: [\n \"BOUNCE\",\n \"COMPLAINT\",\n ],\n },\n trackingOptions: {\n customRedirectDomain: \"example.com\",\n },\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.sesv2.ConfigurationSet;\nimport com.pulumi.aws.sesv2.ConfigurationSetArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetDeliveryOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetReputationOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetSuppressionOptionsArgs;\nimport com.pulumi.aws.sesv2.inputs.ConfigurationSetTrackingOptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ConfigurationSet(\"example\", ConfigurationSetArgs.builder() \n .configurationSetName(\"example\")\n .deliveryOptions(ConfigurationSetDeliveryOptionsArgs.builder()\n .tlsPolicy(\"REQUIRE\")\n .build())\n .reputationOptions(ConfigurationSetReputationOptionsArgs.builder()\n .reputationMetricsEnabled(false)\n .build())\n .sendigOptions(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .suppressionOptions(ConfigurationSetSuppressionOptionsArgs.builder()\n .suppressedReasons( \n \"BOUNCE\",\n \"COMPLAINT\")\n .build())\n .trackingOptions(ConfigurationSetTrackingOptionsArgs.builder()\n .customRedirectDomain(\"example.com\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:sesv2:ConfigurationSet\n properties:\n configurationSetName: example\n deliveryOptions:\n tlsPolicy: REQUIRE\n reputationOptions:\n reputationMetricsEnabled: false\n sendigOptions:\n - sendingEnabled: true\n suppressionOptions:\n suppressedReasons:\n - BOUNCE\n - COMPLAINT\n trackingOptions:\n customRedirectDomain: example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSESv2 (Simple Email V2) Configuration Set can be imported using the `configuration_set_name`, e.g.,\n\n```sh\n $ pulumi import aws:sesv2/configurationSet:ConfigurationSet example example\n```\n\n ",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN of the Configuration Set.\n"
+ },
+ "configurationSetName": {
+ "type": "string",
+ "description": "The name of the configuration set.\n"
+ },
+ "deliveryOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions",
+ "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.\n"
+ },
+ "reputationOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetReputationOptions:ConfigurationSetReputationOptions",
+ "description": "An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.\n"
+ },
+ "sendingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSendingOptions:ConfigurationSetSendingOptions",
+ "description": "An object that defines whether or not Amazon SES can send email that you send using the configuration set.\n"
+ },
+ "suppressionOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSuppressionOptions:ConfigurationSetSuppressionOptions",
+ "description": "An object that contains information about the suppression list preferences for your account.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "trackingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetTrackingOptions:ConfigurationSetTrackingOptions",
+ "description": "An object that defines the open and click tracking options for emails that you send using the configuration set.\n"
+ }
+ },
+ "required": [
+ "arn",
+ "configurationSetName",
+ "reputationOptions",
+ "sendingOptions",
+ "tagsAll"
+ ],
+ "inputProperties": {
+ "configurationSetName": {
+ "type": "string",
+ "description": "The name of the configuration set.\n",
+ "willReplaceOnChanges": true
+ },
+ "deliveryOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions",
+ "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.\n"
+ },
+ "reputationOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetReputationOptions:ConfigurationSetReputationOptions",
+ "description": "An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.\n"
+ },
+ "sendingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSendingOptions:ConfigurationSetSendingOptions",
+ "description": "An object that defines whether or not Amazon SES can send email that you send using the configuration set.\n"
+ },
+ "suppressionOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSuppressionOptions:ConfigurationSetSuppressionOptions",
+ "description": "An object that contains information about the suppression list preferences for your account.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "trackingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetTrackingOptions:ConfigurationSetTrackingOptions",
+ "description": "An object that defines the open and click tracking options for emails that you send using the configuration set.\n"
+ }
+ },
+ "requiredInputs": [
+ "configurationSetName"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering ConfigurationSet resources.\n",
+ "properties": {
+ "arn": {
+ "type": "string",
+ "description": "ARN of the Configuration Set.\n"
+ },
+ "configurationSetName": {
+ "type": "string",
+ "description": "The name of the configuration set.\n",
+ "willReplaceOnChanges": true
+ },
+ "deliveryOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetDeliveryOptions:ConfigurationSetDeliveryOptions",
+ "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.\n"
+ },
+ "reputationOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetReputationOptions:ConfigurationSetReputationOptions",
+ "description": "An object that defines whether or not Amazon SES collects reputation metrics for the emails that you send that use the configuration set.\n"
+ },
+ "sendingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSendingOptions:ConfigurationSetSendingOptions",
+ "description": "An object that defines whether or not Amazon SES can send email that you send using the configuration set.\n"
+ },
+ "suppressionOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetSuppressionOptions:ConfigurationSetSuppressionOptions",
+ "description": "An object that contains information about the suppression list preferences for your account.\n"
+ },
+ "tags": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "tagsAll": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "trackingOptions": {
+ "$ref": "#/types/aws:sesv2/ConfigurationSetTrackingOptions:ConfigurationSetTrackingOptions",
+ "description": "An object that defines the open and click tracking options for emails that you send using the configuration set.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"aws:sfn/activity:Activity": {
"description": "Provides a Step Function Activity 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 sfnActivity = new aws.sfn.Activity(\"sfn_activity\", {});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nsfn_activity = aws.sfn.Activity(\"sfnActivity\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var sfnActivity = new Aws.Sfn.Activity(\"sfnActivity\");\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/sfn\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sfn.NewActivity(ctx, \"sfnActivity\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.sfn.Activity;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var sfnActivity = new Activity(\"sfnActivity\");\n\n }\n}\n```\n```yaml\nresources:\n sfnActivity:\n type: aws:sfn:Activity\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nActivities can be imported using the `arn`, e.g.,\n\n```sh\n $ pulumi import aws:sfn/activity:Activity foo arn:aws:states:eu-west-1:123456789098:activity:bar\n```\n\n ",
"properties": {
@@ -529672,7 +533852,7 @@
}
},
"aws:storagegateway/gateway:Gateway": {
- "description": "Manages an AWS Storage Gateway file, tape, or volume gateway in the provider region.\n\n\u003e **NOTE:** The Storage Gateway API requires the gateway to be connected to properly return information after activation. If you are receiving `The specified gateway is not connected` errors during resource creation (gateway activation), ensure your gateway instance meets the [Storage Gateway requirements](https://docs.aws.amazon.com/storagegateway/latest/userguide/Requirements.html).\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Local Cache\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testVolumeAttachment = new aws.ec2.VolumeAttachment(\"testVolumeAttachment\", {\n deviceName: \"/dev/xvdb\",\n volumeId: aws_ebs_volume.test.id,\n instanceId: aws_instance.test.id,\n});\nconst testLocalDisk = testVolumeAttachment.deviceName.apply(deviceName =\u003e aws.storagegateway.getLocalDiskOutput({\n diskNode: deviceName,\n gatewayArn: aws_storagegateway_gateway.test.arn,\n}));\nconst testCache = new aws.storagegateway.Cache(\"testCache\", {\n diskId: testLocalDisk.apply(testLocalDisk =\u003e testLocalDisk.diskId),\n gatewayArn: aws_storagegateway_gateway.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_volume_attachment = aws.ec2.VolumeAttachment(\"testVolumeAttachment\",\n device_name=\"/dev/xvdb\",\n volume_id=aws_ebs_volume[\"test\"][\"id\"],\n instance_id=aws_instance[\"test\"][\"id\"])\ntest_local_disk = test_volume_attachment.device_name.apply(lambda device_name: aws.storagegateway.get_local_disk_output(disk_node=device_name,\n gateway_arn=aws_storagegateway_gateway[\"test\"][\"arn\"]))\ntest_cache = aws.storagegateway.Cache(\"testCache\",\n disk_id=test_local_disk.disk_id,\n gateway_arn=aws_storagegateway_gateway[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVolumeAttachment = new Aws.Ec2.VolumeAttachment(\"testVolumeAttachment\", new()\n {\n DeviceName = \"/dev/xvdb\",\n VolumeId = aws_ebs_volume.Test.Id,\n InstanceId = aws_instance.Test.Id,\n });\n\n var testLocalDisk = Aws.StorageGateway.GetLocalDisk.Invoke(new()\n {\n DiskNode = testVolumeAttachment.DeviceName,\n GatewayArn = aws_storagegateway_gateway.Test.Arn,\n });\n\n var testCache = new Aws.StorageGateway.Cache(\"testCache\", new()\n {\n DiskId = testLocalDisk.Apply(getLocalDiskResult =\u003e getLocalDiskResult.DiskId),\n GatewayArn = aws_storagegateway_gateway.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestVolumeAttachment, err := ec2.NewVolumeAttachment(ctx, \"testVolumeAttachment\", \u0026ec2.VolumeAttachmentArgs{\n\t\t\tDeviceName: pulumi.String(\"/dev/xvdb\"),\n\t\t\tVolumeId: pulumi.Any(aws_ebs_volume.Test.Id),\n\t\t\tInstanceId: pulumi.Any(aws_instance.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storagegateway.NewCache(ctx, \"testCache\", \u0026storagegateway.CacheArgs{\n\t\t\tDiskId: testLocalDisk.ApplyT(func(testLocalDisk storagegateway.GetLocalDiskResult) (string, error) {\n\t\t\t\treturn testLocalDisk.DiskId, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tGatewayArn: pulumi.Any(aws_storagegateway_gateway.Test.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VolumeAttachment;\nimport com.pulumi.aws.ec2.VolumeAttachmentArgs;\nimport com.pulumi.aws.storagegateway.StoragegatewayFunctions;\nimport com.pulumi.aws.storagegateway.inputs.GetLocalDiskArgs;\nimport com.pulumi.aws.storagegateway.Cache;\nimport com.pulumi.aws.storagegateway.CacheArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testVolumeAttachment = new VolumeAttachment(\"testVolumeAttachment\", VolumeAttachmentArgs.builder() \n .deviceName(\"/dev/xvdb\")\n .volumeId(aws_ebs_volume.test().id())\n .instanceId(aws_instance.test().id())\n .build());\n\n final var testLocalDisk = StoragegatewayFunctions.getLocalDisk(GetLocalDiskArgs.builder()\n .diskNode(testVolumeAttachment.deviceName())\n .gatewayArn(aws_storagegateway_gateway.test().arn())\n .build());\n\n var testCache = new Cache(\"testCache\", CacheArgs.builder() \n .diskId(testLocalDisk.applyValue(getLocalDiskResult -\u003e getLocalDiskResult).applyValue(testLocalDisk -\u003e testLocalDisk.applyValue(getLocalDiskResult -\u003e getLocalDiskResult.diskId())))\n .gatewayArn(aws_storagegateway_gateway.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testVolumeAttachment:\n type: aws:ec2:VolumeAttachment\n properties:\n deviceName: /dev/xvdb\n volumeId: ${aws_ebs_volume.test.id}\n instanceId: ${aws_instance.test.id}\n testCache:\n type: aws:storagegateway:Cache\n properties:\n diskId: ${testLocalDisk.diskId}\n gatewayArn: ${aws_storagegateway_gateway.test.arn}\nvariables:\n testLocalDisk:\n Fn::Invoke:\n Function: aws:storagegateway:getLocalDisk\n Arguments:\n diskNode: ${testVolumeAttachment.deviceName}\n gatewayArn: ${aws_storagegateway_gateway.test.arn}\n```\n{{% /example %}}\n{{% example %}}\n### FSx File Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_FSX_SMB\",\n smbActiveDirectorySettings: {\n domainName: \"corp.example.com\",\n password: \"avoid-plaintext-passwords\",\n username: \"Admin\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_FSX_SMB\",\n smb_active_directory_settings=aws.storagegateway.GatewaySmbActiveDirectorySettingsArgs(\n domain_name=\"corp.example.com\",\n password=\"avoid-plaintext-passwords\",\n username=\"Admin\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_FSX_SMB\",\n SmbActiveDirectorySettings = new Aws.StorageGateway.Inputs.GatewaySmbActiveDirectorySettingsArgs\n {\n DomainName = \"corp.example.com\",\n Password = \"avoid-plaintext-passwords\",\n Username = \"Admin\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_FSX_SMB\"),\n\t\t\tSmbActiveDirectorySettings: \u0026storagegateway.GatewaySmbActiveDirectorySettingsArgs{\n\t\t\t\tDomainName: pulumi.String(\"corp.example.com\"),\n\t\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport com.pulumi.aws.storagegateway.inputs.GatewaySmbActiveDirectorySettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_FSX_SMB\")\n .smbActiveDirectorySettings(GatewaySmbActiveDirectorySettingsArgs.builder()\n .domainName(\"corp.example.com\")\n .password(\"avoid-plaintext-passwords\")\n .username(\"Admin\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: FILE_FSX_SMB\n smbActiveDirectorySettings:\n domainName: corp.example.com\n password: avoid-plaintext-passwords\n username: Admin\n```\n{{% /example %}}\n{{% example %}}\n### S3 File Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_S3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_S3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_S3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_S3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_S3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: FILE_S3\n```\n\n{{% /example %}}\n{{% example %}}\n### Tape Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"VTL\",\n mediumChangerType: \"AWS-Gateway-VTL\",\n tapeDriveType: \"IBM-ULT3580-TD5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"VTL\",\n medium_changer_type=\"AWS-Gateway-VTL\",\n tape_drive_type=\"IBM-ULT3580-TD5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"VTL\",\n MediumChangerType = \"AWS-Gateway-VTL\",\n TapeDriveType = \"IBM-ULT3580-TD5\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"VTL\"),\n\t\t\tMediumChangerType: pulumi.String(\"AWS-Gateway-VTL\"),\n\t\t\tTapeDriveType: pulumi.String(\"IBM-ULT3580-TD5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"VTL\")\n .mediumChangerType(\"AWS-Gateway-VTL\")\n .tapeDriveType(\"IBM-ULT3580-TD5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: VTL\n mediumChangerType: AWS-Gateway-VTL\n tapeDriveType: IBM-ULT3580-TD5\n```\n{{% /example %}}\n{{% example %}}\n### Volume Gateway (Cached)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"CACHED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"CACHED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"CACHED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"CACHED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"CACHED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: CACHED\n```\n{{% /example %}}\n{{% example %}}\n### Volume Gateway (Stored)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"STORED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"STORED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"STORED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"STORED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"STORED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: STORED\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_storagegateway_gateway` can be imported by using the gateway Amazon Resource Name (ARN), e.g.,\n\n```sh\n $ pulumi import aws:storagegateway/gateway:Gateway example arn:aws:storagegateway:us-east-1:123456789012:gateway/sgw-12345678\n```\n\n Certain resource arguments, like `gateway_ip_address` do not have a Storage Gateway API method for reading the information after creation, either omit the argument from the provider configuration or use `ignoreChanges` to hide the difference. ",
+ "description": "Manages an AWS Storage Gateway file, tape, or volume gateway in the provider region.\n\n\u003e **NOTE:** The Storage Gateway API requires the gateway to be connected to properly return information after activation. If you are receiving `The specified gateway is not connected` errors during resource creation (gateway activation), ensure your gateway instance meets the [Storage Gateway requirements](https://docs.aws.amazon.com/storagegateway/latest/userguide/Requirements.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Local Cache\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testVolumeAttachment = new aws.ec2.VolumeAttachment(\"testVolumeAttachment\", {\n deviceName: \"/dev/xvdb\",\n volumeId: aws_ebs_volume.test.id,\n instanceId: aws_instance.test.id,\n});\nconst testLocalDisk = testVolumeAttachment.deviceName.apply(deviceName =\u003e aws.storagegateway.getLocalDiskOutput({\n diskNode: deviceName,\n gatewayArn: aws_storagegateway_gateway.test.arn,\n}));\nconst testCache = new aws.storagegateway.Cache(\"testCache\", {\n diskId: testLocalDisk.apply(testLocalDisk =\u003e testLocalDisk.diskId),\n gatewayArn: aws_storagegateway_gateway.test.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_volume_attachment = aws.ec2.VolumeAttachment(\"testVolumeAttachment\",\n device_name=\"/dev/xvdb\",\n volume_id=aws_ebs_volume[\"test\"][\"id\"],\n instance_id=aws_instance[\"test\"][\"id\"])\ntest_local_disk = test_volume_attachment.device_name.apply(lambda device_name: aws.storagegateway.get_local_disk_output(disk_node=device_name,\n gateway_arn=aws_storagegateway_gateway[\"test\"][\"arn\"]))\ntest_cache = aws.storagegateway.Cache(\"testCache\",\n disk_id=test_local_disk.disk_id,\n gateway_arn=aws_storagegateway_gateway[\"test\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var testVolumeAttachment = new Aws.Ec2.VolumeAttachment(\"testVolumeAttachment\", new()\n {\n DeviceName = \"/dev/xvdb\",\n VolumeId = aws_ebs_volume.Test.Id,\n InstanceId = aws_instance.Test.Id,\n });\n\n var testLocalDisk = Aws.StorageGateway.GetLocalDisk.Invoke(new()\n {\n DiskNode = testVolumeAttachment.DeviceName,\n GatewayArn = aws_storagegateway_gateway.Test.Arn,\n });\n\n var testCache = new Aws.StorageGateway.Cache(\"testCache\", new()\n {\n DiskId = testLocalDisk.Apply(getLocalDiskResult =\u003e getLocalDiskResult.DiskId),\n GatewayArn = aws_storagegateway_gateway.Test.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestVolumeAttachment, err := ec2.NewVolumeAttachment(ctx, \"testVolumeAttachment\", \u0026ec2.VolumeAttachmentArgs{\n\t\t\tDeviceName: pulumi.String(\"/dev/xvdb\"),\n\t\t\tVolumeId: pulumi.Any(aws_ebs_volume.Test.Id),\n\t\t\tInstanceId: pulumi.Any(aws_instance.Test.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = storagegateway.NewCache(ctx, \"testCache\", \u0026storagegateway.CacheArgs{\n\t\t\tDiskId: testLocalDisk.ApplyT(func(testLocalDisk storagegateway.GetLocalDiskResult) (string, error) {\n\t\t\t\treturn testLocalDisk.DiskId, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tGatewayArn: pulumi.Any(aws_storagegateway_gateway.Test.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.VolumeAttachment;\nimport com.pulumi.aws.ec2.VolumeAttachmentArgs;\nimport com.pulumi.aws.storagegateway.StoragegatewayFunctions;\nimport com.pulumi.aws.storagegateway.inputs.GetLocalDiskArgs;\nimport com.pulumi.aws.storagegateway.Cache;\nimport com.pulumi.aws.storagegateway.CacheArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var testVolumeAttachment = new VolumeAttachment(\"testVolumeAttachment\", VolumeAttachmentArgs.builder() \n .deviceName(\"/dev/xvdb\")\n .volumeId(aws_ebs_volume.test().id())\n .instanceId(aws_instance.test().id())\n .build());\n\n final var testLocalDisk = StoragegatewayFunctions.getLocalDisk(GetLocalDiskArgs.builder()\n .diskNode(testVolumeAttachment.deviceName())\n .gatewayArn(aws_storagegateway_gateway.test().arn())\n .build());\n\n var testCache = new Cache(\"testCache\", CacheArgs.builder() \n .diskId(testLocalDisk.applyValue(getLocalDiskResult -\u003e getLocalDiskResult).applyValue(testLocalDisk -\u003e testLocalDisk.applyValue(getLocalDiskResult -\u003e getLocalDiskResult.diskId())))\n .gatewayArn(aws_storagegateway_gateway.test().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n testVolumeAttachment:\n type: aws:ec2:VolumeAttachment\n properties:\n deviceName: /dev/xvdb\n volumeId: ${aws_ebs_volume.test.id}\n instanceId: ${aws_instance.test.id}\n testCache:\n type: aws:storagegateway:Cache\n properties:\n diskId: ${testLocalDisk.diskId}\n gatewayArn: ${aws_storagegateway_gateway.test.arn}\nvariables:\n testLocalDisk:\n Fn::Invoke:\n Function: aws:storagegateway:getLocalDisk\n Arguments:\n diskNode: ${testVolumeAttachment.deviceName}\n gatewayArn: ${aws_storagegateway_gateway.test.arn}\n```\n{{% /example %}}\n{{% example %}}\n### FSx File Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_FSX_SMB\",\n smbActiveDirectorySettings: {\n domainName: \"corp.example.com\",\n password: \"avoid-plaintext-passwords\",\n username: \"Admin\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_FSX_SMB\",\n smb_active_directory_settings=aws.storagegateway.GatewaySmbActiveDirectorySettingsArgs(\n domain_name=\"corp.example.com\",\n password=\"avoid-plaintext-passwords\",\n username=\"Admin\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_FSX_SMB\",\n SmbActiveDirectorySettings = new Aws.StorageGateway.Inputs.GatewaySmbActiveDirectorySettingsArgs\n {\n DomainName = \"corp.example.com\",\n Password = \"avoid-plaintext-passwords\",\n Username = \"Admin\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_FSX_SMB\"),\n\t\t\tSmbActiveDirectorySettings: \u0026storagegateway.GatewaySmbActiveDirectorySettingsArgs{\n\t\t\t\tDomainName: pulumi.String(\"corp.example.com\"),\n\t\t\t\tPassword: pulumi.String(\"avoid-plaintext-passwords\"),\n\t\t\t\tUsername: pulumi.String(\"Admin\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport com.pulumi.aws.storagegateway.inputs.GatewaySmbActiveDirectorySettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_FSX_SMB\")\n .smbActiveDirectorySettings(GatewaySmbActiveDirectorySettingsArgs.builder()\n .domainName(\"corp.example.com\")\n .password(\"avoid-plaintext-passwords\")\n .username(\"Admin\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: FILE_FSX_SMB\n smbActiveDirectorySettings:\n domainName: corp.example.com\n password: avoid-plaintext-passwords\n username: Admin\n```\n{{% /example %}}\n{{% example %}}\n### S3 File Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"FILE_S3\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"FILE_S3\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"FILE_S3\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"FILE_S3\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"FILE_S3\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: FILE_S3\n```\n{{% /example %}}\n{{% example %}}\n### Tape Gateway\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"VTL\",\n mediumChangerType: \"AWS-Gateway-VTL\",\n tapeDriveType: \"IBM-ULT3580-TD5\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"VTL\",\n medium_changer_type=\"AWS-Gateway-VTL\",\n tape_drive_type=\"IBM-ULT3580-TD5\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"VTL\",\n MediumChangerType = \"AWS-Gateway-VTL\",\n TapeDriveType = \"IBM-ULT3580-TD5\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"VTL\"),\n\t\t\tMediumChangerType: pulumi.String(\"AWS-Gateway-VTL\"),\n\t\t\tTapeDriveType: pulumi.String(\"IBM-ULT3580-TD5\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"VTL\")\n .mediumChangerType(\"AWS-Gateway-VTL\")\n .tapeDriveType(\"IBM-ULT3580-TD5\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: VTL\n mediumChangerType: AWS-Gateway-VTL\n tapeDriveType: IBM-ULT3580-TD5\n```\n{{% /example %}}\n{{% example %}}\n### Volume Gateway (Cached)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"CACHED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"CACHED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"CACHED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"CACHED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"CACHED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: CACHED\n```\n{{% /example %}}\n{{% example %}}\n### Volume Gateway (Stored)\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.storagegateway.Gateway(\"example\", {\n gatewayIpAddress: \"1.2.3.4\",\n gatewayName: \"example\",\n gatewayTimezone: \"GMT\",\n gatewayType: \"STORED\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.storagegateway.Gateway(\"example\",\n gateway_ip_address=\"1.2.3.4\",\n gateway_name=\"example\",\n gateway_timezone=\"GMT\",\n gateway_type=\"STORED\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.StorageGateway.Gateway(\"example\", new()\n {\n GatewayIpAddress = \"1.2.3.4\",\n GatewayName = \"example\",\n GatewayTimezone = \"GMT\",\n GatewayType = \"STORED\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/storagegateway\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := storagegateway.NewGateway(ctx, \"example\", \u0026storagegateway.GatewayArgs{\n\t\t\tGatewayIpAddress: pulumi.String(\"1.2.3.4\"),\n\t\t\tGatewayName: pulumi.String(\"example\"),\n\t\t\tGatewayTimezone: pulumi.String(\"GMT\"),\n\t\t\tGatewayType: pulumi.String(\"STORED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.storagegateway.Gateway;\nimport com.pulumi.aws.storagegateway.GatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Gateway(\"example\", GatewayArgs.builder() \n .gatewayIpAddress(\"1.2.3.4\")\n .gatewayName(\"example\")\n .gatewayTimezone(\"GMT\")\n .gatewayType(\"STORED\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:storagegateway:Gateway\n properties:\n gatewayIpAddress: 1.2.3.4\n gatewayName: example\n gatewayTimezone: GMT\n gatewayType: STORED\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_storagegateway_gateway` can be imported by using the gateway Amazon Resource Name (ARN), e.g.,\n\n```sh\n $ pulumi import aws:storagegateway/gateway:Gateway example arn:aws:storagegateway:us-east-1:123456789012:gateway/sgw-12345678\n```\n\n Certain resource arguments, like `gateway_ip_address` do not have a Storage Gateway API method for reading the information after creation, either omit the argument from the provider configuration or use `ignoreChanges` to hide the difference. ",
"properties": {
"activationKey": {
"type": "string",
@@ -532537,7 +536717,7 @@
}
},
"aws:transfer/server:Server": {
- "description": "Provides a AWS Transfer Server resource.\n\n\u003e **NOTE on AWS IAM permissions:** If the `endpoint_type` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n tags: {\n Name: \"Example\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", tags={\n \"Name\": \"Example\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n Tags = \n {\n { \"Name\", \"Example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .tags(Map.of(\"Name\", \"Example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n tags:\n Name: Example\n```\n{{% /example %}}\n{{% example %}}\n### Security Policy Name\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n securityPolicyName: \"TransferSecurityPolicy-2020-06\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", security_policy_name=\"TransferSecurityPolicy-2020-06\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n SecurityPolicyName = \"TransferSecurityPolicy-2020-06\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tSecurityPolicyName: pulumi.String(\"TransferSecurityPolicy-2020-06\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .securityPolicyName(\"TransferSecurityPolicy-2020-06\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n securityPolicyName: TransferSecurityPolicy-2020-06\n```\n{{% /example %}}\n{{% example %}}\n### VPC Endpoint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n addressAllocationIds: [aws_eip.example.id],\n subnetIds: [aws_subnet.example.id],\n vpcId: aws_vpc.example.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details=aws.transfer.ServerEndpointDetailsArgs(\n address_allocation_ids=[aws_eip[\"example\"][\"id\"]],\n subnet_ids=[aws_subnet[\"example\"][\"id\"]],\n vpc_id=aws_vpc[\"example\"][\"id\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n AddressAllocationIds = new[]\n {\n aws_eip.Example.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.Example.Id,\n },\n VpcId = aws_vpc.Example.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tAddressAllocationIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_eip.Example.Id),\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_subnet.Example.Id),\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(aws_vpc.Example.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .addressAllocationIds(aws_eip.example().id())\n .subnetIds(aws_subnet.example().id())\n .vpcId(aws_vpc.example().id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n addressAllocationIds:\n - ${aws_eip.example.id}\n subnetIds:\n - ${aws_subnet.example.id}\n vpcId: ${aws_vpc.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### AWS Directory authentication\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_DIRECTORY_SERVICE\",\n directoryId: aws_directory_service_directory.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_DIRECTORY_SERVICE\",\n directory_id=aws_directory_service_directory[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_DIRECTORY_SERVICE\",\n DirectoryId = aws_directory_service_directory.Example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_DIRECTORY_SERVICE\"),\n\t\t\tDirectoryId: pulumi.Any(aws_directory_service_directory.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .identityProviderType(\"AWS_DIRECTORY_SERVICE\")\n .directoryId(aws_directory_service_directory.example().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_DIRECTORY_SERVICE\n directoryId: ${aws_directory_service_directory.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### AWS Lambda authentication\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_LAMBDA\",\n \"function\": aws_lambda_identity_provider.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_LAMBDA\",\n function=aws_lambda_identity_provider[\"example\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_LAMBDA\",\n Function = aws_lambda_identity_provider.Example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tFunction: pulumi.Any(aws_lambda_identity_provider.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .identityProviderType(\"AWS_LAMBDA\")\n .function(aws_lambda_identity_provider.example().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_LAMBDA\n function: ${aws_lambda_identity_provider.example.arn}\n```\n{{% /example %}}\n{{% example %}}\n### Protocols\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n subnetIds: [aws_subnet.example.id],\n vpcId: aws_vpc.example.id,\n },\n protocols: [\n \"FTP\",\n \"FTPS\",\n ],\n certificate: aws_acm_certificate.example.arn,\n identityProviderType: \"API_GATEWAY\",\n url: `${aws_api_gateway_deployment.example.invoke_url}${aws_api_gateway_resource.example.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details=aws.transfer.ServerEndpointDetailsArgs(\n subnet_ids=[aws_subnet[\"example\"][\"id\"]],\n vpc_id=aws_vpc[\"example\"][\"id\"],\n ),\n protocols=[\n \"FTP\",\n \"FTPS\",\n ],\n certificate=aws_acm_certificate[\"example\"][\"arn\"],\n identity_provider_type=\"API_GATEWAY\",\n url=f\"{aws_api_gateway_deployment['example']['invoke_url']}{aws_api_gateway_resource['example']['path']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.Example.Id,\n },\n VpcId = aws_vpc.Example.Id,\n },\n Protocols = new[]\n {\n \"FTP\",\n \"FTPS\",\n },\n Certificate = aws_acm_certificate.Example.Arn,\n IdentityProviderType = \"API_GATEWAY\",\n Url = $\"{aws_api_gateway_deployment.Example.Invoke_url}{aws_api_gateway_resource.Example.Path}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_subnet.Example.Id),\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(aws_vpc.Example.Id),\n\t\t\t},\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FTP\"),\n\t\t\t\tpulumi.String(\"FTPS\"),\n\t\t\t},\n\t\t\tCertificate: pulumi.Any(aws_acm_certificate.Example.Arn),\n\t\t\tIdentityProviderType: pulumi.String(\"API_GATEWAY\"),\n\t\t\tUrl: pulumi.String(fmt.Sprintf(\"%v%v\", aws_api_gateway_deployment.Example.Invoke_url, aws_api_gateway_resource.Example.Path)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .subnetIds(aws_subnet.example().id())\n .vpcId(aws_vpc.example().id())\n .build())\n .protocols( \n \"FTP\",\n \"FTPS\")\n .certificate(aws_acm_certificate.example().arn())\n .identityProviderType(\"API_GATEWAY\")\n .url(String.format(\"%s%s\", aws_api_gateway_deployment.example().invoke_url(),aws_api_gateway_resource.example().path()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n subnetIds:\n - ${aws_subnet.example.id}\n vpcId: ${aws_vpc.example.id}\n protocols:\n - FTP\n - FTPS\n certificate: ${aws_acm_certificate.example.arn}\n identityProviderType: API_GATEWAY\n url: ${aws_api_gateway_deployment.example.invoke_url}${aws_api_gateway_resource.example.path}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTransfer Servers can be imported using the `server id`, e.g.,\n\n```sh\n $ pulumi import aws:transfer/server:Server example s-12345678\n```\n\n Certain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource. ",
+ "description": "Provides a AWS Transfer Server resource.\n\n\u003e **NOTE on AWS IAM permissions:** If the `endpoint_type` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.\n\n\u003e **NOTE:** Use the `aws.transfer.Tag` resource to manage the system tags used for [custom hostnames](https://docs.aws.amazon.com/transfer/latest/userguide/requirements-dns.html#tag-custom-hostname-cdk).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n tags: {\n Name: \"Example\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", tags={\n \"Name\": \"Example\",\n})\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n Tags = \n {\n { \"Name\", \"Example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"Example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .tags(Map.of(\"Name\", \"Example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n tags:\n Name: Example\n```\n{{% /example %}}\n{{% example %}}\n### Security Policy Name\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n securityPolicyName: \"TransferSecurityPolicy-2020-06\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", security_policy_name=\"TransferSecurityPolicy-2020-06\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n SecurityPolicyName = \"TransferSecurityPolicy-2020-06\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tSecurityPolicyName: pulumi.String(\"TransferSecurityPolicy-2020-06\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .securityPolicyName(\"TransferSecurityPolicy-2020-06\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n securityPolicyName: TransferSecurityPolicy-2020-06\n```\n{{% /example %}}\n{{% example %}}\n### VPC Endpoint\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n addressAllocationIds: [aws_eip.example.id],\n subnetIds: [aws_subnet.example.id],\n vpcId: aws_vpc.example.id,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details=aws.transfer.ServerEndpointDetailsArgs(\n address_allocation_ids=[aws_eip[\"example\"][\"id\"]],\n subnet_ids=[aws_subnet[\"example\"][\"id\"]],\n vpc_id=aws_vpc[\"example\"][\"id\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n AddressAllocationIds = new[]\n {\n aws_eip.Example.Id,\n },\n SubnetIds = new[]\n {\n aws_subnet.Example.Id,\n },\n VpcId = aws_vpc.Example.Id,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tAddressAllocationIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_eip.Example.Id),\n\t\t\t\t},\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_subnet.Example.Id),\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(aws_vpc.Example.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .addressAllocationIds(aws_eip.example().id())\n .subnetIds(aws_subnet.example().id())\n .vpcId(aws_vpc.example().id())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n addressAllocationIds:\n - ${aws_eip.example.id}\n subnetIds:\n - ${aws_subnet.example.id}\n vpcId: ${aws_vpc.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### AWS Directory authentication\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_DIRECTORY_SERVICE\",\n directoryId: aws_directory_service_directory.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_DIRECTORY_SERVICE\",\n directory_id=aws_directory_service_directory[\"example\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_DIRECTORY_SERVICE\",\n DirectoryId = aws_directory_service_directory.Example.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_DIRECTORY_SERVICE\"),\n\t\t\tDirectoryId: pulumi.Any(aws_directory_service_directory.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .identityProviderType(\"AWS_DIRECTORY_SERVICE\")\n .directoryId(aws_directory_service_directory.example().id())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_DIRECTORY_SERVICE\n directoryId: ${aws_directory_service_directory.example.id}\n```\n{{% /example %}}\n{{% example %}}\n### AWS Lambda authentication\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n identityProviderType: \"AWS_LAMBDA\",\n \"function\": aws_lambda_identity_provider.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n identity_provider_type=\"AWS_LAMBDA\",\n function=aws_lambda_identity_provider[\"example\"][\"arn\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"AWS_LAMBDA\",\n Function = aws_lambda_identity_provider.Example.Arn,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"AWS_LAMBDA\"),\n\t\t\tFunction: pulumi.Any(aws_lambda_identity_provider.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .identityProviderType(\"AWS_LAMBDA\")\n .function(aws_lambda_identity_provider.example().arn())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: AWS_LAMBDA\n function: ${aws_lambda_identity_provider.example.arn}\n```\n{{% /example %}}\n{{% example %}}\n### Protocols\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.transfer.Server(\"example\", {\n endpointType: \"VPC\",\n endpointDetails: {\n subnetIds: [aws_subnet.example.id],\n vpcId: aws_vpc.example.id,\n },\n protocols: [\n \"FTP\",\n \"FTPS\",\n ],\n certificate: aws_acm_certificate.example.arn,\n identityProviderType: \"API_GATEWAY\",\n url: `${aws_api_gateway_deployment.example.invoke_url}${aws_api_gateway_resource.example.path}`,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\",\n endpoint_type=\"VPC\",\n endpoint_details=aws.transfer.ServerEndpointDetailsArgs(\n subnet_ids=[aws_subnet[\"example\"][\"id\"]],\n vpc_id=aws_vpc[\"example\"][\"id\"],\n ),\n protocols=[\n \"FTP\",\n \"FTPS\",\n ],\n certificate=aws_acm_certificate[\"example\"][\"arn\"],\n identity_provider_type=\"API_GATEWAY\",\n url=f\"{aws_api_gateway_deployment['example']['invoke_url']}{aws_api_gateway_resource['example']['path']}\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n EndpointType = \"VPC\",\n EndpointDetails = new Aws.Transfer.Inputs.ServerEndpointDetailsArgs\n {\n SubnetIds = new[]\n {\n aws_subnet.Example.Id,\n },\n VpcId = aws_vpc.Example.Id,\n },\n Protocols = new[]\n {\n \"FTP\",\n \"FTPS\",\n },\n Certificate = aws_acm_certificate.Example.Arn,\n IdentityProviderType = \"API_GATEWAY\",\n Url = $\"{aws_api_gateway_deployment.Example.Invoke_url}{aws_api_gateway_resource.Example.Path}\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tEndpointType: pulumi.String(\"VPC\"),\n\t\t\tEndpointDetails: \u0026transfer.ServerEndpointDetailsArgs{\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.Any(aws_subnet.Example.Id),\n\t\t\t\t},\n\t\t\t\tVpcId: pulumi.Any(aws_vpc.Example.Id),\n\t\t\t},\n\t\t\tProtocols: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"FTP\"),\n\t\t\t\tpulumi.String(\"FTPS\"),\n\t\t\t},\n\t\t\tCertificate: pulumi.Any(aws_acm_certificate.Example.Arn),\n\t\t\tIdentityProviderType: pulumi.String(\"API_GATEWAY\"),\n\t\t\tUrl: pulumi.String(fmt.Sprintf(\"%v%v\", aws_api_gateway_deployment.Example.Invoke_url, aws_api_gateway_resource.Example.Path)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.inputs.ServerEndpointDetailsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .endpointType(\"VPC\")\n .endpointDetails(ServerEndpointDetailsArgs.builder()\n .subnetIds(aws_subnet.example().id())\n .vpcId(aws_vpc.example().id())\n .build())\n .protocols( \n \"FTP\",\n \"FTPS\")\n .certificate(aws_acm_certificate.example().arn())\n .identityProviderType(\"API_GATEWAY\")\n .url(String.format(\"%s%s\", aws_api_gateway_deployment.example().invoke_url(),aws_api_gateway_resource.example().path()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n endpointType: VPC\n endpointDetails:\n subnetIds:\n - ${aws_subnet.example.id}\n vpcId: ${aws_vpc.example.id}\n protocols:\n - FTP\n - FTPS\n certificate: ${aws_acm_certificate.example.arn}\n identityProviderType: API_GATEWAY\n url: ${aws_api_gateway_deployment.example.invoke_url}${aws_api_gateway_resource.example.path}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nTransfer Servers can be imported using the `server id`, e.g.,\n\n```sh\n $ pulumi import aws:transfer/server:Server example s-12345678\n```\n\n Certain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource. ",
"properties": {
"arn": {
"type": "string",
@@ -532897,6 +537077,69 @@
"type": "object"
}
},
+ "aws:transfer/tag:Tag": {
+ "description": "{{% 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.transfer.Server(\"example\", {identityProviderType: \"SERVICE_MANAGED\"});\nconst zoneId = new aws.transfer.Tag(\"zoneId\", {\n resourceArn: example.arn,\n key: \"aws:transfer:route53HostedZoneId\",\n value: \"/hostedzone/MyHostedZoneId\",\n});\nconst hostname = new aws.transfer.Tag(\"hostname\", {\n resourceArn: example.arn,\n key: \"aws:transfer:customHostname\",\n value: \"example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.transfer.Server(\"example\", identity_provider_type=\"SERVICE_MANAGED\")\nzone_id = aws.transfer.Tag(\"zoneId\",\n resource_arn=example.arn,\n key=\"aws:transfer:route53HostedZoneId\",\n value=\"/hostedzone/MyHostedZoneId\")\nhostname = aws.transfer.Tag(\"hostname\",\n resource_arn=example.arn,\n key=\"aws:transfer:customHostname\",\n value=\"example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.Transfer.Server(\"example\", new()\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n });\n\n var zoneId = new Aws.Transfer.Tag(\"zoneId\", new()\n {\n ResourceArn = example.Arn,\n Key = \"aws:transfer:route53HostedZoneId\",\n Value = \"/hostedzone/MyHostedZoneId\",\n });\n\n var hostname = new Aws.Transfer.Tag(\"hostname\", new()\n {\n ResourceArn = example.Arn,\n Key = \"aws:transfer:customHostname\",\n Value = \"example.com\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := transfer.NewServer(ctx, \"example\", \u0026transfer.ServerArgs{\n\t\t\tIdentityProviderType: pulumi.String(\"SERVICE_MANAGED\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewTag(ctx, \"zoneId\", \u0026transfer.TagArgs{\n\t\t\tResourceArn: example.Arn,\n\t\t\tKey: pulumi.String(\"aws:transfer:route53HostedZoneId\"),\n\t\t\tValue: pulumi.String(\"/hostedzone/MyHostedZoneId\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = transfer.NewTag(ctx, \"hostname\", \u0026transfer.TagArgs{\n\t\t\tResourceArn: example.Arn,\n\t\t\tKey: pulumi.String(\"aws:transfer:customHostname\"),\n\t\t\tValue: pulumi.String(\"example.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.transfer.Tag;\nimport com.pulumi.aws.transfer.TagArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new Server(\"example\", ServerArgs.builder() \n .identityProviderType(\"SERVICE_MANAGED\")\n .build());\n\n var zoneId = new Tag(\"zoneId\", TagArgs.builder() \n .resourceArn(example.arn())\n .key(\"aws:transfer:route53HostedZoneId\")\n .value(\"/hostedzone/MyHostedZoneId\")\n .build());\n\n var hostname = new Tag(\"hostname\", TagArgs.builder() \n .resourceArn(example.arn())\n .key(\"aws:transfer:customHostname\")\n .value(\"example.com\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:transfer:Server\n properties:\n identityProviderType: SERVICE_MANAGED\n zoneId:\n type: aws:transfer:Tag\n properties:\n resourceArn: ${example.arn}\n key: aws:transfer:route53HostedZoneId\n value: /hostedzone/MyHostedZoneId\n hostname:\n type: aws:transfer:Tag\n properties:\n resourceArn: ${example.arn}\n key: aws:transfer:customHostname\n value: example.com\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_transfer_tag` can be imported by using the Transfer Family resource identifier and key, separated by a comma (`,`), e.g.,\n\n```sh\n $ pulumi import aws:transfer/tag:Tag example arn:aws:transfer:us-east-1:123456789012:server/s-1234567890abcdef0,Name\n```\n\n ",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Tag name.\n"
+ },
+ "resourceArn": {
+ "type": "string",
+ "description": "Amazon Resource Name (ARN) of the Transfer Family resource to tag.\n"
+ },
+ "value": {
+ "type": "string",
+ "description": "Tag value.\n"
+ }
+ },
+ "required": [
+ "key",
+ "resourceArn",
+ "value"
+ ],
+ "inputProperties": {
+ "key": {
+ "type": "string",
+ "description": "Tag name.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceArn": {
+ "type": "string",
+ "description": "Amazon Resource Name (ARN) of the Transfer Family resource to tag.\n",
+ "willReplaceOnChanges": true
+ },
+ "value": {
+ "type": "string",
+ "description": "Tag value.\n"
+ }
+ },
+ "requiredInputs": [
+ "key",
+ "resourceArn",
+ "value"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering Tag resources.\n",
+ "properties": {
+ "key": {
+ "type": "string",
+ "description": "Tag name.\n",
+ "willReplaceOnChanges": true
+ },
+ "resourceArn": {
+ "type": "string",
+ "description": "Amazon Resource Name (ARN) of the Transfer Family resource to tag.\n",
+ "willReplaceOnChanges": true
+ },
+ "value": {
+ "type": "string",
+ "description": "Tag value.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"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{{% examples %}}\n## Example Usage\n{{% example %}}\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 System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fooServer = new Aws.Transfer.Server(\"fooServer\", new()\n {\n IdentityProviderType = \"SERVICE_MANAGED\",\n Tags = \n {\n { \"NAME\", \"tf-acc-test-transfer-server\" },\n },\n });\n\n var fooRole = new Aws.Iam.Role(\"fooRole\", new()\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\n var fooRolePolicy = new Aws.Iam.RolePolicy(\"fooRolePolicy\", new()\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\n var fooUser = new Aws.Transfer.User(\"fooUser\", new()\n {\n ServerId = fooServer.Id,\n UserName = \"tftestuser\",\n Role = fooRole.Arn,\n HomeDirectoryType = \"LOGICAL\",\n HomeDirectoryMappings = new[]\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```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/transfer\"\n\t\"github.com/pulumi/pulumi/sdk/v3/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.Any(fmt.Sprintf(`{\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.Any(fmt.Sprintf(`{\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.transfer.Server;\nimport com.pulumi.aws.transfer.ServerArgs;\nimport com.pulumi.aws.iam.Role;\nimport com.pulumi.aws.iam.RoleArgs;\nimport com.pulumi.aws.iam.RolePolicy;\nimport com.pulumi.aws.iam.RolePolicyArgs;\nimport com.pulumi.aws.transfer.User;\nimport com.pulumi.aws.transfer.UserArgs;\nimport com.pulumi.aws.transfer.inputs.UserHomeDirectoryMappingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fooServer = new Server(\"fooServer\", ServerArgs.builder() \n .identityProviderType(\"SERVICE_MANAGED\")\n .tags(Map.of(\"NAME\", \"tf-acc-test-transfer-server\"))\n .build());\n\n var fooRole = new Role(\"fooRole\", RoleArgs.builder() \n .assumeRolePolicy(\"\"\"\n{\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 .build());\n\n var fooRolePolicy = new RolePolicy(\"fooRolePolicy\", RolePolicyArgs.builder() \n .role(fooRole.id())\n .policy(\"\"\"\n{\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 .build());\n\n var fooUser = new User(\"fooUser\", UserArgs.builder() \n .serverId(fooServer.id())\n .userName(\"tftestuser\")\n .role(fooRole.arn())\n .homeDirectoryType(\"LOGICAL\")\n .homeDirectoryMappings(UserHomeDirectoryMappingArgs.builder()\n .entry(\"/test.pdf\")\n .target(\"/bucket3/test-path/tftestuser.pdf\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fooServer:\n type: aws:transfer:Server\n properties:\n identityProviderType: SERVICE_MANAGED\n tags:\n NAME: tf-acc-test-transfer-server\n fooRole:\n type: aws:iam:Role\n properties:\n assumeRolePolicy: |\n {\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 fooRolePolicy:\n type: aws:iam:RolePolicy\n properties:\n role: ${fooRole.id}\n policy: |\n {\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 fooUser:\n type: aws:transfer:User\n properties:\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{{% /example %}}\n{{% /examples %}}\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": {
@@ -535620,7 +539863,7 @@
}
},
"aws:wafv2/webAcl:WebAcl": {
- "description": "Creates a WAFv2 Web ACL resource.\n\n{{% examples %}}\n## Example Usage\n\nThis resource is based on `aws.wafv2.RuleGroup`, check the documentation of the `aws.wafv2.RuleGroup` resource to see examples of the various available statements.\n\n{{% example %}}\n### Managed Rule\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.WebAcl(\"example\", {\n defaultAction: {\n allow: {},\n },\n description: \"Example of a managed rule.\",\n rules: [{\n name: \"rule-1\",\n overrideAction: {\n count: {},\n },\n priority: 1,\n statement: {\n managedRuleGroupStatement: {\n excludedRules: [\n {\n name: \"SizeRestrictions_QUERYSTRING\",\n },\n {\n name: \"NoUserAgent_HEADER\",\n },\n ],\n name: \"AWSManagedRulesCommonRuleSet\",\n scopeDownStatement: {\n geoMatchStatement: {\n countryCodes: [\n \"US\",\n \"NL\",\n ],\n },\n },\n vendorName: \"AWS\",\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n scope: \"REGIONAL\",\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WebAcl(\"example\", WebAclArgs.builder() \n .defaultAction(WebAclDefaultActionArgs.builder()\n .allow()\n .build())\n .description(\"Example of a managed rule.\")\n .rules(WebAclRuleArgs.builder()\n .name(\"rule-1\")\n .overrideAction(WebAclRuleOverrideActionArgs.builder()\n .count()\n .build())\n .priority(1)\n .statement(WebAclRuleStatementArgs.builder()\n .managedRuleGroupStatement(WebAclRuleStatementManagedRuleGroupStatementArgs.builder()\n .excludedRule( \n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .name(\"AWSManagedRulesCommonRuleSet\")\n .scopeDownStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()\n .geoMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()\n .countryCodes( \n \"US\",\n \"NL\")\n .build())\n .build())\n .vendorName(\"AWS\")\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .scope(\"REGIONAL\")\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:WebAcl\n properties:\n defaultAction:\n allow: {}\n description: Example of a managed rule.\n rules:\n - name: rule-1\n overrideAction:\n count: {}\n priority: 1\n statement:\n managedRuleGroupStatement:\n excludedRule:\n - name: SizeRestrictions_QUERYSTRING\n - name: NoUserAgent_HEADER\n name: AWSManagedRulesCommonRuleSet\n scopeDownStatement:\n geoMatchStatement:\n countryCodes:\n - US\n - NL\n vendorName: AWS\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n scope: REGIONAL\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% example %}}\n### Rate Based\nRate-limit US and NL-based clients to 10,000 requests for every 5 minutes.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.WebAcl(\"example\", {\n defaultAction: {\n allow: {},\n },\n description: \"Example of a Cloudfront rate based statement.\",\n rules: [{\n action: {\n block: {},\n },\n name: \"rule-1\",\n priority: 1,\n statement: {\n rateBasedStatement: {\n aggregateKeyType: \"IP\",\n limit: 10000,\n scopeDownStatement: {\n geoMatchStatement: {\n countryCodes: [\n \"US\",\n \"NL\",\n ],\n },\n },\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n scope: \"CLOUDFRONT\",\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.wafv2.WebAcl(\"example\",\n default_action=aws.wafv2.WebAclDefaultActionArgs(\n allow=aws.wafv2.WebAclDefaultActionAllowArgs(),\n ),\n description=\"Example of a Cloudfront rate based statement.\",\n rules=[aws.wafv2.WebAclRuleArgs(\n action=aws.wafv2.WebAclRuleActionArgs(\n block=aws.wafv2.WebAclRuleActionBlockArgs(),\n ),\n name=\"rule-1\",\n priority=1,\n statement=aws.wafv2.WebAclRuleStatementArgs(\n rate_based_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementArgs(\n aggregate_key_type=\"IP\",\n limit=10000,\n scope_down_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs(\n geo_match_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs(\n country_codes=[\n \"US\",\n \"NL\",\n ],\n ),\n ),\n ),\n ),\n visibility_config=aws.wafv2.WebAclRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n )],\n scope=\"CLOUDFRONT\",\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n visibility_config=aws.wafv2.WebAclVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.WafV2.WebAcl(\"example\", new()\n {\n DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs\n {\n Allow = ,\n },\n Description = \"Example of a Cloudfront rate based statement.\",\n Rules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleArgs\n {\n Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs\n {\n Block = ,\n },\n Name = \"rule-1\",\n Priority = 1,\n Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs\n {\n RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementArgs\n {\n AggregateKeyType = \"IP\",\n Limit = 10000,\n ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"US\",\n \"NL\",\n },\n },\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n Scope = \"CLOUDFRONT\",\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafv2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := wafv2.NewWebAcl(ctx, \"example\", \u0026wafv2.WebAclArgs{\n\t\t\tDefaultAction: \u0026wafv2.WebAclDefaultActionArgs{\n\t\t\t\tAllow: nil,\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Example of a Cloudfront rate based statement.\"),\n\t\t\tRules: wafv2.WebAclRuleArray{\n\t\t\t\t\u0026wafv2.WebAclRuleArgs{\n\t\t\t\t\tAction: \u0026wafv2.WebAclRuleActionArgs{\n\t\t\t\t\t\tBlock: nil,\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tStatement: \u0026wafv2.WebAclRuleStatementArgs{\n\t\t\t\t\t\tRateBasedStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementArgs{\n\t\t\t\t\t\t\tAggregateKeyType: pulumi.String(\"IP\"),\n\t\t\t\t\t\t\tLimit: pulumi.Int(10000),\n\t\t\t\t\t\t\tScopeDownStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs{\n\t\t\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"US\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"NL\"),\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\tVisibilityConfig: \u0026wafv2.WebAclRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScope: pulumi.String(\"CLOUDFRONT\"),\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\tVisibilityConfig: \u0026wafv2.WebAclVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WebAcl(\"example\", WebAclArgs.builder() \n .defaultAction(WebAclDefaultActionArgs.builder()\n .allow()\n .build())\n .description(\"Example of a Cloudfront rate based statement.\")\n .rules(WebAclRuleArgs.builder()\n .action(WebAclRuleActionArgs.builder()\n .block()\n .build())\n .name(\"rule-1\")\n .priority(1)\n .statement(WebAclRuleStatementArgs.builder()\n .rateBasedStatement(WebAclRuleStatementRateBasedStatementArgs.builder()\n .aggregateKeyType(\"IP\")\n .limit(10000)\n .scopeDownStatement(WebAclRuleStatementRateBasedStatementScopeDownStatementArgs.builder()\n .geoMatchStatement(WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs.builder()\n .countryCodes( \n \"US\",\n \"NL\")\n .build())\n .build())\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .scope(\"CLOUDFRONT\")\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:WebAcl\n properties:\n defaultAction:\n allow: {}\n description: Example of a Cloudfront rate based statement.\n rules:\n - action:\n block: {}\n name: rule-1\n priority: 1\n statement:\n rateBasedStatement:\n aggregateKeyType: IP\n limit: 10000\n scopeDownStatement:\n geoMatchStatement:\n countryCodes:\n - US\n - NL\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n scope: CLOUDFRONT\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% example %}}\n### Rule Group Reference\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.RuleGroup(\"example\", {\n capacity: 10,\n scope: \"REGIONAL\",\n rules: [\n {\n name: \"rule-1\",\n priority: 1,\n action: {\n count: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"NL\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n {\n name: \"rule-to-exclude-a\",\n priority: 10,\n action: {\n allow: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"US\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n {\n name: \"rule-to-exclude-b\",\n priority: 15,\n action: {\n allow: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"GB\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n ],\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\nconst test = new aws.wafv2.WebAcl(\"test\", {\n scope: \"REGIONAL\",\n defaultAction: {\n block: {},\n },\n rules: [{\n name: \"rule-1\",\n priority: 1,\n overrideAction: {\n count: {},\n },\n statement: {\n ruleGroupReferenceStatement: {\n arn: example.arn,\n excludedRules: [\n {\n name: \"rule-to-exclude-b\",\n },\n {\n name: \"rule-to-exclude-a\",\n },\n ],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.wafv2.RuleGroup(\"example\",\n capacity=10,\n scope=\"REGIONAL\",\n rules=[\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-1\",\n priority=1,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n count=aws.wafv2.RuleGroupRuleActionCountArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"NL\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-to-exclude-a\",\n priority=10,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n allow=aws.wafv2.RuleGroupRuleActionAllowArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"US\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-to-exclude-b\",\n priority=15,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n allow=aws.wafv2.RuleGroupRuleActionAllowArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"GB\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n ],\n visibility_config=aws.wafv2.RuleGroupVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\ntest = aws.wafv2.WebAcl(\"test\",\n scope=\"REGIONAL\",\n default_action=aws.wafv2.WebAclDefaultActionArgs(\n block=aws.wafv2.WebAclDefaultActionBlockArgs(),\n ),\n rules=[aws.wafv2.WebAclRuleArgs(\n name=\"rule-1\",\n priority=1,\n override_action=aws.wafv2.WebAclRuleOverrideActionArgs(\n count=aws.wafv2.WebAclRuleOverrideActionCountArgs(),\n ),\n statement=aws.wafv2.WebAclRuleStatementArgs(\n rule_group_reference_statement=aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementArgs(\n arn=example.arn,\n excluded_rules=[\n aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs(\n name=\"rule-to-exclude-b\",\n ),\n aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs(\n name=\"rule-to-exclude-a\",\n ),\n ],\n ),\n ),\n visibility_config=aws.wafv2.WebAclRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n )],\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n visibility_config=aws.wafv2.WebAclVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.WafV2.RuleGroup(\"example\", new()\n {\n Capacity = 10,\n Scope = \"REGIONAL\",\n Rules = new[]\n {\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-1\",\n Priority = 1,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Count = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"NL\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-to-exclude-a\",\n Priority = 10,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Allow = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"US\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-to-exclude-b\",\n Priority = 15,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Allow = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"GB\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n var test = new Aws.WafV2.WebAcl(\"test\", new()\n {\n Scope = \"REGIONAL\",\n DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs\n {\n Block = ,\n },\n Rules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleArgs\n {\n Name = \"rule-1\",\n Priority = 1,\n OverrideAction = new Aws.WafV2.Inputs.WebAclRuleOverrideActionArgs\n {\n Count = ,\n },\n Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs\n {\n RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementArgs\n {\n Arn = example.Arn,\n ExcludedRules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs\n {\n Name = \"rule-to-exclude-b\",\n },\n new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs\n {\n Name = \"rule-to-exclude-a\",\n },\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafv2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := wafv2.NewRuleGroup(ctx, \"example\", \u0026wafv2.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(10),\n\t\t\tScope: pulumi.String(\"REGIONAL\"),\n\t\t\tRules: wafv2.RuleGroupRuleArray{\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tCount: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"NL\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-a\"),\n\t\t\t\t\tPriority: pulumi.Int(10),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tAllow: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"US\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-b\"),\n\t\t\t\t\tPriority: pulumi.Int(15),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tAllow: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"GB\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVisibilityConfig: \u0026wafv2.RuleGroupVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv2.NewWebAcl(ctx, \"test\", \u0026wafv2.WebAclArgs{\n\t\t\tScope: pulumi.String(\"REGIONAL\"),\n\t\t\tDefaultAction: \u0026wafv2.WebAclDefaultActionArgs{\n\t\t\t\tBlock: nil,\n\t\t\t},\n\t\t\tRules: wafv2.WebAclRuleArray{\n\t\t\t\t\u0026wafv2.WebAclRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tOverrideAction: \u0026wafv2.WebAclRuleOverrideActionArgs{\n\t\t\t\t\t\tCount: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.WebAclRuleStatementArgs{\n\t\t\t\t\t\tRuleGroupReferenceStatement: \u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementArgs{\n\t\t\t\t\t\t\tArn: example.Arn,\n\t\t\t\t\t\t\tExcludedRules: wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArray{\n\t\t\t\t\t\t\t\t\u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs{\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-b\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs{\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-a\"),\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\tVisibilityConfig: \u0026wafv2.WebAclRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\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\tVisibilityConfig: \u0026wafv2.WebAclVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.RuleGroup;\nimport com.pulumi.aws.wafv2.RuleGroupArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionBlockArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRuleGroupReferenceStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new RuleGroup(\"example\", RuleGroupArgs.builder() \n .capacity(10)\n .scope(\"REGIONAL\")\n .rules( \n RuleGroupRuleArgs.builder()\n .name(\"rule-1\")\n .priority(1)\n .action(RuleGroupRuleActionArgs.builder()\n .count()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"NL\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build(),\n RuleGroupRuleArgs.builder()\n .name(\"rule-to-exclude-a\")\n .priority(10)\n .action(RuleGroupRuleActionArgs.builder()\n .allow()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"US\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build(),\n RuleGroupRuleArgs.builder()\n .name(\"rule-to-exclude-b\")\n .priority(15)\n .action(RuleGroupRuleActionArgs.builder()\n .allow()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"GB\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .visibilityConfig(RuleGroupVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n var test = new WebAcl(\"test\", WebAclArgs.builder() \n .scope(\"REGIONAL\")\n .defaultAction(WebAclDefaultActionArgs.builder()\n .block()\n .build())\n .rules(WebAclRuleArgs.builder()\n .name(\"rule-1\")\n .priority(1)\n .overrideAction(WebAclRuleOverrideActionArgs.builder()\n .count()\n .build())\n .statement(WebAclRuleStatementArgs.builder()\n .ruleGroupReferenceStatement(WebAclRuleStatementRuleGroupReferenceStatementArgs.builder()\n .arn(example.arn())\n .excludedRules( \n WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.builder()\n .name(\"rule-to-exclude-b\")\n .build(),\n WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.builder()\n .name(\"rule-to-exclude-a\")\n .build())\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:RuleGroup\n properties:\n capacity: 10\n scope: REGIONAL\n rules:\n - name: rule-1\n priority: 1\n action:\n count: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - NL\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n - name: rule-to-exclude-a\n priority: 10\n action:\n allow: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - US\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n - name: rule-to-exclude-b\n priority: 15\n action:\n allow: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - GB\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n test:\n type: aws:wafv2:WebAcl\n properties:\n scope: REGIONAL\n defaultAction:\n block: {}\n rules:\n - name: rule-1\n priority: 1\n overrideAction:\n count: {}\n statement:\n ruleGroupReferenceStatement:\n arn: ${example.arn}\n excludedRules:\n - name: rule-to-exclude-b\n - name: rule-to-exclude-a\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWAFv2 Web ACLs can be imported using `ID/Name/Scope` e.g.,\n\n```sh\n $ pulumi import aws:wafv2/webAcl:WebAcl example a1b2c3d4-d5f6-7777-8888-9999aaaabbbbcccc/example/REGIONAL\n```\n\n ",
+ "description": "Creates a WAFv2 Web ACL resource.\n\n{{% examples %}}\n## Example Usage\n\nThis resource is based on `aws.wafv2.RuleGroup`, check the documentation of the `aws.wafv2.RuleGroup` resource to see examples of the various available statements.\n{{% example %}}\n### Managed Rule\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.WebAcl(\"example\", {\n defaultAction: {\n allow: {},\n },\n description: \"Example of a managed rule.\",\n rules: [{\n name: \"rule-1\",\n overrideAction: {\n count: {},\n },\n priority: 1,\n statement: {\n managedRuleGroupStatement: {\n excludedRules: [\n {\n name: \"SizeRestrictions_QUERYSTRING\",\n },\n {\n name: \"NoUserAgent_HEADER\",\n },\n ],\n name: \"AWSManagedRulesCommonRuleSet\",\n scopeDownStatement: {\n geoMatchStatement: {\n countryCodes: [\n \"US\",\n \"NL\",\n ],\n },\n },\n vendorName: \"AWS\",\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n scope: \"REGIONAL\",\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WebAcl(\"example\", WebAclArgs.builder() \n .defaultAction(WebAclDefaultActionArgs.builder()\n .allow()\n .build())\n .description(\"Example of a managed rule.\")\n .rules(WebAclRuleArgs.builder()\n .name(\"rule-1\")\n .overrideAction(WebAclRuleOverrideActionArgs.builder()\n .count()\n .build())\n .priority(1)\n .statement(WebAclRuleStatementArgs.builder()\n .managedRuleGroupStatement(WebAclRuleStatementManagedRuleGroupStatementArgs.builder()\n .excludedRule( \n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference),\n %!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))\n .name(\"AWSManagedRulesCommonRuleSet\")\n .scopeDownStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementArgs.builder()\n .geoMatchStatement(WebAclRuleStatementManagedRuleGroupStatementScopeDownStatementGeoMatchStatementArgs.builder()\n .countryCodes( \n \"US\",\n \"NL\")\n .build())\n .build())\n .vendorName(\"AWS\")\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .scope(\"REGIONAL\")\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:WebAcl\n properties:\n defaultAction:\n allow: {}\n description: Example of a managed rule.\n rules:\n - name: rule-1\n overrideAction:\n count: {}\n priority: 1\n statement:\n managedRuleGroupStatement:\n excludedRule:\n - name: SizeRestrictions_QUERYSTRING\n - name: NoUserAgent_HEADER\n name: AWSManagedRulesCommonRuleSet\n scopeDownStatement:\n geoMatchStatement:\n countryCodes:\n - US\n - NL\n vendorName: AWS\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n scope: REGIONAL\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% example %}}\n### Rate Based\nRate-limit US and NL-based clients to 10,000 requests for every 5 minutes.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.WebAcl(\"example\", {\n defaultAction: {\n allow: {},\n },\n description: \"Example of a Cloudfront rate based statement.\",\n rules: [{\n action: {\n block: {},\n },\n name: \"rule-1\",\n priority: 1,\n statement: {\n rateBasedStatement: {\n aggregateKeyType: \"IP\",\n limit: 10000,\n scopeDownStatement: {\n geoMatchStatement: {\n countryCodes: [\n \"US\",\n \"NL\",\n ],\n },\n },\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n scope: \"CLOUDFRONT\",\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.wafv2.WebAcl(\"example\",\n default_action=aws.wafv2.WebAclDefaultActionArgs(\n allow=aws.wafv2.WebAclDefaultActionAllowArgs(),\n ),\n description=\"Example of a Cloudfront rate based statement.\",\n rules=[aws.wafv2.WebAclRuleArgs(\n action=aws.wafv2.WebAclRuleActionArgs(\n block=aws.wafv2.WebAclRuleActionBlockArgs(),\n ),\n name=\"rule-1\",\n priority=1,\n statement=aws.wafv2.WebAclRuleStatementArgs(\n rate_based_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementArgs(\n aggregate_key_type=\"IP\",\n limit=10000,\n scope_down_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs(\n geo_match_statement=aws.wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs(\n country_codes=[\n \"US\",\n \"NL\",\n ],\n ),\n ),\n ),\n ),\n visibility_config=aws.wafv2.WebAclRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n )],\n scope=\"CLOUDFRONT\",\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n visibility_config=aws.wafv2.WebAclVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.WafV2.WebAcl(\"example\", new()\n {\n DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs\n {\n Allow = ,\n },\n Description = \"Example of a Cloudfront rate based statement.\",\n Rules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleArgs\n {\n Action = new Aws.WafV2.Inputs.WebAclRuleActionArgs\n {\n Block = ,\n },\n Name = \"rule-1\",\n Priority = 1,\n Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs\n {\n RateBasedStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementArgs\n {\n AggregateKeyType = \"IP\",\n Limit = 10000,\n ScopeDownStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"US\",\n \"NL\",\n },\n },\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n Scope = \"CLOUDFRONT\",\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafv2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := wafv2.NewWebAcl(ctx, \"example\", \u0026wafv2.WebAclArgs{\n\t\t\tDefaultAction: \u0026wafv2.WebAclDefaultActionArgs{\n\t\t\t\tAllow: nil,\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Example of a Cloudfront rate based statement.\"),\n\t\t\tRules: wafv2.WebAclRuleArray{\n\t\t\t\t\u0026wafv2.WebAclRuleArgs{\n\t\t\t\t\tAction: \u0026wafv2.WebAclRuleActionArgs{\n\t\t\t\t\t\tBlock: nil,\n\t\t\t\t\t},\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tStatement: \u0026wafv2.WebAclRuleStatementArgs{\n\t\t\t\t\t\tRateBasedStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementArgs{\n\t\t\t\t\t\t\tAggregateKeyType: pulumi.String(\"IP\"),\n\t\t\t\t\t\t\tLimit: pulumi.Int(10000),\n\t\t\t\t\t\t\tScopeDownStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs{\n\t\t\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"US\"),\n\t\t\t\t\t\t\t\t\t\tpulumi.String(\"NL\"),\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\tVisibilityConfig: \u0026wafv2.WebAclRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tScope: pulumi.String(\"CLOUDFRONT\"),\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\tVisibilityConfig: \u0026wafv2.WebAclVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleActionBlockArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new WebAcl(\"example\", WebAclArgs.builder() \n .defaultAction(WebAclDefaultActionArgs.builder()\n .allow()\n .build())\n .description(\"Example of a Cloudfront rate based statement.\")\n .rules(WebAclRuleArgs.builder()\n .action(WebAclRuleActionArgs.builder()\n .block()\n .build())\n .name(\"rule-1\")\n .priority(1)\n .statement(WebAclRuleStatementArgs.builder()\n .rateBasedStatement(WebAclRuleStatementRateBasedStatementArgs.builder()\n .aggregateKeyType(\"IP\")\n .limit(10000)\n .scopeDownStatement(WebAclRuleStatementRateBasedStatementScopeDownStatementArgs.builder()\n .geoMatchStatement(WebAclRuleStatementRateBasedStatementScopeDownStatementGeoMatchStatementArgs.builder()\n .countryCodes( \n \"US\",\n \"NL\")\n .build())\n .build())\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .scope(\"CLOUDFRONT\")\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:WebAcl\n properties:\n defaultAction:\n allow: {}\n description: Example of a Cloudfront rate based statement.\n rules:\n - action:\n block: {}\n name: rule-1\n priority: 1\n statement:\n rateBasedStatement:\n aggregateKeyType: IP\n limit: 10000\n scopeDownStatement:\n geoMatchStatement:\n countryCodes:\n - US\n - NL\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n scope: CLOUDFRONT\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% example %}}\n### Rule Group Reference\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.wafv2.RuleGroup(\"example\", {\n capacity: 10,\n scope: \"REGIONAL\",\n rules: [\n {\n name: \"rule-1\",\n priority: 1,\n action: {\n count: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"NL\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n {\n name: \"rule-to-exclude-a\",\n priority: 10,\n action: {\n allow: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"US\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n {\n name: \"rule-to-exclude-b\",\n priority: 15,\n action: {\n allow: {},\n },\n statement: {\n geoMatchStatement: {\n countryCodes: [\"GB\"],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n },\n ],\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\nconst test = new aws.wafv2.WebAcl(\"test\", {\n scope: \"REGIONAL\",\n defaultAction: {\n block: {},\n },\n rules: [{\n name: \"rule-1\",\n priority: 1,\n overrideAction: {\n count: {},\n },\n statement: {\n ruleGroupReferenceStatement: {\n arn: example.arn,\n excludedRules: [\n {\n name: \"rule-to-exclude-b\",\n },\n {\n name: \"rule-to-exclude-a\",\n },\n ],\n },\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-rule-metric-name\",\n sampledRequestsEnabled: false,\n },\n }],\n tags: {\n Tag1: \"Value1\",\n Tag2: \"Value2\",\n },\n visibilityConfig: {\n cloudwatchMetricsEnabled: false,\n metricName: \"friendly-metric-name\",\n sampledRequestsEnabled: false,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.wafv2.RuleGroup(\"example\",\n capacity=10,\n scope=\"REGIONAL\",\n rules=[\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-1\",\n priority=1,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n count=aws.wafv2.RuleGroupRuleActionCountArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"NL\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-to-exclude-a\",\n priority=10,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n allow=aws.wafv2.RuleGroupRuleActionAllowArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"US\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n aws.wafv2.RuleGroupRuleArgs(\n name=\"rule-to-exclude-b\",\n priority=15,\n action=aws.wafv2.RuleGroupRuleActionArgs(\n allow=aws.wafv2.RuleGroupRuleActionAllowArgs(),\n ),\n statement=aws.wafv2.RuleGroupRuleStatementArgs(\n geo_match_statement=aws.wafv2.RuleGroupRuleStatementGeoMatchStatementArgs(\n country_codes=[\"GB\"],\n ),\n ),\n visibility_config=aws.wafv2.RuleGroupRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n ),\n ],\n visibility_config=aws.wafv2.RuleGroupVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\ntest = aws.wafv2.WebAcl(\"test\",\n scope=\"REGIONAL\",\n default_action=aws.wafv2.WebAclDefaultActionArgs(\n block=aws.wafv2.WebAclDefaultActionBlockArgs(),\n ),\n rules=[aws.wafv2.WebAclRuleArgs(\n name=\"rule-1\",\n priority=1,\n override_action=aws.wafv2.WebAclRuleOverrideActionArgs(\n count=aws.wafv2.WebAclRuleOverrideActionCountArgs(),\n ),\n statement=aws.wafv2.WebAclRuleStatementArgs(\n rule_group_reference_statement=aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementArgs(\n arn=example.arn,\n excluded_rules=[\n aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs(\n name=\"rule-to-exclude-b\",\n ),\n aws.wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs(\n name=\"rule-to-exclude-a\",\n ),\n ],\n ),\n ),\n visibility_config=aws.wafv2.WebAclRuleVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-rule-metric-name\",\n sampled_requests_enabled=False,\n ),\n )],\n tags={\n \"Tag1\": \"Value1\",\n \"Tag2\": \"Value2\",\n },\n visibility_config=aws.wafv2.WebAclVisibilityConfigArgs(\n cloudwatch_metrics_enabled=False,\n metric_name=\"friendly-metric-name\",\n sampled_requests_enabled=False,\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Aws.WafV2.RuleGroup(\"example\", new()\n {\n Capacity = 10,\n Scope = \"REGIONAL\",\n Rules = new[]\n {\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-1\",\n Priority = 1,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Count = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"NL\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-to-exclude-a\",\n Priority = 10,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Allow = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"US\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n new Aws.WafV2.Inputs.RuleGroupRuleArgs\n {\n Name = \"rule-to-exclude-b\",\n Priority = 15,\n Action = new Aws.WafV2.Inputs.RuleGroupRuleActionArgs\n {\n Allow = ,\n },\n Statement = new Aws.WafV2.Inputs.RuleGroupRuleStatementArgs\n {\n GeoMatchStatement = new Aws.WafV2.Inputs.RuleGroupRuleStatementGeoMatchStatementArgs\n {\n CountryCodes = new[]\n {\n \"GB\",\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.RuleGroupVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n var test = new Aws.WafV2.WebAcl(\"test\", new()\n {\n Scope = \"REGIONAL\",\n DefaultAction = new Aws.WafV2.Inputs.WebAclDefaultActionArgs\n {\n Block = ,\n },\n Rules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleArgs\n {\n Name = \"rule-1\",\n Priority = 1,\n OverrideAction = new Aws.WafV2.Inputs.WebAclRuleOverrideActionArgs\n {\n Count = ,\n },\n Statement = new Aws.WafV2.Inputs.WebAclRuleStatementArgs\n {\n RuleGroupReferenceStatement = new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementArgs\n {\n Arn = example.Arn,\n ExcludedRules = new[]\n {\n new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs\n {\n Name = \"rule-to-exclude-b\",\n },\n new Aws.WafV2.Inputs.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs\n {\n Name = \"rule-to-exclude-a\",\n },\n },\n },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclRuleVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-rule-metric-name\",\n SampledRequestsEnabled = false,\n },\n },\n },\n Tags = \n {\n { \"Tag1\", \"Value1\" },\n { \"Tag2\", \"Value2\" },\n },\n VisibilityConfig = new Aws.WafV2.Inputs.WebAclVisibilityConfigArgs\n {\n CloudwatchMetricsEnabled = false,\n MetricName = \"friendly-metric-name\",\n SampledRequestsEnabled = false,\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafv2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := wafv2.NewRuleGroup(ctx, \"example\", \u0026wafv2.RuleGroupArgs{\n\t\t\tCapacity: pulumi.Int(10),\n\t\t\tScope: pulumi.String(\"REGIONAL\"),\n\t\t\tRules: wafv2.RuleGroupRuleArray{\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tCount: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"NL\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-a\"),\n\t\t\t\t\tPriority: pulumi.Int(10),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tAllow: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"US\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026wafv2.RuleGroupRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-b\"),\n\t\t\t\t\tPriority: pulumi.Int(15),\n\t\t\t\t\tAction: \u0026wafv2.RuleGroupRuleActionArgs{\n\t\t\t\t\t\tAllow: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.RuleGroupRuleStatementArgs{\n\t\t\t\t\t\tGeoMatchStatement: \u0026wafv2.RuleGroupRuleStatementGeoMatchStatementArgs{\n\t\t\t\t\t\t\tCountryCodes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"GB\"),\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\tVisibilityConfig: \u0026wafv2.RuleGroupRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tVisibilityConfig: \u0026wafv2.RuleGroupVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafv2.NewWebAcl(ctx, \"test\", \u0026wafv2.WebAclArgs{\n\t\t\tScope: pulumi.String(\"REGIONAL\"),\n\t\t\tDefaultAction: \u0026wafv2.WebAclDefaultActionArgs{\n\t\t\t\tBlock: nil,\n\t\t\t},\n\t\t\tRules: wafv2.WebAclRuleArray{\n\t\t\t\t\u0026wafv2.WebAclRuleArgs{\n\t\t\t\t\tName: pulumi.String(\"rule-1\"),\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tOverrideAction: \u0026wafv2.WebAclRuleOverrideActionArgs{\n\t\t\t\t\t\tCount: nil,\n\t\t\t\t\t},\n\t\t\t\t\tStatement: \u0026wafv2.WebAclRuleStatementArgs{\n\t\t\t\t\t\tRuleGroupReferenceStatement: \u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementArgs{\n\t\t\t\t\t\t\tArn: example.Arn,\n\t\t\t\t\t\t\tExcludedRules: wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArray{\n\t\t\t\t\t\t\t\t\u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs{\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-b\"),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\u0026wafv2.WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs{\n\t\t\t\t\t\t\t\t\tName: pulumi.String(\"rule-to-exclude-a\"),\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\tVisibilityConfig: \u0026wafv2.WebAclRuleVisibilityConfigArgs{\n\t\t\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\t\t\tMetricName: pulumi.String(\"friendly-rule-metric-name\"),\n\t\t\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\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\tVisibilityConfig: \u0026wafv2.WebAclVisibilityConfigArgs{\n\t\t\t\tCloudwatchMetricsEnabled: pulumi.Bool(false),\n\t\t\t\tMetricName: pulumi.String(\"friendly-metric-name\"),\n\t\t\t\tSampledRequestsEnabled: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafv2.RuleGroup;\nimport com.pulumi.aws.wafv2.RuleGroupArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleStatementGeoMatchStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupRuleActionAllowArgs;\nimport com.pulumi.aws.wafv2.inputs.RuleGroupVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.WebAcl;\nimport com.pulumi.aws.wafv2.WebAclArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclDefaultActionBlockArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleOverrideActionCountArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRuleGroupReferenceStatementArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclRuleVisibilityConfigArgs;\nimport com.pulumi.aws.wafv2.inputs.WebAclVisibilityConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new RuleGroup(\"example\", RuleGroupArgs.builder() \n .capacity(10)\n .scope(\"REGIONAL\")\n .rules( \n RuleGroupRuleArgs.builder()\n .name(\"rule-1\")\n .priority(1)\n .action(RuleGroupRuleActionArgs.builder()\n .count()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"NL\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build(),\n RuleGroupRuleArgs.builder()\n .name(\"rule-to-exclude-a\")\n .priority(10)\n .action(RuleGroupRuleActionArgs.builder()\n .allow()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"US\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build(),\n RuleGroupRuleArgs.builder()\n .name(\"rule-to-exclude-b\")\n .priority(15)\n .action(RuleGroupRuleActionArgs.builder()\n .allow()\n .build())\n .statement(RuleGroupRuleStatementArgs.builder()\n .geoMatchStatement(RuleGroupRuleStatementGeoMatchStatementArgs.builder()\n .countryCodes(\"GB\")\n .build())\n .build())\n .visibilityConfig(RuleGroupRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .visibilityConfig(RuleGroupVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n var test = new WebAcl(\"test\", WebAclArgs.builder() \n .scope(\"REGIONAL\")\n .defaultAction(WebAclDefaultActionArgs.builder()\n .block()\n .build())\n .rules(WebAclRuleArgs.builder()\n .name(\"rule-1\")\n .priority(1)\n .overrideAction(WebAclRuleOverrideActionArgs.builder()\n .count()\n .build())\n .statement(WebAclRuleStatementArgs.builder()\n .ruleGroupReferenceStatement(WebAclRuleStatementRuleGroupReferenceStatementArgs.builder()\n .arn(example.arn())\n .excludedRules( \n WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.builder()\n .name(\"rule-to-exclude-b\")\n .build(),\n WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.builder()\n .name(\"rule-to-exclude-a\")\n .build())\n .build())\n .build())\n .visibilityConfig(WebAclRuleVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-rule-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build())\n .tags(Map.ofEntries(\n Map.entry(\"Tag1\", \"Value1\"),\n Map.entry(\"Tag2\", \"Value2\")\n ))\n .visibilityConfig(WebAclVisibilityConfigArgs.builder()\n .cloudwatchMetricsEnabled(false)\n .metricName(\"friendly-metric-name\")\n .sampledRequestsEnabled(false)\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: aws:wafv2:RuleGroup\n properties:\n capacity: 10\n scope: REGIONAL\n rules:\n - name: rule-1\n priority: 1\n action:\n count: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - NL\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n - name: rule-to-exclude-a\n priority: 10\n action:\n allow: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - US\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n - name: rule-to-exclude-b\n priority: 15\n action:\n allow: {}\n statement:\n geoMatchStatement:\n countryCodes:\n - GB\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n test:\n type: aws:wafv2:WebAcl\n properties:\n scope: REGIONAL\n defaultAction:\n block: {}\n rules:\n - name: rule-1\n priority: 1\n overrideAction:\n count: {}\n statement:\n ruleGroupReferenceStatement:\n arn: ${example.arn}\n excludedRules:\n - name: rule-to-exclude-b\n - name: rule-to-exclude-a\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-rule-metric-name\n sampledRequestsEnabled: false\n tags:\n Tag1: Value1\n Tag2: Value2\n visibilityConfig:\n cloudwatchMetricsEnabled: false\n metricName: friendly-metric-name\n sampledRequestsEnabled: false\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWAFv2 Web ACLs can be imported using `ID/Name/Scope` e.g.,\n\n```sh\n $ pulumi import aws:wafv2/webAcl:WebAcl example a1b2c3d4-d5f6-7777-8888-9999aaaabbbbcccc/example/REGIONAL\n```\n\n ",
"properties": {
"arn": {
"type": "string",
@@ -541217,7 +545460,7 @@
}
},
"aws:cloudwatch/getEventConnection:getEventConnection": {
- "description": "Use this data source to retrieve information about an EventBridge connection.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\n\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 test = pulumi.output(aws.cloudwatch.getEventConnection({\n name: \"test\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.get_event_connection(name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.CloudWatch.GetEventConnection.Invoke(new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.LookupEventConnection(ctx, \u0026cloudwatch.LookupEventConnectionArgs{\n\t\t\tName: \"test\",\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.CloudwatchFunctions;\nimport com.pulumi.aws.cloudwatch.inputs.GetEventConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = CloudwatchFunctions.getEventConnection(GetEventConnectionArgs.builder()\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n Fn::Invoke:\n Function: aws:cloudwatch:getEventConnection\n Arguments:\n name: test\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Use this data source to retrieve information about an EventBridge connection.\n\n\u003e **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.\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 test = pulumi.output(aws.cloudwatch.getEventConnection({\n name: \"test\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.cloudwatch.get_event_connection(name=\"test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.CloudWatch.GetEventConnection.Invoke(new()\n {\n Name = \"test\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.LookupEventConnection(ctx, \u0026cloudwatch.LookupEventConnectionArgs{\n\t\t\tName: \"test\",\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.cloudwatch.CloudwatchFunctions;\nimport com.pulumi.aws.cloudwatch.inputs.GetEventConnectionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = CloudwatchFunctions.getEventConnection(GetEventConnectionArgs.builder()\n .name(\"test\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n Fn::Invoke:\n Function: aws:cloudwatch:getEventConnection\n Arguments:\n name: test\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getEventConnection.\n",
"properties": {
@@ -543467,6 +547710,10 @@
"type": "string"
},
"description": "Map of tags for the resource.\n"
+ },
+ "vlanId": {
+ "type": "string",
+ "description": "The VLAN ID.\n"
}
},
"type": "object",
@@ -543479,6 +547726,7 @@
"ownerAccountId",
"providerName",
"tags",
+ "vlanId",
"id"
]
}
@@ -547490,7 +551738,7 @@
}
},
"aws:ec2/getNatGateway:getNatGateway": {
- "description": "Provides details about a specific Nat Gateway.\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 config = new pulumi.Config();\nconst subnetId = config.requireObject(\"subnetId\");\nconst default = aws.ec2.getNatGateway({\n subnetId: aws_subnet[\"public\"].id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nconfig = pulumi.Config()\nsubnet_id = config.require_object(\"subnetId\")\ndefault = aws.ec2.get_nat_gateway(subnet_id=aws_subnet[\"public\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var subnetId = config.RequireObject\u003cdynamic\u003e(\"subnetId\");\n var @default = Aws.Ec2.GetNatGateway.Invoke(new()\n {\n SubnetId = aws_subnet.Public.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tsubnetId := cfg.RequireObject(\"subnetId\")\n\t\t_, err := ec2.LookupNatGateway(ctx, \u0026ec2.LookupNatGatewayArgs{\n\t\t\tSubnetId: pulumi.StringRef(aws_subnet.Public.Id),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetNatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var subnetId = config.get(\"subnetId\");\n final var default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()\n .subnetId(aws_subnet.public().id())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n subnetId:\n type: dynamic\nvariables:\n default:\n Fn::Invoke:\n Function: aws:ec2:getNatGateway\n Arguments:\n subnetId: ${aws_subnet.public.id}\n```\n\nUsage with tags:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst default = aws.ec2.getNatGateway({\n subnetId: aws_subnet[\"public\"].id,\n tags: {\n Name: \"gw NAT\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.ec2.get_nat_gateway(subnet_id=aws_subnet[\"public\"][\"id\"],\n tags={\n \"Name\": \"gw NAT\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Aws.Ec2.GetNatGateway.Invoke(new()\n {\n SubnetId = aws_subnet.Public.Id,\n Tags = \n {\n { \"Name\", \"gw NAT\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupNatGateway(ctx, \u0026ec2.LookupNatGatewayArgs{\n\t\t\tSubnetId: pulumi.StringRef(aws_subnet.Public.Id),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"Name\": \"gw NAT\",\n\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetNatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()\n .subnetId(aws_subnet.public().id())\n .tags(Map.of(\"Name\", \"gw NAT\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n Fn::Invoke:\n Function: aws:ec2:getNatGateway\n Arguments:\n subnetId: ${aws_subnet.public.id}\n tags:\n Name: gw NAT\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Provides details about a specific Nat Gateway.\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 default = aws.ec2.getNatGateway({\n subnetId: aws_subnet[\"public\"].id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.ec2.get_nat_gateway(subnet_id=aws_subnet[\"public\"][\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Aws.Ec2.GetNatGateway.Invoke(new()\n {\n SubnetId = aws_subnet.Public.Id,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupNatGateway(ctx, \u0026ec2.LookupNatGatewayArgs{\n\t\t\tSubnetId: pulumi.StringRef(aws_subnet.Public.Id),\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetNatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()\n .subnetId(aws_subnet.public().id())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n Fn::Invoke:\n Function: aws:ec2:getNatGateway\n Arguments:\n subnetId: ${aws_subnet.public.id}\n```\n\nUsage with tags:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst default = aws.ec2.getNatGateway({\n subnetId: aws_subnet[\"public\"].id,\n tags: {\n Name: \"gw NAT\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ndefault = aws.ec2.get_nat_gateway(subnet_id=aws_subnet[\"public\"][\"id\"],\n tags={\n \"Name\": \"gw NAT\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var @default = Aws.Ec2.GetNatGateway.Invoke(new()\n {\n SubnetId = aws_subnet.Public.Id,\n Tags = \n {\n { \"Name\", \"gw NAT\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.LookupNatGateway(ctx, \u0026ec2.LookupNatGatewayArgs{\n\t\t\tSubnetId: pulumi.StringRef(aws_subnet.Public.Id),\n\t\t\tTags: map[string]interface{}{\n\t\t\t\t\"Name\": \"gw NAT\",\n\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetNatGatewayArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var default = Ec2Functions.getNatGateway(GetNatGatewayArgs.builder()\n .subnetId(aws_subnet.public().id())\n .tags(Map.of(\"Name\", \"gw NAT\"))\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n default:\n Fn::Invoke:\n Function: aws:ec2:getNatGateway\n Arguments:\n subnetId: ${aws_subnet.public.id}\n tags:\n Name: gw NAT\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getNatGateway.\n",
"properties": {
@@ -549185,6 +553433,10 @@
"type": "boolean",
"description": "Whether or not the VPC has DNS support\n"
},
+ "enableNetworkAddressUsageMetrics": {
+ "type": "boolean",
+ "description": "Whether Network Address Usage metrics are enabled for your VPC\n"
+ },
"filters": {
"type": "array",
"items": {
@@ -549234,6 +553486,7 @@
"dhcpOptionsId",
"enableDnsHostnames",
"enableDnsSupport",
+ "enableNetworkAddressUsageMetrics",
"id",
"instanceTenancy",
"ipv6AssociationId",
@@ -549851,6 +554104,49 @@
]
}
},
+ "aws:ec2/getVpcIamPools:getVpcIamPools": {
+ "description": "`aws.ec2.getVpcIamPools` provides details about IPAM pools.\n\nThis resource can prove useful when IPAM pools are created in another root\nmodule and you need the pool ids as input variables. For example, pools\ncan be shared via RAM and used to create vpcs with CIDRs from that pool.\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 test = pulumi.output(aws.ec2.getVpcIamPools({\n filters: [\n {\n name: \"description\",\n values: [\"*test*\"],\n },\n {\n name: \"address-family\",\n values: [\"ipv4\"],\n },\n ],\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.ec2.get_vpc_iam_pools(filters=[\n aws.ec2.GetVpcIamPoolsFilterArgs(\n name=\"description\",\n values=[\"*test*\"],\n ),\n aws.ec2.GetVpcIamPoolsFilterArgs(\n name=\"address-family\",\n values=[\"ipv4\"],\n ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Ec2.GetVpcIamPools.Invoke(new()\n {\n Filters = new[]\n {\n new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs\n {\n Name = \"description\",\n Values = new[]\n {\n \"*test*\",\n },\n },\n new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs\n {\n Name = \"address-family\",\n Values = new[]\n {\n \"ipv4\",\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := ec2.GetVpcIamPools(ctx, \u0026ec2.GetVpcIamPoolsArgs{\n\t\t\tFilters: []ec2.GetVpcIamPoolsFilter{\n\t\t\t\tec2.GetVpcIamPoolsFilter{\n\t\t\t\t\tName: \"description\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"*test*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tec2.GetVpcIamPoolsFilter{\n\t\t\t\t\tName: \"address-family\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"ipv4\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetVpcIamPoolsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = Ec2Functions.getVpcIamPools(GetVpcIamPoolsArgs.builder()\n .filters( \n GetVpcIamPoolsFilterArgs.builder()\n .name(\"description\")\n .values(\"*test*\")\n .build(),\n GetVpcIamPoolsFilterArgs.builder()\n .name(\"address-family\")\n .values(\"ipv4\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n Fn::Invoke:\n Function: aws:ec2:getVpcIamPools\n Arguments:\n filters:\n - name: description\n values:\n - '*test*'\n - name: address-family\n values:\n - ipv4\n```\n{{% /example %}}\n{{% /examples %}}",
+ "inputs": {
+ "description": "A collection of arguments for invoking getVpcIamPools.\n",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:ec2/getVpcIamPoolsFilter:getVpcIamPoolsFilter"
+ },
+ "description": "Custom filter block as described below.\n"
+ }
+ },
+ "type": "object"
+ },
+ "outputs": {
+ "description": "A collection of values returned by getVpcIamPools.\n",
+ "properties": {
+ "filters": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:ec2/getVpcIamPoolsFilter:getVpcIamPoolsFilter"
+ }
+ },
+ "id": {
+ "type": "string",
+ "description": "The provider-assigned unique ID for this managed resource.\n"
+ },
+ "ipamPools": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/aws:ec2/getVpcIamPoolsIpamPool:getVpcIamPoolsIpamPool"
+ },
+ "description": "List of IPAM pools and their attributes. See below for details\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "ipamPools",
+ "id"
+ ]
+ }
+ },
"aws:ec2/getVpcPeeringConnection:getVpcPeeringConnection": {
"description": "The VPC Peering Connection data source provides details about\na specific VPC peering connection.\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 pc = aws.ec2.getVpcPeeringConnection({\n vpcId: aws_vpc.foo.id,\n peerCidrBlock: \"10.0.1.0/22\",\n});\n// Create a route table\nconst rt = new aws.ec2.RouteTable(\"rt\", {vpcId: aws_vpc.foo.id});\n// Create a route\nconst route = new aws.ec2.Route(\"route\", {\n routeTableId: rt.id,\n destinationCidrBlock: pc.then(pc =\u003e pc.peerCidrBlock),\n vpcPeeringConnectionId: pc.then(pc =\u003e pc.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\npc = aws.ec2.get_vpc_peering_connection(vpc_id=aws_vpc[\"foo\"][\"id\"],\n peer_cidr_block=\"10.0.1.0/22\")\n# Create a route table\nrt = aws.ec2.RouteTable(\"rt\", vpc_id=aws_vpc[\"foo\"][\"id\"])\n# Create a route\nroute = aws.ec2.Route(\"route\",\n route_table_id=rt.id,\n destination_cidr_block=pc.peer_cidr_block,\n vpc_peering_connection_id=pc.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var pc = Aws.Ec2.GetVpcPeeringConnection.Invoke(new()\n {\n VpcId = aws_vpc.Foo.Id,\n PeerCidrBlock = \"10.0.1.0/22\",\n });\n\n // Create a route table\n var rt = new Aws.Ec2.RouteTable(\"rt\", new()\n {\n VpcId = aws_vpc.Foo.Id,\n });\n\n // Create a route\n var route = new Aws.Ec2.Route(\"route\", new()\n {\n RouteTableId = rt.Id,\n DestinationCidrBlock = pc.Apply(getVpcPeeringConnectionResult =\u003e getVpcPeeringConnectionResult.PeerCidrBlock),\n VpcPeeringConnectionId = pc.Apply(getVpcPeeringConnectionResult =\u003e getVpcPeeringConnectionResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpc, err := ec2.LookupVpcPeeringConnection(ctx, \u0026ec2.LookupVpcPeeringConnectionArgs{\n\t\t\tVpcId: pulumi.StringRef(aws_vpc.Foo.Id),\n\t\t\tPeerCidrBlock: pulumi.StringRef(\"10.0.1.0/22\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\trt, err := ec2.NewRouteTable(ctx, \"rt\", \u0026ec2.RouteTableArgs{\n\t\t\tVpcId: pulumi.Any(aws_vpc.Foo.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewRoute(ctx, \"route\", \u0026ec2.RouteArgs{\n\t\t\tRouteTableId: rt.ID(),\n\t\t\tDestinationCidrBlock: pulumi.String(pc.PeerCidrBlock),\n\t\t\tVpcPeeringConnectionId: pulumi.String(pc.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ec2.Ec2Functions;\nimport com.pulumi.aws.ec2.inputs.GetVpcPeeringConnectionArgs;\nimport com.pulumi.aws.ec2.RouteTable;\nimport com.pulumi.aws.ec2.RouteTableArgs;\nimport com.pulumi.aws.ec2.Route;\nimport com.pulumi.aws.ec2.RouteArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var pc = Ec2Functions.getVpcPeeringConnection(GetVpcPeeringConnectionArgs.builder()\n .vpcId(aws_vpc.foo().id())\n .peerCidrBlock(\"10.0.1.0/22\")\n .build());\n\n var rt = new RouteTable(\"rt\", RouteTableArgs.builder() \n .vpcId(aws_vpc.foo().id())\n .build());\n\n var route = new Route(\"route\", RouteArgs.builder() \n .routeTableId(rt.id())\n .destinationCidrBlock(pc.applyValue(getVpcPeeringConnectionResult -\u003e getVpcPeeringConnectionResult.peerCidrBlock()))\n .vpcPeeringConnectionId(pc.applyValue(getVpcPeeringConnectionResult -\u003e getVpcPeeringConnectionResult.id()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n # Create a route table\n rt:\n type: aws:ec2:RouteTable\n properties:\n vpcId: ${aws_vpc.foo.id}\n # Create a route\n route:\n type: aws:ec2:Route\n properties:\n routeTableId: ${rt.id}\n destinationCidrBlock: ${pc.peerCidrBlock}\n vpcPeeringConnectionId: ${pc.id}\nvariables:\n pc:\n Fn::Invoke:\n Function: aws:ec2:getVpcPeeringConnection\n Arguments:\n vpcId: ${aws_vpc.foo.id}\n peerCidrBlock: 10.0.1.0/22\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
@@ -551810,7 +556106,7 @@
}
},
"aws:ecs/getTaskDefinition:getTaskDefinition": {
- "description": "The ECS task definition data source allows access to details of\na specific AWS ECS task definition.\n\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 mongoTaskDefinition = aws.ecs.getTaskDefinition({\n taskDefinition: mongoEcs / taskDefinitionTaskDefinition.family,\n});\nconst foo = new aws.ecs.Cluster(\"foo\", {});\nconst mongoEcs_taskDefinitionTaskDefinition = new aws.ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", {\n family: \"mongodb\",\n containerDefinitions: `[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n`,\n});\nconst mongoService = new aws.ecs.Service(\"mongoService\", {\n cluster: foo.id,\n desiredCount: 2,\n taskDefinition: mongoTaskDefinition.then(mongoTaskDefinition =\u003e mongoTaskDefinition.arn),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmongo_task_definition = aws.ecs.get_task_definition(task_definition=mongo_ecs / task_definition_task_definition[\"family\"])\nfoo = aws.ecs.Cluster(\"foo\")\nmongo_ecs_task_definition_task_definition = aws.ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\",\n family=\"mongodb\",\n container_definitions=\"\"\"[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n\"\"\")\nmongo_service = aws.ecs.Service(\"mongoService\",\n cluster=foo.id,\n desired_count=2,\n task_definition=mongo_task_definition.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongoTaskDefinition = Aws.Ecs.GetTaskDefinition.Invoke(new()\n {\n TaskDefinition = mongoEcs / taskDefinitionTaskDefinition.Family,\n });\n\n var foo = new Aws.Ecs.Cluster(\"foo\");\n\n var mongoEcs_taskDefinitionTaskDefinition = new Aws.Ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", new()\n {\n Family = \"mongodb\",\n ContainerDefinitions = @\"[\n {\n \"\"cpu\"\": 128,\n \"\"environment\"\": [{\n \"\"name\"\": \"\"SECRET\"\",\n \"\"value\"\": \"\"KEY\"\"\n }],\n \"\"essential\"\": true,\n \"\"image\"\": \"\"mongo:latest\"\",\n \"\"memory\"\": 128,\n \"\"memoryReservation\"\": 64,\n \"\"name\"\": \"\"mongodb\"\"\n }\n]\n\",\n });\n\n var mongoService = new Aws.Ecs.Service(\"mongoService\", new()\n {\n Cluster = foo.Id,\n DesiredCount = 2,\n TaskDefinition = mongoTaskDefinition.Apply(getTaskDefinitionResult =\u003e getTaskDefinitionResult.Arn),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmongoTaskDefinition, err := ecs.LookupTaskDefinition(ctx, \u0026ecs.LookupTaskDefinitionArgs{\n\t\t\tTaskDefinition: mongoEcs / taskDefinitionTaskDefinition.Family,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := ecs.NewCluster(ctx, \"foo\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewTaskDefinition(ctx, \"mongoEcs/taskDefinitionTaskDefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tFamily: pulumi.String(\"mongodb\"),\n\t\t\tContainerDefinitions: pulumi.String(fmt.Sprintf(`[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n`)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewService(ctx, \"mongoService\", \u0026ecs.ServiceArgs{\n\t\t\tCluster: foo.ID(),\n\t\t\tDesiredCount: pulumi.Int(2),\n\t\t\tTaskDefinition: pulumi.String(mongoTaskDefinition.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ecs.EcsFunctions;\nimport com.pulumi.aws.ecs.inputs.GetTaskDefinitionArgs;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.TaskDefinition;\nimport com.pulumi.aws.ecs.TaskDefinitionArgs;\nimport com.pulumi.aws.ecs.Service;\nimport com.pulumi.aws.ecs.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var mongoTaskDefinition = EcsFunctions.getTaskDefinition(GetTaskDefinitionArgs.builder()\n .taskDefinition(mongoEcs / taskDefinitionTaskDefinition.family())\n .build());\n\n var foo = new Cluster(\"foo\");\n\n var mongoEcs_taskDefinitionTaskDefinition = new TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", TaskDefinitionArgs.builder() \n .family(\"mongodb\")\n .containerDefinitions(\"\"\"\n[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n \"\"\")\n .build());\n\n var mongoService = new Service(\"mongoService\", ServiceArgs.builder() \n .cluster(foo.id())\n .desiredCount(2)\n .taskDefinition(mongoTaskDefinition.applyValue(getTaskDefinitionResult -\u003e getTaskDefinitionResult.arn()))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "The ECS task definition data source allows access to details of\na specific AWS ECS task definition.\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 mongoTaskDefinition = aws.ecs.getTaskDefinition({\n taskDefinition: mongoEcs / taskDefinitionTaskDefinition.family,\n});\nconst foo = new aws.ecs.Cluster(\"foo\", {});\nconst mongoEcs_taskDefinitionTaskDefinition = new aws.ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", {\n family: \"mongodb\",\n containerDefinitions: `[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n`,\n});\nconst mongoService = new aws.ecs.Service(\"mongoService\", {\n cluster: foo.id,\n desiredCount: 2,\n taskDefinition: mongoTaskDefinition.then(mongoTaskDefinition =\u003e mongoTaskDefinition.arn),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmongo_task_definition = aws.ecs.get_task_definition(task_definition=mongo_ecs / task_definition_task_definition[\"family\"])\nfoo = aws.ecs.Cluster(\"foo\")\nmongo_ecs_task_definition_task_definition = aws.ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\",\n family=\"mongodb\",\n container_definitions=\"\"\"[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n\"\"\")\nmongo_service = aws.ecs.Service(\"mongoService\",\n cluster=foo.id,\n desired_count=2,\n task_definition=mongo_task_definition.arn)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var mongoTaskDefinition = Aws.Ecs.GetTaskDefinition.Invoke(new()\n {\n TaskDefinition = mongoEcs / taskDefinitionTaskDefinition.Family,\n });\n\n var foo = new Aws.Ecs.Cluster(\"foo\");\n\n var mongoEcs_taskDefinitionTaskDefinition = new Aws.Ecs.TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", new()\n {\n Family = \"mongodb\",\n ContainerDefinitions = @\"[\n {\n \"\"cpu\"\": 128,\n \"\"environment\"\": [{\n \"\"name\"\": \"\"SECRET\"\",\n \"\"value\"\": \"\"KEY\"\"\n }],\n \"\"essential\"\": true,\n \"\"image\"\": \"\"mongo:latest\"\",\n \"\"memory\"\": 128,\n \"\"memoryReservation\"\": 64,\n \"\"name\"\": \"\"mongodb\"\"\n }\n]\n\",\n });\n\n var mongoService = new Aws.Ecs.Service(\"mongoService\", new()\n {\n Cluster = foo.Id,\n DesiredCount = 2,\n TaskDefinition = mongoTaskDefinition.Apply(getTaskDefinitionResult =\u003e getTaskDefinitionResult.Arn),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ecs\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmongoTaskDefinition, err := ecs.LookupTaskDefinition(ctx, \u0026ecs.LookupTaskDefinitionArgs{\n\t\t\tTaskDefinition: mongoEcs / taskDefinitionTaskDefinition.Family,\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfoo, err := ecs.NewCluster(ctx, \"foo\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewTaskDefinition(ctx, \"mongoEcs/taskDefinitionTaskDefinition\", \u0026ecs.TaskDefinitionArgs{\n\t\t\tFamily: pulumi.String(\"mongodb\"),\n\t\t\tContainerDefinitions: pulumi.String(fmt.Sprintf(`[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n`)),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ecs.NewService(ctx, \"mongoService\", \u0026ecs.ServiceArgs{\n\t\t\tCluster: foo.ID(),\n\t\t\tDesiredCount: pulumi.Int(2),\n\t\t\tTaskDefinition: pulumi.String(mongoTaskDefinition.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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.ecs.EcsFunctions;\nimport com.pulumi.aws.ecs.inputs.GetTaskDefinitionArgs;\nimport com.pulumi.aws.ecs.Cluster;\nimport com.pulumi.aws.ecs.TaskDefinition;\nimport com.pulumi.aws.ecs.TaskDefinitionArgs;\nimport com.pulumi.aws.ecs.Service;\nimport com.pulumi.aws.ecs.ServiceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var mongoTaskDefinition = EcsFunctions.getTaskDefinition(GetTaskDefinitionArgs.builder()\n .taskDefinition(mongoEcs / taskDefinitionTaskDefinition.family())\n .build());\n\n var foo = new Cluster(\"foo\");\n\n var mongoEcs_taskDefinitionTaskDefinition = new TaskDefinition(\"mongoEcs/taskDefinitionTaskDefinition\", TaskDefinitionArgs.builder() \n .family(\"mongodb\")\n .containerDefinitions(\"\"\"\n[\n {\n \"cpu\": 128,\n \"environment\": [{\n \"name\": \"SECRET\",\n \"value\": \"KEY\"\n }],\n \"essential\": true,\n \"image\": \"mongo:latest\",\n \"memory\": 128,\n \"memoryReservation\": 64,\n \"name\": \"mongodb\"\n }\n]\n \"\"\")\n .build());\n\n var mongoService = new Service(\"mongoService\", ServiceArgs.builder() \n .cluster(foo.id())\n .desiredCount(2)\n .taskDefinition(mongoTaskDefinition.applyValue(getTaskDefinitionResult -\u003e getTaskDefinitionResult.arn()))\n .build());\n\n }\n}\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getTaskDefinition.\n",
"properties": {
@@ -552726,7 +557022,7 @@
}
},
"aws:elasticache/getCluster:getCluster": {
- "description": "Use this data source to get information about an Elasticache Cluster\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 myCluster = pulumi.output(aws.elasticache.getCluster({\n clusterId: \"my-cluster-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_cluster = aws.elasticache.get_cluster(cluster_id=\"my-cluster-id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myCluster = Aws.ElastiCache.GetCluster.Invoke(new()\n {\n ClusterId = \"my-cluster-id\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupCluster(ctx, \u0026elasticache.LookupClusterArgs{\n\t\t\tClusterId: \"my-cluster-id\",\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.cloudhsmv2.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myCluster = ElasticacheFunctions.getCluster(GetClusterArgs.builder()\n .clusterId(\"my-cluster-id\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n myCluster:\n Fn::Invoke:\n Function: aws:elasticache:getCluster\n Arguments:\n clusterId: my-cluster-id\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Use this data source to get information about an ElastiCache Cluster\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 myCluster = pulumi.output(aws.elasticache.getCluster({\n clusterId: \"my-cluster-id\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_cluster = aws.elasticache.get_cluster(cluster_id=\"my-cluster-id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var myCluster = Aws.ElastiCache.GetCluster.Invoke(new()\n {\n ClusterId = \"my-cluster-id\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupCluster(ctx, \u0026elasticache.LookupClusterArgs{\n\t\t\tClusterId: \"my-cluster-id\",\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.cloudhsmv2.inputs.GetClusterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var myCluster = ElasticacheFunctions.getCluster(GetClusterArgs.builder()\n .clusterId(\"my-cluster-id\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n myCluster:\n Fn::Invoke:\n Function: aws:elasticache:getCluster\n Arguments:\n clusterId: my-cluster-id\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getCluster.\n",
"properties": {
@@ -552885,7 +557181,7 @@
}
},
"aws:elasticache/getReplicationGroup:getReplicationGroup": {
- "description": "Use this data source to get information about an Elasticache Replication Group.\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 bar = pulumi.output(aws.elasticache.getReplicationGroup({\n replicationGroupId: \"example\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbar = aws.elasticache.get_replication_group(replication_group_id=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = Aws.ElastiCache.GetReplicationGroup.Invoke(new()\n {\n ReplicationGroupId = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupReplicationGroup(ctx, \u0026elasticache.LookupReplicationGroupArgs{\n\t\t\tReplicationGroupId: \"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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.elasticache.inputs.GetReplicationGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var bar = ElasticacheFunctions.getReplicationGroup(GetReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n bar:\n Fn::Invoke:\n Function: aws:elasticache:getReplicationGroup\n Arguments:\n replicationGroupId: example\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Use this data source to get information about an ElastiCache Replication Group.\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 bar = pulumi.output(aws.elasticache.getReplicationGroup({\n replicationGroupId: \"example\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbar = aws.elasticache.get_replication_group(replication_group_id=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = Aws.ElastiCache.GetReplicationGroup.Invoke(new()\n {\n ReplicationGroupId = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupReplicationGroup(ctx, \u0026elasticache.LookupReplicationGroupArgs{\n\t\t\tReplicationGroupId: \"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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.elasticache.inputs.GetReplicationGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var bar = ElasticacheFunctions.getReplicationGroup(GetReplicationGroupArgs.builder()\n .replicationGroupId(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n bar:\n Fn::Invoke:\n Function: aws:elasticache:getReplicationGroup\n Arguments:\n replicationGroupId: example\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getReplicationGroup.\n",
"properties": {
@@ -553021,7 +557317,7 @@
}
},
"aws:elasticache/getUser:getUser": {
- "description": "Use this data source to get information about an Elasticache User.\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 bar = pulumi.output(aws.elasticache.getUser({\n userId: \"example\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbar = aws.elasticache.get_user(user_id=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = Aws.ElastiCache.GetUser.Invoke(new()\n {\n UserId = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupUser(ctx, \u0026elasticache.LookupUserArgs{\n\t\t\tUserId: \"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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.elasticache.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var bar = ElasticacheFunctions.getUser(GetUserArgs.builder()\n .userId(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n bar:\n Fn::Invoke:\n Function: aws:elasticache:getUser\n Arguments:\n userId: example\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Use this data source to get information about an ElastiCache User.\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 bar = pulumi.output(aws.elasticache.getUser({\n userId: \"example\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nbar = aws.elasticache.get_user(user_id=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var bar = Aws.ElastiCache.GetUser.Invoke(new()\n {\n UserId = \"example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/elasticache\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := elasticache.LookupUser(ctx, \u0026elasticache.LookupUserArgs{\n\t\t\tUserId: \"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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.elasticache.ElasticacheFunctions;\nimport com.pulumi.aws.elasticache.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var bar = ElasticacheFunctions.getUser(GetUserArgs.builder()\n .userId(\"example\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n bar:\n Fn::Invoke:\n Function: aws:elasticache:getUser\n Arguments:\n userId: example\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getUser.\n",
"properties": {
@@ -566194,6 +570490,90 @@
]
}
},
+ "aws:rds/getReservedInstanceOffering:getReservedInstanceOffering": {
+ "description": "Information about a single RDS Reserved Instance Offering.\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 test = pulumi.output(aws.rds.getReservedInstanceOffering({\n dbInstanceClass: \"db.t2.micro\",\n duration: 31536000,\n multiAz: false,\n offeringType: \"All Upfront\",\n productDescription: \"mysql\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.rds.get_reserved_instance_offering(db_instance_class=\"db.t2.micro\",\n duration=31536000,\n multi_az=False,\n offering_type=\"All Upfront\",\n product_description=\"mysql\")\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var test = Aws.Rds.GetReservedInstanceOffering.Invoke(new()\n {\n DbInstanceClass = \"db.t2.micro\",\n Duration = 31536000,\n MultiAz = false,\n OfferingType = \"All Upfront\",\n ProductDescription = \"mysql\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.GetReservedInstanceOffering(ctx, \u0026rds.GetReservedInstanceOfferingArgs{\n\t\t\tDbInstanceClass: \"db.t2.micro\",\n\t\t\tDuration: 31536000,\n\t\t\tMultiAz: false,\n\t\t\tOfferingType: \"All Upfront\",\n\t\t\tProductDescription: \"mysql\",\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```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.rds.inputs.GetReservedInstanceOfferingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var test = RdsFunctions.getReservedInstanceOffering(GetReservedInstanceOfferingArgs.builder()\n .dbInstanceClass(\"db.t2.micro\")\n .duration(31536000)\n .multiAz(false)\n .offeringType(\"All Upfront\")\n .productDescription(\"mysql\")\n .build());\n\n }\n}\n```\n```yaml\nvariables:\n test:\n Fn::Invoke:\n Function: aws:rds:getReservedInstanceOffering\n Arguments:\n dbInstanceClass: db.t2.micro\n duration: 3.1536e+07\n multiAz: false\n offeringType: All Upfront\n productDescription: mysql\n```\n{{% /example %}}\n{{% /examples %}}",
+ "inputs": {
+ "description": "A collection of arguments for invoking getReservedInstanceOffering.\n",
+ "properties": {
+ "dbInstanceClass": {
+ "type": "string",
+ "description": "DB instance class for the reserved DB instance.\n"
+ },
+ "duration": {
+ "type": "integer",
+ "description": "Duration of the reservation in seconds.\n"
+ },
+ "multiAz": {
+ "type": "boolean",
+ "description": "Whether the reservation applies to Multi-AZ deployments.\n"
+ },
+ "offeringType": {
+ "type": "string",
+ "description": "Offering type of this reserved DB instance.\n"
+ },
+ "productDescription": {
+ "type": "string",
+ "description": "Description of the reserved DB instance.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "dbInstanceClass",
+ "duration",
+ "multiAz",
+ "offeringType",
+ "productDescription"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getReservedInstanceOffering.\n",
+ "properties": {
+ "currencyCode": {
+ "type": "string",
+ "description": "Currency code for the reserved DB instance.\n"
+ },
+ "dbInstanceClass": {
+ "type": "string"
+ },
+ "duration": {
+ "type": "integer"
+ },
+ "fixedPrice": {
+ "type": "number",
+ "description": "Fixed price charged for this reserved DB instance.\n"
+ },
+ "id": {
+ "type": "string",
+ "description": "The provider-assigned unique ID for this managed resource.\n"
+ },
+ "multiAz": {
+ "type": "boolean"
+ },
+ "offeringId": {
+ "type": "string",
+ "description": "Unique identifier for the reservation.\n"
+ },
+ "offeringType": {
+ "type": "string"
+ },
+ "productDescription": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "currencyCode",
+ "dbInstanceClass",
+ "duration",
+ "fixedPrice",
+ "multiAz",
+ "offeringId",
+ "offeringType",
+ "productDescription",
+ "id"
+ ]
+ }
+ },
"aws:rds/getSnapshot:getSnapshot": {
"description": "Use this data source to get information about a DB Snapshot for use when provisioning DB instances\n\n\u003e **NOTE:** This data source does not apply to snapshots created on Aurora DB clusters.\nSee the `aws.rds.ClusterSnapshot` data source for DB Cluster snapshots.\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 prod = new aws.rds.Instance(\"prod\", {\n allocatedStorage: 10,\n engine: \"mysql\",\n engineVersion: \"5.6.17\",\n instanceClass: \"db.t2.micro\",\n name: \"mydb\",\n username: \"foo\",\n password: \"bar\",\n dbSubnetGroupName: \"my_database_subnet_group\",\n parameterGroupName: \"default.mysql5.6\",\n});\nconst latestProdSnapshot = aws.rds.getSnapshotOutput({\n dbInstanceIdentifier: prod.id,\n mostRecent: true,\n});\n// Use the latest production snapshot to create a dev instance.\nconst dev = new aws.rds.Instance(\"dev\", {\n instanceClass: \"db.t2.micro\",\n name: \"mydbdev\",\n snapshotIdentifier: latestProdSnapshot.apply(latestProdSnapshot =\u003e latestProdSnapshot.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nprod = aws.rds.Instance(\"prod\",\n allocated_storage=10,\n engine=\"mysql\",\n engine_version=\"5.6.17\",\n instance_class=\"db.t2.micro\",\n name=\"mydb\",\n username=\"foo\",\n password=\"bar\",\n db_subnet_group_name=\"my_database_subnet_group\",\n parameter_group_name=\"default.mysql5.6\")\nlatest_prod_snapshot = aws.rds.get_snapshot_output(db_instance_identifier=prod.id,\n most_recent=True)\n# Use the latest production snapshot to create a dev instance.\ndev = aws.rds.Instance(\"dev\",\n instance_class=\"db.t2.micro\",\n name=\"mydbdev\",\n snapshot_identifier=latest_prod_snapshot.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var prod = new Aws.Rds.Instance(\"prod\", new()\n {\n AllocatedStorage = 10,\n Engine = \"mysql\",\n EngineVersion = \"5.6.17\",\n InstanceClass = \"db.t2.micro\",\n Name = \"mydb\",\n Username = \"foo\",\n Password = \"bar\",\n DbSubnetGroupName = \"my_database_subnet_group\",\n ParameterGroupName = \"default.mysql5.6\",\n });\n\n var latestProdSnapshot = Aws.Rds.GetSnapshot.Invoke(new()\n {\n DbInstanceIdentifier = prod.Id,\n MostRecent = true,\n });\n\n // Use the latest production snapshot to create a dev instance.\n var dev = new Aws.Rds.Instance(\"dev\", new()\n {\n InstanceClass = \"db.t2.micro\",\n Name = \"mydbdev\",\n SnapshotIdentifier = latestProdSnapshot.Apply(getSnapshotResult =\u003e getSnapshotResult.Id),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tprod, err := rds.NewInstance(ctx, \"prod\", \u0026rds.InstanceArgs{\n\t\t\tAllocatedStorage: pulumi.Int(10),\n\t\t\tEngine: pulumi.String(\"mysql\"),\n\t\t\tEngineVersion: pulumi.String(\"5.6.17\"),\n\t\t\tInstanceClass: pulumi.String(\"db.t2.micro\"),\n\t\t\tName: pulumi.String(\"mydb\"),\n\t\t\tUsername: pulumi.String(\"foo\"),\n\t\t\tPassword: pulumi.String(\"bar\"),\n\t\t\tDbSubnetGroupName: pulumi.String(\"my_database_subnet_group\"),\n\t\t\tParameterGroupName: pulumi.String(\"default.mysql5.6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tlatestProdSnapshot := rds.LookupSnapshotOutput(ctx, rds.GetSnapshotOutputArgs{\n\t\t\tDbInstanceIdentifier: prod.ID(),\n\t\t\tMostRecent: pulumi.Bool(true),\n\t\t}, nil)\n\t\t_, err = rds.NewInstance(ctx, \"dev\", \u0026rds.InstanceArgs{\n\t\t\tInstanceClass: pulumi.String(\"db.t2.micro\"),\n\t\t\tName: pulumi.String(\"mydbdev\"),\n\t\t\tSnapshotIdentifier: latestProdSnapshot.ApplyT(func(latestProdSnapshot rds.GetSnapshotResult) (string, error) {\n\t\t\t\treturn latestProdSnapshot.Id, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.rds.Instance;\nimport com.pulumi.aws.rds.InstanceArgs;\nimport com.pulumi.aws.rds.RdsFunctions;\nimport com.pulumi.aws.ebs.inputs.GetSnapshotArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var prod = new Instance(\"prod\", InstanceArgs.builder() \n .allocatedStorage(10)\n .engine(\"mysql\")\n .engineVersion(\"5.6.17\")\n .instanceClass(\"db.t2.micro\")\n .name(\"mydb\")\n .username(\"foo\")\n .password(\"bar\")\n .dbSubnetGroupName(\"my_database_subnet_group\")\n .parameterGroupName(\"default.mysql5.6\")\n .build());\n\n final var latestProdSnapshot = RdsFunctions.getSnapshot(GetSnapshotArgs.builder()\n .dbInstanceIdentifier(prod.id())\n .mostRecent(true)\n .build());\n\n var dev = new Instance(\"dev\", InstanceArgs.builder() \n .instanceClass(\"db.t2.micro\")\n .name(\"mydbdev\")\n .snapshotIdentifier(latestProdSnapshot.applyValue(getSnapshotResult -\u003e getSnapshotResult).applyValue(latestProdSnapshot -\u003e latestProdSnapshot.applyValue(getSnapshotResult -\u003e getSnapshotResult.id())))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n prod:\n type: aws:rds:Instance\n properties:\n allocatedStorage: 10\n engine: mysql\n engineVersion: 5.6.17\n instanceClass: db.t2.micro\n name: mydb\n username: foo\n password: bar\n dbSubnetGroupName: my_database_subnet_group\n parameterGroupName: default.mysql5.6\n # Use the latest production snapshot to create a dev instance.\n dev:\n type: aws:rds:Instance\n properties:\n instanceClass: db.t2.micro\n name: mydbdev\n snapshotIdentifier: ${latestProdSnapshot.id}\nvariables:\n latestProdSnapshot:\n Fn::Invoke:\n Function: aws:rds:getSnapshot\n Arguments:\n dbInstanceIdentifier: ${prod.id}\n mostRecent: true\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
@@ -567264,7 +571644,7 @@
}
},
"aws:route53/getTrafficPolicyDocument:getTrafficPolicyDocument": {
- "description": "Generates an Route53 traffic policy document in JSON format for use with resources that expect policy documents such as [`aws.route53.TrafficPolicy`](https://www.terraform.io/docs/providers/aws/r/route53_traffic_policy.html).\n\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getRegion({});\nconst exampleTrafficPolicyDocument = Promise.all([current, current]).then(([current, current1]) =\u003e aws.route53.getTrafficPolicyDocument({\n recordType: \"A\",\n startRule: \"site_switch\",\n endpoints: [\n {\n id: \"my_elb\",\n type: \"elastic-load-balancer\",\n value: `elb-111111.${current.name}.elb.amazonaws.com`,\n },\n {\n id: \"site_down_banner\",\n type: \"s3-website\",\n region: current1.name,\n value: \"www.example.com\",\n },\n ],\n rules: [{\n id: \"site_switch\",\n type: \"failover\",\n primary: {\n endpointReference: \"my_elb\",\n },\n secondary: {\n endpointReference: \"site_down_banner\",\n },\n }],\n}));\nconst exampleTrafficPolicy = new aws.route53.TrafficPolicy(\"exampleTrafficPolicy\", {\n comment: \"example comment\",\n document: exampleTrafficPolicyDocument.then(exampleTrafficPolicyDocument =\u003e exampleTrafficPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\nexample_traffic_policy_document = aws.route53.get_traffic_policy_document(record_type=\"A\",\n start_rule=\"site_switch\",\n endpoints=[\n aws.route53.GetTrafficPolicyDocumentEndpointArgs(\n id=\"my_elb\",\n type=\"elastic-load-balancer\",\n value=f\"elb-111111.{current.name}.elb.amazonaws.com\",\n ),\n aws.route53.GetTrafficPolicyDocumentEndpointArgs(\n id=\"site_down_banner\",\n type=\"s3-website\",\n region=current.name,\n value=\"www.example.com\",\n ),\n ],\n rules=[aws.route53.GetTrafficPolicyDocumentRuleArgs(\n id=\"site_switch\",\n type=\"failover\",\n primary=aws.route53.GetTrafficPolicyDocumentRulePrimaryArgs(\n endpoint_reference=\"my_elb\",\n ),\n secondary=aws.route53.GetTrafficPolicyDocumentRuleSecondaryArgs(\n endpoint_reference=\"site_down_banner\",\n ),\n )])\nexample_traffic_policy = aws.route53.TrafficPolicy(\"exampleTrafficPolicy\",\n comment=\"example comment\",\n document=example_traffic_policy_document.json)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetRegion.Invoke();\n\n var exampleTrafficPolicyDocument = Aws.Route53.GetTrafficPolicyDocument.Invoke(new()\n {\n RecordType = \"A\",\n StartRule = \"site_switch\",\n Endpoints = new[]\n {\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentEndpointInputArgs\n {\n Id = \"my_elb\",\n Type = \"elastic-load-balancer\",\n Value = $\"elb-111111.{current.Apply(getRegionResult =\u003e getRegionResult.Name)}.elb.amazonaws.com\",\n },\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentEndpointInputArgs\n {\n Id = \"site_down_banner\",\n Type = \"s3-website\",\n Region = current.Apply(getRegionResult =\u003e getRegionResult.Name),\n Value = \"www.example.com\",\n },\n },\n Rules = new[]\n {\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentRuleInputArgs\n {\n Id = \"site_switch\",\n Type = \"failover\",\n Primary = new Aws.Route53.Inputs.GetTrafficPolicyDocumentRulePrimaryInputArgs\n {\n EndpointReference = \"my_elb\",\n },\n Secondary = new Aws.Route53.Inputs.GetTrafficPolicyDocumentRuleSecondaryInputArgs\n {\n EndpointReference = \"site_down_banner\",\n },\n },\n },\n });\n\n var exampleTrafficPolicy = new Aws.Route53.TrafficPolicy(\"exampleTrafficPolicy\", new()\n {\n Comment = \"example comment\",\n Document = exampleTrafficPolicyDocument.Apply(getTrafficPolicyDocumentResult =\u003e getTrafficPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTrafficPolicyDocument, err := route53.GetTrafficPolicyDocument(ctx, \u0026route53.GetTrafficPolicyDocumentArgs{\n\t\t\tRecordType: pulumi.StringRef(\"A\"),\n\t\t\tStartRule: pulumi.StringRef(\"site_switch\"),\n\t\t\tEndpoints: []route53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\troute53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\t\tId: \"my_elb\",\n\t\t\t\t\tType: pulumi.StringRef(\"elastic-load-balancer\"),\n\t\t\t\t\tValue: pulumi.StringRef(fmt.Sprintf(\"elb-111111.%v.elb.amazonaws.com\", current.Name)),\n\t\t\t\t},\n\t\t\t\troute53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\t\tId: \"site_down_banner\",\n\t\t\t\t\tType: pulumi.StringRef(\"s3-website\"),\n\t\t\t\t\tRegion: pulumi.StringRef(current.Name),\n\t\t\t\t\tValue: pulumi.StringRef(\"www.example.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRules: []route53.GetTrafficPolicyDocumentRule{\n\t\t\t\troute53.GetTrafficPolicyDocumentRule{\n\t\t\t\t\tId: \"site_switch\",\n\t\t\t\t\tType: pulumi.StringRef(\"failover\"),\n\t\t\t\t\tPrimary: route53.GetTrafficPolicyDocumentRulePrimary{\n\t\t\t\t\t\tEndpointReference: pulumi.StringRef(\"my_elb\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecondary: route53.GetTrafficPolicyDocumentRuleSecondary{\n\t\t\t\t\t\tEndpointReference: pulumi.StringRef(\"site_down_banner\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = route53.NewTrafficPolicy(ctx, \"exampleTrafficPolicy\", \u0026route53.TrafficPolicyArgs{\n\t\t\tComment: pulumi.String(\"example comment\"),\n\t\t\tDocument: pulumi.String(exampleTrafficPolicyDocument.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.route53.Route53Functions;\nimport com.pulumi.aws.route53.inputs.GetTrafficPolicyDocumentArgs;\nimport com.pulumi.aws.route53.TrafficPolicy;\nimport com.pulumi.aws.route53.TrafficPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var exampleTrafficPolicyDocument = Route53Functions.getTrafficPolicyDocument(GetTrafficPolicyDocumentArgs.builder()\n .recordType(\"A\")\n .startRule(\"site_switch\")\n .endpoints( \n GetTrafficPolicyDocumentEndpointArgs.builder()\n .id(\"my_elb\")\n .type(\"elastic-load-balancer\")\n .value(String.format(\"elb-111111.%s.elb.amazonaws.com\", current.applyValue(getRegionResult -\u003e getRegionResult.name())))\n .build(),\n GetTrafficPolicyDocumentEndpointArgs.builder()\n .id(\"site_down_banner\")\n .type(\"s3-website\")\n .region(current.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .value(\"www.example.com\")\n .build())\n .rules(GetTrafficPolicyDocumentRuleArgs.builder()\n .id(\"site_switch\")\n .type(\"failover\")\n .primary(GetTrafficPolicyDocumentRulePrimaryArgs.builder()\n .endpointReference(\"my_elb\")\n .build())\n .secondary(GetTrafficPolicyDocumentRuleSecondaryArgs.builder()\n .endpointReference(\"site_down_banner\")\n .build())\n .build())\n .build());\n\n var exampleTrafficPolicy = new TrafficPolicy(\"exampleTrafficPolicy\", TrafficPolicyArgs.builder() \n .comment(\"example comment\")\n .document(exampleTrafficPolicyDocument.applyValue(getTrafficPolicyDocumentResult -\u003e getTrafficPolicyDocumentResult.json()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleTrafficPolicy:\n type: aws:route53:TrafficPolicy\n properties:\n comment: example comment\n document: ${exampleTrafficPolicyDocument.json}\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getRegion\n Arguments: {}\n exampleTrafficPolicyDocument:\n Fn::Invoke:\n Function: aws:route53:getTrafficPolicyDocument\n Arguments:\n recordType: A\n startRule: site_switch\n endpoints:\n - id: my_elb\n type: elastic-load-balancer\n value: elb-111111.${current.name}.elb.amazonaws.com\n - id: site_down_banner\n type: s3-website\n region: ${current.name}\n value: www.example.com\n rules:\n - id: site_switch\n type: failover\n primary:\n endpointReference: my_elb\n secondary:\n endpointReference: site_down_banner\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "Generates an Route53 traffic policy document in JSON format for use with resources that expect policy documents such as [`aws.route53.TrafficPolicy`](https://www.terraform.io/docs/providers/aws/r/route53_traffic_policy.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst current = aws.getRegion({});\nconst exampleTrafficPolicyDocument = Promise.all([current, current]).then(([current, current1]) =\u003e aws.route53.getTrafficPolicyDocument({\n recordType: \"A\",\n startRule: \"site_switch\",\n endpoints: [\n {\n id: \"my_elb\",\n type: \"elastic-load-balancer\",\n value: `elb-111111.${current.name}.elb.amazonaws.com`,\n },\n {\n id: \"site_down_banner\",\n type: \"s3-website\",\n region: current1.name,\n value: \"www.example.com\",\n },\n ],\n rules: [{\n id: \"site_switch\",\n type: \"failover\",\n primary: {\n endpointReference: \"my_elb\",\n },\n secondary: {\n endpointReference: \"site_down_banner\",\n },\n }],\n}));\nconst exampleTrafficPolicy = new aws.route53.TrafficPolicy(\"exampleTrafficPolicy\", {\n comment: \"example comment\",\n document: exampleTrafficPolicyDocument.then(exampleTrafficPolicyDocument =\u003e exampleTrafficPolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ncurrent = aws.get_region()\nexample_traffic_policy_document = aws.route53.get_traffic_policy_document(record_type=\"A\",\n start_rule=\"site_switch\",\n endpoints=[\n aws.route53.GetTrafficPolicyDocumentEndpointArgs(\n id=\"my_elb\",\n type=\"elastic-load-balancer\",\n value=f\"elb-111111.{current.name}.elb.amazonaws.com\",\n ),\n aws.route53.GetTrafficPolicyDocumentEndpointArgs(\n id=\"site_down_banner\",\n type=\"s3-website\",\n region=current.name,\n value=\"www.example.com\",\n ),\n ],\n rules=[aws.route53.GetTrafficPolicyDocumentRuleArgs(\n id=\"site_switch\",\n type=\"failover\",\n primary=aws.route53.GetTrafficPolicyDocumentRulePrimaryArgs(\n endpoint_reference=\"my_elb\",\n ),\n secondary=aws.route53.GetTrafficPolicyDocumentRuleSecondaryArgs(\n endpoint_reference=\"site_down_banner\",\n ),\n )])\nexample_traffic_policy = aws.route53.TrafficPolicy(\"exampleTrafficPolicy\",\n comment=\"example comment\",\n document=example_traffic_policy_document.json)\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var current = Aws.GetRegion.Invoke();\n\n var exampleTrafficPolicyDocument = Aws.Route53.GetTrafficPolicyDocument.Invoke(new()\n {\n RecordType = \"A\",\n StartRule = \"site_switch\",\n Endpoints = new[]\n {\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentEndpointInputArgs\n {\n Id = \"my_elb\",\n Type = \"elastic-load-balancer\",\n Value = $\"elb-111111.{current.Apply(getRegionResult =\u003e getRegionResult.Name)}.elb.amazonaws.com\",\n },\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentEndpointInputArgs\n {\n Id = \"site_down_banner\",\n Type = \"s3-website\",\n Region = current.Apply(getRegionResult =\u003e getRegionResult.Name),\n Value = \"www.example.com\",\n },\n },\n Rules = new[]\n {\n new Aws.Route53.Inputs.GetTrafficPolicyDocumentRuleInputArgs\n {\n Id = \"site_switch\",\n Type = \"failover\",\n Primary = new Aws.Route53.Inputs.GetTrafficPolicyDocumentRulePrimaryInputArgs\n {\n EndpointReference = \"my_elb\",\n },\n Secondary = new Aws.Route53.Inputs.GetTrafficPolicyDocumentRuleSecondaryInputArgs\n {\n EndpointReference = \"site_down_banner\",\n },\n },\n },\n });\n\n var exampleTrafficPolicy = new Aws.Route53.TrafficPolicy(\"exampleTrafficPolicy\", new()\n {\n Comment = \"example comment\",\n Document = exampleTrafficPolicyDocument.Apply(getTrafficPolicyDocumentResult =\u003e getTrafficPolicyDocumentResult.Json),\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcurrent, err := aws.GetRegion(ctx, nil, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTrafficPolicyDocument, err := route53.GetTrafficPolicyDocument(ctx, \u0026route53.GetTrafficPolicyDocumentArgs{\n\t\t\tRecordType: pulumi.StringRef(\"A\"),\n\t\t\tStartRule: pulumi.StringRef(\"site_switch\"),\n\t\t\tEndpoints: []route53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\troute53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\t\tId: \"my_elb\",\n\t\t\t\t\tType: pulumi.StringRef(\"elastic-load-balancer\"),\n\t\t\t\t\tValue: pulumi.StringRef(fmt.Sprintf(\"elb-111111.%v.elb.amazonaws.com\", current.Name)),\n\t\t\t\t},\n\t\t\t\troute53.GetTrafficPolicyDocumentEndpoint{\n\t\t\t\t\tId: \"site_down_banner\",\n\t\t\t\t\tType: pulumi.StringRef(\"s3-website\"),\n\t\t\t\t\tRegion: pulumi.StringRef(current.Name),\n\t\t\t\t\tValue: pulumi.StringRef(\"www.example.com\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRules: []route53.GetTrafficPolicyDocumentRule{\n\t\t\t\troute53.GetTrafficPolicyDocumentRule{\n\t\t\t\t\tId: \"site_switch\",\n\t\t\t\t\tType: pulumi.StringRef(\"failover\"),\n\t\t\t\t\tPrimary: route53.GetTrafficPolicyDocumentRulePrimary{\n\t\t\t\t\t\tEndpointReference: pulumi.StringRef(\"my_elb\"),\n\t\t\t\t\t},\n\t\t\t\t\tSecondary: route53.GetTrafficPolicyDocumentRuleSecondary{\n\t\t\t\t\t\tEndpointReference: pulumi.StringRef(\"site_down_banner\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = route53.NewTrafficPolicy(ctx, \"exampleTrafficPolicy\", \u0026route53.TrafficPolicyArgs{\n\t\t\tComment: pulumi.String(\"example comment\"),\n\t\t\tDocument: pulumi.String(exampleTrafficPolicyDocument.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.AwsFunctions;\nimport com.pulumi.aws.inputs.GetRegionArgs;\nimport com.pulumi.aws.route53.Route53Functions;\nimport com.pulumi.aws.route53.inputs.GetTrafficPolicyDocumentArgs;\nimport com.pulumi.aws.route53.TrafficPolicy;\nimport com.pulumi.aws.route53.TrafficPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var current = AwsFunctions.getRegion();\n\n final var exampleTrafficPolicyDocument = Route53Functions.getTrafficPolicyDocument(GetTrafficPolicyDocumentArgs.builder()\n .recordType(\"A\")\n .startRule(\"site_switch\")\n .endpoints( \n GetTrafficPolicyDocumentEndpointArgs.builder()\n .id(\"my_elb\")\n .type(\"elastic-load-balancer\")\n .value(String.format(\"elb-111111.%s.elb.amazonaws.com\", current.applyValue(getRegionResult -\u003e getRegionResult.name())))\n .build(),\n GetTrafficPolicyDocumentEndpointArgs.builder()\n .id(\"site_down_banner\")\n .type(\"s3-website\")\n .region(current.applyValue(getRegionResult -\u003e getRegionResult.name()))\n .value(\"www.example.com\")\n .build())\n .rules(GetTrafficPolicyDocumentRuleArgs.builder()\n .id(\"site_switch\")\n .type(\"failover\")\n .primary(GetTrafficPolicyDocumentRulePrimaryArgs.builder()\n .endpointReference(\"my_elb\")\n .build())\n .secondary(GetTrafficPolicyDocumentRuleSecondaryArgs.builder()\n .endpointReference(\"site_down_banner\")\n .build())\n .build())\n .build());\n\n var exampleTrafficPolicy = new TrafficPolicy(\"exampleTrafficPolicy\", TrafficPolicyArgs.builder() \n .comment(\"example comment\")\n .document(exampleTrafficPolicyDocument.applyValue(getTrafficPolicyDocumentResult -\u003e getTrafficPolicyDocumentResult.json()))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleTrafficPolicy:\n type: aws:route53:TrafficPolicy\n properties:\n comment: example comment\n document: ${exampleTrafficPolicyDocument.json}\nvariables:\n current:\n Fn::Invoke:\n Function: aws:getRegion\n Arguments: {}\n exampleTrafficPolicyDocument:\n Fn::Invoke:\n Function: aws:route53:getTrafficPolicyDocument\n Arguments:\n recordType: A\n startRule: site_switch\n endpoints:\n - id: my_elb\n type: elastic-load-balancer\n value: elb-111111.${current.name}.elb.amazonaws.com\n - id: site_down_banner\n type: s3-website\n region: ${current.name}\n value: www.example.com\n rules:\n - id: site_switch\n type: failover\n primary:\n endpointReference: my_elb\n secondary:\n endpointReference: site_down_banner\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getTrafficPolicyDocument.\n",
"properties": {
@@ -567345,7 +571725,7 @@
}
},
"aws:route53/getZone:getZone": {
- "description": "`aws.route53.Zone` provides details about a specific Route 53 Hosted Zone.\n\nThis data source allows to find a Hosted Zone ID given Hosted Zone name and certain search criteria.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example shows how to get a Hosted Zone from its name and from this data how to create a Record Set.\n\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.route53.getZone({\n name: \"test.com.\",\n privateZone: true,\n});\nconst www = new aws.route53.Record(\"www\", {\n zoneId: selected.then(selected =\u003e selected.zoneId),\n name: selected.then(selected =\u003e `www.${selected.name}`),\n type: \"A\",\n ttl: 300,\n records: [\"10.0.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.route53.get_zone(name=\"test.com.\",\n private_zone=True)\nwww = aws.route53.Record(\"www\",\n zone_id=selected.zone_id,\n name=f\"www.{selected.name}\",\n type=\"A\",\n ttl=300,\n records=[\"10.0.0.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var selected = Aws.Route53.GetZone.Invoke(new()\n {\n Name = \"test.com.\",\n PrivateZone = true,\n });\n\n var www = new Aws.Route53.Record(\"www\", new()\n {\n ZoneId = selected.Apply(getZoneResult =\u003e getZoneResult.ZoneId),\n Name = $\"www.{selected.Apply(getZoneResult =\u003e getZoneResult.Name)}\",\n Type = \"A\",\n Ttl = 300,\n Records = new[]\n {\n \"10.0.0.1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tselected, err := route53.LookupZone(ctx, \u0026route53.LookupZoneArgs{\n\t\t\tName: pulumi.StringRef(\"test.com.\"),\n\t\t\tPrivateZone: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = route53.NewRecord(ctx, \"www\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.String(selected.ZoneId),\n\t\t\tName: pulumi.String(fmt.Sprintf(\"www.%v\", selected.Name)),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.route53.Route53Functions;\nimport com.pulumi.aws.route53.inputs.GetZoneArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var selected = Route53Functions.getZone(GetZoneArgs.builder()\n .name(\"test.com.\")\n .privateZone(true)\n .build());\n\n var www = new Record(\"www\", RecordArgs.builder() \n .zoneId(selected.applyValue(getZoneResult -\u003e getZoneResult.zoneId()))\n .name(String.format(\"www.%s\", selected.applyValue(getZoneResult -\u003e getZoneResult.name())))\n .type(\"A\")\n .ttl(\"300\")\n .records(\"10.0.0.1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n www:\n type: aws:route53:Record\n properties:\n zoneId: ${selected.zoneId}\n name: www.${selected.name}\n type: A\n ttl: 300\n records:\n - 10.0.0.1\nvariables:\n selected:\n Fn::Invoke:\n Function: aws:route53:getZone\n Arguments:\n name: test.com.\n privateZone: true\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "`aws.route53.Zone` provides details about a specific Route 53 Hosted Zone.\n\nThis data source allows to find a Hosted Zone ID given Hosted Zone name and certain search criteria.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nThe following example shows how to get a Hosted Zone from its name and from this data how to create a Record Set.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst selected = aws.route53.getZone({\n name: \"test.com.\",\n privateZone: true,\n});\nconst www = new aws.route53.Record(\"www\", {\n zoneId: selected.then(selected =\u003e selected.zoneId),\n name: selected.then(selected =\u003e `www.${selected.name}`),\n type: \"A\",\n ttl: 300,\n records: [\"10.0.0.1\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nselected = aws.route53.get_zone(name=\"test.com.\",\n private_zone=True)\nwww = aws.route53.Record(\"www\",\n zone_id=selected.zone_id,\n name=f\"www.{selected.name}\",\n type=\"A\",\n ttl=300,\n records=[\"10.0.0.1\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var selected = Aws.Route53.GetZone.Invoke(new()\n {\n Name = \"test.com.\",\n PrivateZone = true,\n });\n\n var www = new Aws.Route53.Record(\"www\", new()\n {\n ZoneId = selected.Apply(getZoneResult =\u003e getZoneResult.ZoneId),\n Name = $\"www.{selected.Apply(getZoneResult =\u003e getZoneResult.Name)}\",\n Type = \"A\",\n Ttl = 300,\n Records = new[]\n {\n \"10.0.0.1\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tselected, err := route53.LookupZone(ctx, \u0026route53.LookupZoneArgs{\n\t\t\tName: pulumi.StringRef(\"test.com.\"),\n\t\t\tPrivateZone: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = route53.NewRecord(ctx, \"www\", \u0026route53.RecordArgs{\n\t\t\tZoneId: pulumi.String(selected.ZoneId),\n\t\t\tName: pulumi.String(fmt.Sprintf(\"www.%v\", selected.Name)),\n\t\t\tType: pulumi.String(\"A\"),\n\t\t\tTtl: pulumi.Int(300),\n\t\t\tRecords: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.1\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.route53.Route53Functions;\nimport com.pulumi.aws.route53.inputs.GetZoneArgs;\nimport com.pulumi.aws.route53.Record;\nimport com.pulumi.aws.route53.RecordArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var selected = Route53Functions.getZone(GetZoneArgs.builder()\n .name(\"test.com.\")\n .privateZone(true)\n .build());\n\n var www = new Record(\"www\", RecordArgs.builder() \n .zoneId(selected.applyValue(getZoneResult -\u003e getZoneResult.zoneId()))\n .name(String.format(\"www.%s\", selected.applyValue(getZoneResult -\u003e getZoneResult.name())))\n .type(\"A\")\n .ttl(\"300\")\n .records(\"10.0.0.1\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n www:\n type: aws:route53:Record\n properties:\n zoneId: ${selected.zoneId}\n name: www.${selected.name}\n type: A\n ttl: 300\n records:\n - 10.0.0.1\nvariables:\n selected:\n Fn::Invoke:\n Function: aws:route53:getZone\n Arguments:\n name: test.com.\n privateZone: true\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getZone.\n",
"properties": {
@@ -570640,7 +575020,7 @@
}
},
"aws:waf/getSubscribedRuleGroup:getSubscribedRuleGroup": {
- "description": "`aws.waf.getSubscribedRuleGroup` retrieves information about a Managed WAF Rule Group from AWS Marketplace (needs to be subscribed to first).\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 byName = pulumi.output(aws.waf.getSubscribedRuleGroup({\n name: \"F5 Bot Detection Signatures For AWS WAF\",\n}));\nconst byMetricName = pulumi.output(aws.waf.getSubscribedRuleGroup({\n metricName: \"F5BotDetectionSignatures\",\n}));\nconst acl = new aws.waf.WebAcl(\"acl\", {\n rules: [\n {\n priority: 1,\n ruleId: byName.id,\n type: \"GROUP\",\n },\n {\n priority: 2,\n ruleId: byMetricName.id,\n type: \"GROUP\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nby_name = aws.waf.get_subscribed_rule_group(name=\"F5 Bot Detection Signatures For AWS WAF\")\nby_metric_name = aws.waf.get_subscribed_rule_group(metric_name=\"F5BotDetectionSignatures\")\nacl = aws.waf.WebAcl(\"acl\", rules=[\n aws.waf.WebAclRuleArgs(\n priority=1,\n rule_id=by_name.id,\n type=\"GROUP\",\n ),\n aws.waf.WebAclRuleArgs(\n priority=2,\n rule_id=by_metric_name.id,\n type=\"GROUP\",\n ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var byName = Aws.Waf.GetSubscribedRuleGroup.Invoke(new()\n {\n Name = \"F5 Bot Detection Signatures For AWS WAF\",\n });\n\n var byMetricName = Aws.Waf.GetSubscribedRuleGroup.Invoke(new()\n {\n MetricName = \"F5BotDetectionSignatures\",\n });\n\n var acl = new Aws.Waf.WebAcl(\"acl\", new()\n {\n Rules = new[]\n {\n new Aws.Waf.Inputs.WebAclRuleArgs\n {\n Priority = 1,\n RuleId = byName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n new Aws.Waf.Inputs.WebAclRuleArgs\n {\n Priority = 2,\n RuleId = byMetricName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := waf.GetSubscribedRuleGroup(ctx, \u0026waf.GetSubscribedRuleGroupArgs{\n\t\t\tName: pulumi.StringRef(\"F5 Bot Detection Signatures For AWS WAF\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyMetricName, err := waf.GetSubscribedRuleGroup(ctx, \u0026waf.GetSubscribedRuleGroupArgs{\n\t\t\tMetricName: pulumi.StringRef(\"F5BotDetectionSignatures\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.NewWebAcl(ctx, \"acl\", \u0026waf.WebAclArgs{\n\t\t\tRules: waf.WebAclRuleArray{\n\t\t\t\t\u0026waf.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tRuleId: pulumi.String(byName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t\t\u0026waf.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tRuleId: pulumi.String(byMetricName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.waf.WafFunctions;\nimport com.pulumi.aws.waf.inputs.GetSubscribedRuleGroupArgs;\nimport com.pulumi.aws.waf.WebAcl;\nimport com.pulumi.aws.waf.WebAclArgs;\nimport com.pulumi.aws.waf.inputs.WebAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var byName = WafFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .name(\"F5 Bot Detection Signatures For AWS WAF\")\n .build());\n\n final var byMetricName = WafFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .metricName(\"F5BotDetectionSignatures\")\n .build());\n\n var acl = new WebAcl(\"acl\", WebAclArgs.builder() \n .rules( \n WebAclRuleArgs.builder()\n .priority(1)\n .ruleId(byName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build(),\n WebAclRuleArgs.builder()\n .priority(2)\n .ruleId(byMetricName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: aws:waf:WebAcl\n properties:\n rules:\n - priority: 1\n ruleId: ${byName.id}\n type: GROUP\n - priority: 2\n ruleId: ${byMetricName.id}\n type: GROUP\nvariables:\n byName:\n Fn::Invoke:\n Function: aws:waf:getSubscribedRuleGroup\n Arguments:\n name: F5 Bot Detection Signatures For AWS WAF\n byMetricName:\n Fn::Invoke:\n Function: aws:waf:getSubscribedRuleGroup\n Arguments:\n metricName: F5BotDetectionSignatures\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "`aws.waf.getSubscribedRuleGroup` retrieves information about a Managed WAF Rule Group from AWS Marketplace (needs to be subscribed to first).\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 byName = aws.waf.getSubscribedRuleGroup({\n name: \"F5 Bot Detection Signatures For AWS WAF\",\n});\nconst byMetricName = aws.waf.getSubscribedRuleGroup({\n metricName: \"F5BotDetectionSignatures\",\n});\n// ...\nconst acl = new aws.waf.WebAcl(\"acl\", {rules: [\n {\n priority: 1,\n ruleId: byName.then(byName =\u003e byName.id),\n type: \"GROUP\",\n },\n {\n priority: 2,\n ruleId: byMetricName.then(byMetricName =\u003e byMetricName.id),\n type: \"GROUP\",\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nby_name = aws.waf.get_subscribed_rule_group(name=\"F5 Bot Detection Signatures For AWS WAF\")\nby_metric_name = aws.waf.get_subscribed_rule_group(metric_name=\"F5BotDetectionSignatures\")\n# ...\nacl = aws.waf.WebAcl(\"acl\", rules=[\n aws.waf.WebAclRuleArgs(\n priority=1,\n rule_id=by_name.id,\n type=\"GROUP\",\n ),\n aws.waf.WebAclRuleArgs(\n priority=2,\n rule_id=by_metric_name.id,\n type=\"GROUP\",\n ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var byName = Aws.Waf.GetSubscribedRuleGroup.Invoke(new()\n {\n Name = \"F5 Bot Detection Signatures For AWS WAF\",\n });\n\n var byMetricName = Aws.Waf.GetSubscribedRuleGroup.Invoke(new()\n {\n MetricName = \"F5BotDetectionSignatures\",\n });\n\n // ...\n var acl = new Aws.Waf.WebAcl(\"acl\", new()\n {\n Rules = new[]\n {\n new Aws.Waf.Inputs.WebAclRuleArgs\n {\n Priority = 1,\n RuleId = byName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n new Aws.Waf.Inputs.WebAclRuleArgs\n {\n Priority = 2,\n RuleId = byMetricName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/waf\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := waf.GetSubscribedRuleGroup(ctx, \u0026waf.GetSubscribedRuleGroupArgs{\n\t\t\tName: pulumi.StringRef(\"F5 Bot Detection Signatures For AWS WAF\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyMetricName, err := waf.GetSubscribedRuleGroup(ctx, \u0026waf.GetSubscribedRuleGroupArgs{\n\t\t\tMetricName: pulumi.StringRef(\"F5BotDetectionSignatures\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = waf.NewWebAcl(ctx, \"acl\", \u0026waf.WebAclArgs{\n\t\t\tRules: waf.WebAclRuleArray{\n\t\t\t\t\u0026waf.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tRuleId: pulumi.String(byName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t\t\u0026waf.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tRuleId: pulumi.String(byMetricName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.waf.WafFunctions;\nimport com.pulumi.aws.waf.inputs.GetSubscribedRuleGroupArgs;\nimport com.pulumi.aws.waf.WebAcl;\nimport com.pulumi.aws.waf.WebAclArgs;\nimport com.pulumi.aws.waf.inputs.WebAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var byName = WafFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .name(\"F5 Bot Detection Signatures For AWS WAF\")\n .build());\n\n final var byMetricName = WafFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .metricName(\"F5BotDetectionSignatures\")\n .build());\n\n var acl = new WebAcl(\"acl\", WebAclArgs.builder() \n .rules( \n WebAclRuleArgs.builder()\n .priority(1)\n .ruleId(byName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build(),\n WebAclRuleArgs.builder()\n .priority(2)\n .ruleId(byMetricName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: aws:waf:WebAcl\n properties:\n rules:\n - priority: 1\n ruleId: ${byName.id}\n type: GROUP\n - priority: 2\n ruleId: ${byMetricName.id}\n type: GROUP\nvariables:\n byName:\n Fn::Invoke:\n Function: aws:waf:getSubscribedRuleGroup\n Arguments:\n name: F5 Bot Detection Signatures For AWS WAF\n byMetricName:\n Fn::Invoke:\n Function: aws:waf:getSubscribedRuleGroup\n Arguments:\n metricName: F5BotDetectionSignatures\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getSubscribedRuleGroup.\n",
"properties": {
@@ -570808,7 +575188,7 @@
}
},
"aws:wafregional/getSubscribedRuleGroup:getSubscribedRuleGroup": {
- "description": "`aws.wafregional.getSubscribedRuleGroup` retrieves information about a Managed WAF Rule Group from AWS Marketplace for use in WAF Regional (needs to be subscribed to first).\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 byName = pulumi.output(aws.wafregional.getSubscribedRuleGroup({\n name: \"F5 Bot Detection Signatures For AWS WAF\",\n}));\nconst byMetricName = pulumi.output(aws.wafregional.getSubscribedRuleGroup({\n metricName: \"F5BotDetectionSignatures\",\n}));\nconst acl = new aws.wafregional.WebAcl(\"acl\", {\n rules: [\n {\n priority: 1,\n ruleId: byName.id,\n type: \"GROUP\",\n },\n {\n priority: 2,\n ruleId: byMetricName.id,\n type: \"GROUP\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nby_name = aws.wafregional.get_subscribed_rule_group(name=\"F5 Bot Detection Signatures For AWS WAF\")\nby_metric_name = aws.wafregional.get_subscribed_rule_group(metric_name=\"F5BotDetectionSignatures\")\nacl = aws.wafregional.WebAcl(\"acl\", rules=[\n aws.wafregional.WebAclRuleArgs(\n priority=1,\n rule_id=by_name.id,\n type=\"GROUP\",\n ),\n aws.wafregional.WebAclRuleArgs(\n priority=2,\n rule_id=by_metric_name.id,\n type=\"GROUP\",\n ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var byName = Aws.WafRegional.GetSubscribedRuleGroup.Invoke(new()\n {\n Name = \"F5 Bot Detection Signatures For AWS WAF\",\n });\n\n var byMetricName = Aws.WafRegional.GetSubscribedRuleGroup.Invoke(new()\n {\n MetricName = \"F5BotDetectionSignatures\",\n });\n\n var acl = new Aws.WafRegional.WebAcl(\"acl\", new()\n {\n Rules = new[]\n {\n new Aws.WafRegional.Inputs.WebAclRuleArgs\n {\n Priority = 1,\n RuleId = byName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n new Aws.WafRegional.Inputs.WebAclRuleArgs\n {\n Priority = 2,\n RuleId = byMetricName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafregional\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := wafregional.GetSubscribedRuleGroup(ctx, \u0026wafregional.GetSubscribedRuleGroupArgs{\n\t\t\tName: pulumi.StringRef(\"F5 Bot Detection Signatures For AWS WAF\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyMetricName, err := wafregional.GetSubscribedRuleGroup(ctx, \u0026wafregional.GetSubscribedRuleGroupArgs{\n\t\t\tMetricName: pulumi.StringRef(\"F5BotDetectionSignatures\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafregional.NewWebAcl(ctx, \"acl\", \u0026wafregional.WebAclArgs{\n\t\t\tRules: wafregional.WebAclRuleArray{\n\t\t\t\t\u0026wafregional.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tRuleId: pulumi.String(byName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t\t\u0026wafregional.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tRuleId: pulumi.String(byMetricName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafregional.WafregionalFunctions;\nimport com.pulumi.aws.waf.inputs.GetSubscribedRuleGroupArgs;\nimport com.pulumi.aws.wafregional.WebAcl;\nimport com.pulumi.aws.wafregional.WebAclArgs;\nimport com.pulumi.aws.wafregional.inputs.WebAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var byName = WafregionalFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .name(\"F5 Bot Detection Signatures For AWS WAF\")\n .build());\n\n final var byMetricName = WafregionalFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .metricName(\"F5BotDetectionSignatures\")\n .build());\n\n var acl = new WebAcl(\"acl\", WebAclArgs.builder() \n .rules( \n WebAclRuleArgs.builder()\n .priority(1)\n .ruleId(byName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build(),\n WebAclRuleArgs.builder()\n .priority(2)\n .ruleId(byMetricName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: aws:wafregional:WebAcl\n properties:\n rules:\n - priority: 1\n ruleId: ${byName.id}\n type: GROUP\n - priority: 2\n ruleId: ${byMetricName.id}\n type: GROUP\nvariables:\n byName:\n Fn::Invoke:\n Function: aws:wafregional:getSubscribedRuleGroup\n Arguments:\n name: F5 Bot Detection Signatures For AWS WAF\n byMetricName:\n Fn::Invoke:\n Function: aws:wafregional:getSubscribedRuleGroup\n Arguments:\n metricName: F5BotDetectionSignatures\n```\n{{% /example %}}\n{{% /examples %}}",
+ "description": "`aws.wafregional.getSubscribedRuleGroup` retrieves information about a Managed WAF Rule Group from AWS Marketplace for use in WAF Regional (needs to be subscribed to first).\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 byName = aws.wafregional.getSubscribedRuleGroup({\n name: \"F5 Bot Detection Signatures For AWS WAF\",\n});\nconst byMetricName = aws.wafregional.getSubscribedRuleGroup({\n metricName: \"F5BotDetectionSignatures\",\n});\n// ...\nconst acl = new aws.wafregional.WebAcl(\"acl\", {rules: [\n {\n priority: 1,\n ruleId: byName.then(byName =\u003e byName.id),\n type: \"GROUP\",\n },\n {\n priority: 2,\n ruleId: byMetricName.then(byMetricName =\u003e byMetricName.id),\n type: \"GROUP\",\n },\n]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nby_name = aws.wafregional.get_subscribed_rule_group(name=\"F5 Bot Detection Signatures For AWS WAF\")\nby_metric_name = aws.wafregional.get_subscribed_rule_group(metric_name=\"F5BotDetectionSignatures\")\n# ...\nacl = aws.wafregional.WebAcl(\"acl\", rules=[\n aws.wafregional.WebAclRuleArgs(\n priority=1,\n rule_id=by_name.id,\n type=\"GROUP\",\n ),\n aws.wafregional.WebAclRuleArgs(\n priority=2,\n rule_id=by_metric_name.id,\n type=\"GROUP\",\n ),\n])\n```\n```csharp\nusing System.Collections.Generic;\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var byName = Aws.WafRegional.GetSubscribedRuleGroup.Invoke(new()\n {\n Name = \"F5 Bot Detection Signatures For AWS WAF\",\n });\n\n var byMetricName = Aws.WafRegional.GetSubscribedRuleGroup.Invoke(new()\n {\n MetricName = \"F5BotDetectionSignatures\",\n });\n\n // ...\n var acl = new Aws.WafRegional.WebAcl(\"acl\", new()\n {\n Rules = new[]\n {\n new Aws.WafRegional.Inputs.WebAclRuleArgs\n {\n Priority = 1,\n RuleId = byName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n new Aws.WafRegional.Inputs.WebAclRuleArgs\n {\n Priority = 2,\n RuleId = byMetricName.Apply(getSubscribedRuleGroupResult =\u003e getSubscribedRuleGroupResult.Id),\n Type = \"GROUP\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/wafregional\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tbyName, err := wafregional.GetSubscribedRuleGroup(ctx, \u0026wafregional.GetSubscribedRuleGroupArgs{\n\t\t\tName: pulumi.StringRef(\"F5 Bot Detection Signatures For AWS WAF\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbyMetricName, err := wafregional.GetSubscribedRuleGroup(ctx, \u0026wafregional.GetSubscribedRuleGroupArgs{\n\t\t\tMetricName: pulumi.StringRef(\"F5BotDetectionSignatures\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = wafregional.NewWebAcl(ctx, \"acl\", \u0026wafregional.WebAclArgs{\n\t\t\tRules: wafregional.WebAclRuleArray{\n\t\t\t\t\u0026wafregional.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\t\tRuleId: pulumi.String(byName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t\t\u0026wafregional.WebAclRuleArgs{\n\t\t\t\t\tPriority: pulumi.Int(2),\n\t\t\t\t\tRuleId: pulumi.String(byMetricName.Id),\n\t\t\t\t\tType: pulumi.String(\"GROUP\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.aws.wafregional.WafregionalFunctions;\nimport com.pulumi.aws.waf.inputs.GetSubscribedRuleGroupArgs;\nimport com.pulumi.aws.wafregional.WebAcl;\nimport com.pulumi.aws.wafregional.WebAclArgs;\nimport com.pulumi.aws.wafregional.inputs.WebAclRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var byName = WafregionalFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .name(\"F5 Bot Detection Signatures For AWS WAF\")\n .build());\n\n final var byMetricName = WafregionalFunctions.getSubscribedRuleGroup(GetSubscribedRuleGroupArgs.builder()\n .metricName(\"F5BotDetectionSignatures\")\n .build());\n\n var acl = new WebAcl(\"acl\", WebAclArgs.builder() \n .rules( \n WebAclRuleArgs.builder()\n .priority(1)\n .ruleId(byName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build(),\n WebAclRuleArgs.builder()\n .priority(2)\n .ruleId(byMetricName.applyValue(getSubscribedRuleGroupResult -\u003e getSubscribedRuleGroupResult.id()))\n .type(\"GROUP\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n acl:\n type: aws:wafregional:WebAcl\n properties:\n rules:\n - priority: 1\n ruleId: ${byName.id}\n type: GROUP\n - priority: 2\n ruleId: ${byMetricName.id}\n type: GROUP\nvariables:\n byName:\n Fn::Invoke:\n Function: aws:wafregional:getSubscribedRuleGroup\n Arguments:\n name: F5 Bot Detection Signatures For AWS WAF\n byMetricName:\n Fn::Invoke:\n Function: aws:wafregional:getSubscribedRuleGroup\n Arguments:\n metricName: F5BotDetectionSignatures\n```\n{{% /example %}}\n{{% /examples %}}",
"inputs": {
"description": "A collection of arguments for invoking getSubscribedRuleGroup.\n",
"properties": {
diff --git a/provider/go.mod b/provider/go.mod
index cd01c978ba5..c25ca3ef7a5 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -14,7 +14,7 @@ require (
replace (
github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9
- github.com/hashicorp/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764
+ github.com/hashicorp/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a
github.com/hashicorp/terraform-provider-aws/shim => ./shim
github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0
)
@@ -51,7 +51,7 @@ require (
github.com/apparentlymart/go-cidr v1.1.0 // indirect
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
github.com/armon/go-radix v1.0.0 // indirect
- github.com/aws/aws-sdk-go v1.44.110 // indirect
+ github.com/aws/aws-sdk-go v1.44.114 // indirect
github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect
github.com/aws/aws-sdk-go-v2/config v1.15.4 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.12.0 // indirect
@@ -64,11 +64,13 @@ require (
github.com/aws/aws-sdk-go-v2/service/identitystore v1.15.5 // indirect
github.com/aws/aws-sdk-go-v2/service/inspector2 v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 // indirect
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0 // indirect
github.com/aws/aws-sdk-go-v2/service/kms v1.5.0 // indirect
github.com/aws/aws-sdk-go-v2/service/medialive v1.23.1 // indirect
github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10 // indirect
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17 // indirect
+ github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0 // indirect
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.11.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.16.4 // indirect
diff --git a/provider/go.sum b/provider/go.sum
index a38354912a0..75412b6dfca 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -191,8 +191,8 @@ github.com/aws/aws-sdk-go v1.30.27/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZve
github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
github.com/aws/aws-sdk-go v1.40.34/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q=
-github.com/aws/aws-sdk-go v1.44.110 h1:unno3l2FYQo6p0wYCp9gUk8YNzhOxqSktM0Y1vukl9k=
-github.com/aws/aws-sdk-go v1.44.110/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/aws/aws-sdk-go v1.44.114 h1:plIkWc/RsHr3DXBj4MEw9sEW4CcL/e2ryokc+CKyq1I=
+github.com/aws/aws-sdk-go v1.44.114/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
github.com/aws/aws-sdk-go-v2 v1.9.0/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4=
github.com/aws/aws-sdk-go-v2 v1.16.3/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU=
github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk=
@@ -229,6 +229,8 @@ github.com/aws/aws-sdk-go-v2/service/inspector2 v1.8.1/go.mod h1:ijgzkrNZIbIzkWF
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.0/go.mod h1:R1KK+vY8AfalhG1AOu5e35pOD2SdoPKQCFLTvnxiohk=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4 h1:b16QW0XWl0jWjLABFc1A+uh145Oqv+xDcObNk0iQgUk=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4/go.mod h1:uKkN7qmSIsNJVyMtxNQoCEYMvFEXbOg9fwCJPdfp2u8=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI=
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0 h1:nOHdZFfH438FwUfAVQePSXlVD3Rux20n8KxJeGYlabY=
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0/go.mod h1:vpAlARGh4pK3T2oNoW6osfGCEMGy3JDKJJfcnlzv+aM=
github.com/aws/aws-sdk-go-v2/service/kms v1.5.0 h1:10e9mzaaYIIePEuxUzW5YJ8LKHNG/NX63evcvS3ux9U=
@@ -239,6 +241,8 @@ github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10 h1:FYBnb1z07t3qpAFddD
github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10/go.mod h1:61Oc8W4jS9kp9xNyrBkzir82bq5AV7moeXLkHR6nzLY=
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17 h1:Y/ay2+KWFoPBWP5p4VnWi7uCnZe+C6kdTlYUZC1w30U=
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17/go.mod h1:8kD6U3g33wPkjgM8boZrrVeXT6kmaWKf0nHquE2wWVU=
+github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0 h1:sUzmjWeHc74jxbxuqlCj21Np3pspePMPJGXgjanQujQ=
+github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0/go.mod h1:OGlbj8zUJ6BavucCjkjcvmBxFaYcuRW8easK//ktnx4=
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.6.0/go.mod h1:B+7C5UKdVq1ylkI/A6O8wcurFtaux0R1njePNPtKwoA=
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18 h1:Efm2CjXDoWK1NOu+w2+Ik0xne0BKDtq6T5ti/+9/NiQ=
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18/go.mod h1:y+PVz3TeQYhlvP7NbmYDXuwflXBbK1s5I2O7SVTiWyw=
@@ -855,8 +859,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-20220824175045-450992f2f5b9 h1:JMw+t5I+6E8Lna7JF+ghAoOLOl23UIbshJyRNP+K1HU=
github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20220824175045-450992f2f5b9/go.mod h1:mYPs/uchNcBq7AclQv9QUtSf9iNcfp1Ag21jqTlDf2M=
-github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764 h1:CaVzNSr8SV0Y7H8mKIbqoCAnNdAATf4Y1vavXPHp4W4=
-github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764/go.mod h1:o0laibPQ5cT/KFHqjeOph4Z5XozH2p1/dWDLlx8XMz0=
+github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a h1:2MSxdc57goNYCg12b4+iPefubP6T+p+2XosOQscw5N8=
+github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a/go.mod h1:U39fQ5hq0MzFc2nhkw1wvV6uOMaIYeJSe/RjUZM2IkI=
github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
diff --git a/provider/resources.go b/provider/resources.go
index a91fa6b5ce0..5edca1c414e 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -185,6 +185,7 @@ const (
securityhubMod = "SecurityHub" // SecurityHub
serverlessRepositoryMod = "ServerlessRepository" // ServerlessRepository
sesMod = "Ses" // Simple Email Service (SES)
+ sesV2Mod = "SesV2" // Simple Email Service V2 (SES)
signerMod = "Signer" // Signer
s3Mod = "S3" // Simple Storage (S3)
s3ControlMod = "S3Control" // S3 Control
@@ -1056,8 +1057,9 @@ func Provider() tfbridge.ProviderInfo {
Tok: awsResource(codecommitMod, "ApprovalRuleTemplateAssociation"),
},
// CodePipeline
- "aws_codepipeline": {Tok: awsResource(codepipelineMod, "Pipeline")},
- "aws_codepipeline_webhook": {Tok: awsResource(codepipelineMod, "Webhook")},
+ "aws_codepipeline": {Tok: awsResource(codepipelineMod, "Pipeline")},
+ "aws_codepipeline_custom_action_type": {Tok: awsResource(codepipelineMod, "CustomActionType")},
+ "aws_codepipeline_webhook": {Tok: awsResource(codepipelineMod, "Webhook")},
// Cognito
"aws_cognito_identity_pool": {Tok: awsResource(cognitoMod, "IdentityPool")},
@@ -1075,7 +1077,8 @@ func Provider() tfbridge.ProviderInfo {
"aws_cognito_risk_configuration": {Tok: awsResource(cognitoMod, "RiskConfiguration")},
// Comprehend
- "aws_comprehend_entity_recognizer": {Tok: awsResource(comprehendMod, "EntityRecognizer")},
+ "aws_comprehend_document_classifier": {Tok: awsResource(comprehendMod, "DocumentClassifier")},
+ "aws_comprehend_entity_recognizer": {Tok: awsResource(comprehendMod, "EntityRecognizer")},
// Connect
"aws_connect_contact_flow": {Tok: awsResource(connectMod, "ContactFlow")},
@@ -2078,6 +2081,7 @@ func Provider() tfbridge.ProviderInfo {
"aws_inspector_resource_group": {Tok: awsResource(inspectorMod, "ResourceGroup")},
// Inspector V2
+ "aws_inspector2_delegated_admin_account": {Tok: awsResource(inspector2Mod, "DelegatedAdminAccount")},
"aws_inspector2_organization_configuration": {Tok: awsResource(inspector2Mod, "OrganizationConfiguration")},
// IOT
@@ -2481,6 +2485,7 @@ func Provider() tfbridge.ProviderInfo {
"aws_rds_global_cluster": {Tok: awsResource(rdsMod, "GlobalCluster")},
"aws_rds_cluster_role_association": {Tok: awsResource(rdsMod, "ClusterRoleAssociation")},
"aws_rds_cluster_activity_stream": {Tok: awsResource(rdsMod, "ClusterActivityStream")},
+ "aws_rds_reserved_instance": {Tok: awsResource(rdsMod, "ReservedInstance")},
"aws_db_cluster_snapshot": {Tok: awsResource(rdsMod, "ClusterSnapshot")},
"aws_db_event_subscription": {Tok: awsResource(rdsMod, "EventSubscription")},
"aws_db_instance": {
@@ -2760,6 +2765,8 @@ func Provider() tfbridge.ProviderInfo {
"aws_ses_event_destination": {Tok: awsResource(sesMod, "EventDestination")},
"aws_ses_template": {Tok: awsResource(sesMod, "Template")},
+ "aws_sesv2_configuration_set": {Tok: awsResource(sesV2Mod, "ConfigurationSet")},
+
// Shield
"aws_shield_protection": {Tok: awsResource(shieldMod, "Protection")},
"aws_shield_protection_group": {Tok: awsResource(shieldMod, "ProtectionGroup")},
@@ -3047,6 +3054,14 @@ func Provider() tfbridge.ProviderInfo {
"aws_s3control_multi_region_access_point_policy": {Tok: awsResource(s3ControlMod, "MultiRegionAccessPointPolicy")},
"aws_s3control_object_lambda_access_point": {Tok: awsResource(s3ControlMod, "ObjectLambdaAccessPoint")},
"aws_s3control_object_lambda_access_point_policy": {Tok: awsResource(s3ControlMod, "ObjectLambdaAccessPointPolicy")},
+ "aws_s3control_storage_lens_configuration": {
+ Tok: awsResource(s3ControlMod, "StorageLensConfiguration"),
+ Fields: map[string]*tfbridge.SchemaInfo{
+ "storage_lens_configuration": {
+ CSharpName: "StorageLensConfigurationDetail",
+ },
+ },
+ },
// S3 Outposts
"aws_s3outposts_endpoint": {Tok: awsResource(s3OutpostsMod, "Endpoint")},
// Systems Manager (SSM)
@@ -3200,6 +3215,7 @@ func Provider() tfbridge.ProviderInfo {
"aws_transfer_user": {Tok: awsResource(transferMod, "User")},
"aws_transfer_access": {Tok: awsResource(transferMod, "Access")},
"aws_transfer_workflow": {Tok: awsResource(transferMod, "Workflow")},
+ "aws_transfer_tag": {Tok: awsResource(transferMod, "Tag")},
// TimestreamWrite
"aws_timestreamwrite_database": {Tok: awsResource(timestreamWriteMod, "Database")},
"aws_timestreamwrite_table": {Tok: awsResource(timestreamWriteMod, "Table")},
@@ -4814,6 +4830,7 @@ func Provider() tfbridge.ProviderInfo {
"aws_ec2_transit_gateway_route_tables": {Tok: awsDataSource(ec2Mod, "getTransitGatewayRouteTables")},
"aws_ec2_instance_types": {Tok: awsDataSource(ec2Mod, "getInstanceTypes")},
"aws_vpc_ipam_pool": {Tok: awsDataSource(ec2Mod, "getVpcIamPool")},
+ "aws_vpc_ipam_pools": {Tok: awsDataSource(ec2Mod, "getVpcIamPools")},
"aws_vpc_ipam_pool_cidrs": {Tok: awsDataSource(ec2Mod, "getVpcIamPoolCidrs")},
"aws_vpc_ipam_preview_next_cidr": {Tok: awsDataSource(ec2Mod, "getIpamPreviewNextCidr")},
"aws_eips": {Tok: awsDataSource(ec2Mod, "getEips")},
@@ -5038,16 +5055,17 @@ func Provider() tfbridge.ProviderInfo {
// Pricing
"aws_pricing_product": {Tok: awsDataSource(pricingMod, "getProduct")},
// RDS
- "aws_rds_cluster": {Tok: awsDataSource(rdsMod, "getCluster")},
- "aws_db_cluster_snapshot": {Tok: awsDataSource(rdsMod, "getClusterSnapshot")},
- "aws_db_event_categories": {Tok: awsDataSource(rdsMod, "getEventCategories")},
- "aws_db_instance": {Tok: awsDataSource(rdsMod, "getInstance")},
- "aws_db_snapshot": {Tok: awsDataSource(rdsMod, "getSnapshot")},
- "aws_db_subnet_group": {Tok: awsDataSource(rdsMod, "getSubnetGroup")},
- "aws_rds_orderable_db_instance": {Tok: awsDataSource(rdsMod, "getOrderableDbInstance")},
- "aws_rds_engine_version": {Tok: awsDataSource(rdsMod, "getEngineVersion")},
- "aws_rds_certificate": {Tok: awsDataSource(rdsMod, "getCertificate")},
- "aws_db_proxy": {Tok: awsDataSource(rdsMod, "getProxy")},
+ "aws_rds_cluster": {Tok: awsDataSource(rdsMod, "getCluster")},
+ "aws_db_cluster_snapshot": {Tok: awsDataSource(rdsMod, "getClusterSnapshot")},
+ "aws_db_event_categories": {Tok: awsDataSource(rdsMod, "getEventCategories")},
+ "aws_db_instance": {Tok: awsDataSource(rdsMod, "getInstance")},
+ "aws_db_snapshot": {Tok: awsDataSource(rdsMod, "getSnapshot")},
+ "aws_db_subnet_group": {Tok: awsDataSource(rdsMod, "getSubnetGroup")},
+ "aws_rds_orderable_db_instance": {Tok: awsDataSource(rdsMod, "getOrderableDbInstance")},
+ "aws_rds_engine_version": {Tok: awsDataSource(rdsMod, "getEngineVersion")},
+ "aws_rds_certificate": {Tok: awsDataSource(rdsMod, "getCertificate")},
+ "aws_rds_reserved_instance_offering": {Tok: awsDataSource(rdsMod, "getReservedInstanceOffering")},
+ "aws_db_proxy": {Tok: awsDataSource(rdsMod, "getProxy")},
// Ram
"aws_ram_resource_share": {Tok: awsDataSource(ramMod, "getResourceShare")},
// RedShift
diff --git a/provider/shim/go.mod b/provider/shim/go.mod
index b92039f203f..5cc85dc6b88 100644
--- a/provider/shim/go.mod
+++ b/provider/shim/go.mod
@@ -7,13 +7,13 @@ require (
github.com/hashicorp/terraform-provider-aws v1.60.1-0.20220923175450-ca71523cdc36
)
-replace github.com/hashicorp/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764
+replace github.com/hashicorp/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a
require (
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 // indirect
github.com/agext/levenshtein v1.2.2 // indirect
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
- github.com/aws/aws-sdk-go v1.44.110 // indirect
+ github.com/aws/aws-sdk-go v1.44.114 // indirect
github.com/aws/aws-sdk-go-v2 v1.16.16 // indirect
github.com/aws/aws-sdk-go-v2/config v1.15.4 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.12.0 // indirect
@@ -27,10 +27,12 @@ require (
github.com/aws/aws-sdk-go-v2/service/identitystore v1.15.5 // indirect
github.com/aws/aws-sdk-go-v2/service/inspector2 v1.8.1 // indirect
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4 // indirect
+ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 // indirect
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0 // indirect
github.com/aws/aws-sdk-go-v2/service/medialive v1.23.1 // indirect
github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10 // indirect
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17 // indirect
+ github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0 // indirect
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18 // indirect
github.com/aws/aws-sdk-go-v2/service/sso v1.11.4 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.16.4 // indirect
diff --git a/provider/shim/go.sum b/provider/shim/go.sum
index ece3852d159..ea5f868e368 100644
--- a/provider/shim/go.sum
+++ b/provider/shim/go.sum
@@ -20,8 +20,8 @@ github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs=
github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
-github.com/aws/aws-sdk-go v1.44.110 h1:unno3l2FYQo6p0wYCp9gUk8YNzhOxqSktM0Y1vukl9k=
-github.com/aws/aws-sdk-go v1.44.110/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
+github.com/aws/aws-sdk-go v1.44.114 h1:plIkWc/RsHr3DXBj4MEw9sEW4CcL/e2ryokc+CKyq1I=
+github.com/aws/aws-sdk-go v1.44.114/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo=
github.com/aws/aws-sdk-go-v2 v1.16.3/go.mod h1:ytwTPBG6fXTZLxxeeCCWj2/EMYp/xDUgX+OET6TLNNU=
github.com/aws/aws-sdk-go-v2 v1.16.16 h1:M1fj4FE2lB4NzRb9Y0xdWsn2P0+2UHVxwKyOa4YJNjk=
github.com/aws/aws-sdk-go-v2 v1.16.16/go.mod h1:SwiyXi/1zTUZ6KIAmLK5V5ll8SiURNUYOqTerZPaF9k=
@@ -52,6 +52,8 @@ github.com/aws/aws-sdk-go-v2/service/inspector2 v1.8.1 h1:Q4OBuhQrSt1/T8hyy5nwux
github.com/aws/aws-sdk-go-v2/service/inspector2 v1.8.1/go.mod h1:ijgzkrNZIbIzkWFET1RpQ1G46eFYmdoEx8yh6OUuXso=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4 h1:b16QW0XWl0jWjLABFc1A+uh145Oqv+xDcObNk0iQgUk=
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.4/go.mod h1:uKkN7qmSIsNJVyMtxNQoCEYMvFEXbOg9fwCJPdfp2u8=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17 h1:HfVVR1vItaG6le+Bpw6P4midjBDMKnjMyZnw9MXYUcE=
+github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.17/go.mod h1:YqMdV+gEKCQ59NrB7rzrJdALeBIsYiVi8Inj3+KcqHI=
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0 h1:nOHdZFfH438FwUfAVQePSXlVD3Rux20n8KxJeGYlabY=
github.com/aws/aws-sdk-go-v2/service/kendra v1.35.0/go.mod h1:vpAlARGh4pK3T2oNoW6osfGCEMGy3JDKJJfcnlzv+aM=
github.com/aws/aws-sdk-go-v2/service/medialive v1.23.1 h1:CWizhnzbsBRLUB0p9t4FAL7B8ZTwsJD/4GSTHbrppUU=
@@ -60,6 +62,8 @@ github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10 h1:FYBnb1z07t3qpAFddD
github.com/aws/aws-sdk-go-v2/service/rolesanywhere v1.0.10/go.mod h1:61Oc8W4jS9kp9xNyrBkzir82bq5AV7moeXLkHR6nzLY=
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17 h1:Y/ay2+KWFoPBWP5p4VnWi7uCnZe+C6kdTlYUZC1w30U=
github.com/aws/aws-sdk-go-v2/service/route53domains v1.12.17/go.mod h1:8kD6U3g33wPkjgM8boZrrVeXT6kmaWKf0nHquE2wWVU=
+github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0 h1:sUzmjWeHc74jxbxuqlCj21Np3pspePMPJGXgjanQujQ=
+github.com/aws/aws-sdk-go-v2/service/s3control v1.24.0/go.mod h1:OGlbj8zUJ6BavucCjkjcvmBxFaYcuRW8easK//ktnx4=
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18 h1:Efm2CjXDoWK1NOu+w2+Ik0xne0BKDtq6T5ti/+9/NiQ=
github.com/aws/aws-sdk-go-v2/service/sesv2 v1.13.18/go.mod h1:y+PVz3TeQYhlvP7NbmYDXuwflXBbK1s5I2O7SVTiWyw=
github.com/aws/aws-sdk-go-v2/service/sso v1.11.4 h1:Uw5wBybFQ1UeA9ts0Y07gbv0ncZnIAyw858tDW0NP2o=
@@ -261,8 +265,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pquerna/otp v1.3.0 h1:oJV/SkzR33anKXwQU3Of42rL4wbrffP4uvUf1SvS5Xs=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764 h1:CaVzNSr8SV0Y7H8mKIbqoCAnNdAATf4Y1vavXPHp4W4=
-github.com/pulumi/terraform-provider-aws v1.38.1-0.20221012132008-10b16ea5e764/go.mod h1:o0laibPQ5cT/KFHqjeOph4Z5XozH2p1/dWDLlx8XMz0=
+github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a h1:2MSxdc57goNYCg12b4+iPefubP6T+p+2XosOQscw5N8=
+github.com/pulumi/terraform-provider-aws v1.38.1-0.20221018102234-4da7991d3c2a/go.mod h1:U39fQ5hq0MzFc2nhkw1wvV6uOMaIYeJSe/RjUZM2IkI=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4=
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
diff --git a/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationArgs.cs b/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationArgs.cs
new file mode 100644
index 00000000000..4d003dbd617
--- /dev/null
+++ b/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationArgs.cs
@@ -0,0 +1,26 @@
+// *** 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.Inputs
+{
+
+ public sealed class WorkspaceLoggingConfigurationArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist.
+ ///
+ [Input("logGroupArn", required: true)]
+ public Input LogGroupArn { get; set; } = null!;
+
+ public WorkspaceLoggingConfigurationArgs()
+ {
+ }
+ public static new WorkspaceLoggingConfigurationArgs Empty => new WorkspaceLoggingConfigurationArgs();
+ }
+}
diff --git a/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationGetArgs.cs b/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationGetArgs.cs
new file mode 100644
index 00000000000..a5afb7fa4af
--- /dev/null
+++ b/sdk/dotnet/Amp/Inputs/WorkspaceLoggingConfigurationGetArgs.cs
@@ -0,0 +1,26 @@
+// *** 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.Inputs
+{
+
+ public sealed class WorkspaceLoggingConfigurationGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist.
+ ///
+ [Input("logGroupArn", required: true)]
+ public Input LogGroupArn { get; set; } = null!;
+
+ public WorkspaceLoggingConfigurationGetArgs()
+ {
+ }
+ public static new WorkspaceLoggingConfigurationGetArgs Empty => new WorkspaceLoggingConfigurationGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Amp/Outputs/WorkspaceLoggingConfiguration.cs b/sdk/dotnet/Amp/Outputs/WorkspaceLoggingConfiguration.cs
new file mode 100644
index 00000000000..5303bcdc4c7
--- /dev/null
+++ b/sdk/dotnet/Amp/Outputs/WorkspaceLoggingConfiguration.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.Amp.Outputs
+{
+
+ [OutputType]
+ public sealed class WorkspaceLoggingConfiguration
+ {
+ ///
+ /// The ARN of the CloudWatch log group to which the vended log data will be published. This log group must exist.
+ ///
+ public readonly string LogGroupArn;
+
+ [OutputConstructor]
+ private WorkspaceLoggingConfiguration(string logGroupArn)
+ {
+ LogGroupArn = logGroupArn;
+ }
+ }
+}
diff --git a/sdk/dotnet/Amp/Workspace.cs b/sdk/dotnet/Amp/Workspace.cs
index 3bfe4fa6aa6..b7e89099ca4 100644
--- a/sdk/dotnet/Amp/Workspace.cs
+++ b/sdk/dotnet/Amp/Workspace.cs
@@ -12,8 +12,6 @@ namespace Pulumi.Aws.Amp
///
/// Manages an Amazon Managed Service for Prometheus (AMP) Workspace.
///
- /// > **NOTE:** This AWS functionality is in Preview and may change before General Availability release. Backwards compatibility is not guaranteed between provider releases.
- ///
/// ## Example Usage
///
/// ```csharp
@@ -23,13 +21,33 @@ namespace Pulumi.Aws.Amp
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var demo = new Aws.Amp.Workspace("demo", new()
+ /// var example = new Aws.Amp.Workspace("example", new()
/// {
- /// Alias = "prometheus-test",
+ /// Alias = "example",
/// Tags =
/// {
/// { "Environment", "production" },
- /// { "Owner", "abhi" },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ /// ### CloudWatch Logging
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var exampleLogGroup = new Aws.CloudWatch.LogGroup("exampleLogGroup");
+ ///
+ /// var exampleWorkspace = new Aws.Amp.Workspace("exampleWorkspace", new()
+ /// {
+ /// LoggingConfiguration = new Aws.Amp.Inputs.WorkspaceLoggingConfigurationArgs
+ /// {
+ /// LogGroupArn = exampleLogGroup.Arn.Apply(arn => $"{arn}:*"),
/// },
/// });
///
@@ -59,6 +77,12 @@ public partial class Workspace : global::Pulumi.CustomResource
[Output("arn")]
public Output Arn { get; private set; } = null!;
+ ///
+ /// Logging configuration for the workspace. See Logging Configuration below for details.
+ ///
+ [Output("loggingConfiguration")]
+ public Output LoggingConfiguration { get; private set; } = null!;
+
///
/// Prometheus endpoint available for this workspace.
///
@@ -129,6 +153,12 @@ public sealed class WorkspaceArgs : global::Pulumi.ResourceArgs
[Input("alias")]
public Input? Alias { get; set; }
+ ///
+ /// Logging configuration for the workspace. See Logging Configuration below for details.
+ ///
+ [Input("loggingConfiguration")]
+ public Input? LoggingConfiguration { get; set; }
+
[Input("tags")]
private InputMap? _tags;
@@ -161,6 +191,12 @@ public sealed class WorkspaceState : global::Pulumi.ResourceArgs
[Input("arn")]
public Input? Arn { get; set; }
+ ///
+ /// Logging configuration for the workspace. See Logging Configuration below for details.
+ ///
+ [Input("loggingConfiguration")]
+ public Input? LoggingConfiguration { get; set; }
+
///
/// Prometheus endpoint available for this workspace.
///
diff --git a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs
index b91a3c2b684..aa5e398030d 100644
--- a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs
+++ b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs
@@ -16,7 +16,7 @@ public sealed class IntegrationResponseParameterArgs : global::Pulumi.ResourceAr
private InputMap? _mappings;
///
- /// Key-value map. The key of ths map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
+ /// Key-value map. The key of this map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
/// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
///
public InputMap Mappings
diff --git a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs
index efab541fc4d..e3ed73a613c 100644
--- a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs
+++ b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs
@@ -16,7 +16,7 @@ public sealed class IntegrationResponseParameterGetArgs : global::Pulumi.Resourc
private InputMap? _mappings;
///
- /// Key-value map. The key of ths map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
+ /// Key-value map. The key of this map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
/// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
///
public InputMap Mappings
diff --git a/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs b/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs
index 33f49509029..c9be255f3ad 100644
--- a/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs
+++ b/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs
@@ -14,7 +14,7 @@ namespace Pulumi.Aws.ApiGatewayV2.Outputs
public sealed class IntegrationResponseParameter
{
///
- /// Key-value map. The key of ths map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
+ /// Key-value map. The key of this map identifies the location of the request parameter to change, and how to change it. The corresponding value specifies the new data for the parameter.
/// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
///
public readonly ImmutableDictionary Mappings;
diff --git a/sdk/dotnet/CloudFront/Distribution.cs b/sdk/dotnet/CloudFront/Distribution.cs
index 2498599daeb..8d8550c7b50 100644
--- a/sdk/dotnet/CloudFront/Distribution.cs
+++ b/sdk/dotnet/CloudFront/Distribution.cs
@@ -56,7 +56,7 @@ namespace Pulumi.Aws.CloudFront
/// new Aws.CloudFront.Inputs.DistributionOriginArgs
/// {
/// DomainName = bucketV2.BucketRegionalDomainName,
- /// OriginId = s3OriginId,
+ /// OriginId = locals.S3_origin_id,
/// S3OriginConfig = new Aws.CloudFront.Inputs.DistributionOriginS3OriginConfigArgs
/// {
/// OriginAccessIdentity = "origin-access-identity/cloudfront/ABCDEFG1234567",
diff --git a/sdk/dotnet/CloudWatch/GetEventConnection.cs b/sdk/dotnet/CloudWatch/GetEventConnection.cs
index f39bfe3cf36..70cdd273ed5 100644
--- a/sdk/dotnet/CloudWatch/GetEventConnection.cs
+++ b/sdk/dotnet/CloudWatch/GetEventConnection.cs
@@ -16,7 +16,6 @@ public static class GetEventConnection
///
/// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.
///
- ///
/// {{% examples %}}
/// ## Example Usage
/// {{% example %}}
@@ -46,7 +45,6 @@ public static Task InvokeAsync(GetEventConnectionArgs
///
/// > **Note:** EventBridge was formerly known as CloudWatch Events. The functionality is identical.
///
- ///
/// {{% examples %}}
/// ## Example Usage
/// {{% example %}}
diff --git a/sdk/dotnet/CodePipeline/CustomActionType.cs b/sdk/dotnet/CodePipeline/CustomActionType.cs
new file mode 100644
index 00000000000..42639536bc7
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/CustomActionType.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.CodePipeline
+{
+ ///
+ /// Provides a CodeDeploy CustomActionType
+ ///
+ /// ## Example Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var example = new Aws.CodePipeline.CustomActionType("example", new()
+ /// {
+ /// Category = "Build",
+ /// InputArtifactDetails = new Aws.CodePipeline.Inputs.CustomActionTypeInputArtifactDetailsArgs
+ /// {
+ /// MaximumCount = 1,
+ /// MinimumCount = 0,
+ /// },
+ /// OutputArtifactDetails = new Aws.CodePipeline.Inputs.CustomActionTypeOutputArtifactDetailsArgs
+ /// {
+ /// MaximumCount = 1,
+ /// MinimumCount = 0,
+ /// },
+ /// ProviderName = "example",
+ /// Version = "1",
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// CodeDeploy CustomActionType can be imported using the `id`, e.g.
+ ///
+ /// ```sh
+ /// $ pulumi import aws:codepipeline/customActionType:CustomActionType example Build:terraform:1
+ /// ```
+ ///
+ [AwsResourceType("aws:codepipeline/customActionType:CustomActionType")]
+ public partial class CustomActionType : global::Pulumi.CustomResource
+ {
+ ///
+ /// The action ARN.
+ ///
+ [Output("arn")]
+ public Output Arn { get; private set; } = null!;
+
+ ///
+ /// The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`
+ ///
+ [Output("category")]
+ public Output Category { get; private set; } = null!;
+
+ ///
+ /// The configuration properties for the custom action. Max 10 items.
+ ///
+ [Output("configurationProperties")]
+ public Output> ConfigurationProperties { get; private set; } = null!;
+
+ ///
+ /// The details of the input artifact for the action.
+ ///
+ [Output("inputArtifactDetails")]
+ public Output InputArtifactDetails { get; private set; } = null!;
+
+ ///
+ /// The details of the output artifact of the action.
+ ///
+ [Output("outputArtifactDetails")]
+ public Output OutputArtifactDetails { get; private set; } = null!;
+
+ ///
+ /// The creator of the action being called.
+ ///
+ [Output("owner")]
+ public Output Owner { get; private set; } = null!;
+
+ ///
+ /// The provider of the service used in the custom action
+ ///
+ [Output("providerName")]
+ public Output ProviderName { get; private set; } = null!;
+
+ ///
+ /// The settings for an action type.
+ ///
+ [Output("settings")]
+ public Output Settings { get; private set; } = null!;
+
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+ [Output("tagsAll")]
+ public Output> TagsAll { get; private set; } = null!;
+
+ ///
+ /// The version identifier of the custom action.
+ ///
+ [Output("version")]
+ public Output Version { get; private set; } = null!;
+
+
+ ///
+ /// Create a CustomActionType 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 CustomActionType(string name, CustomActionTypeArgs args, CustomResourceOptions? options = null)
+ : base("aws:codepipeline/customActionType:CustomActionType", name, args ?? new CustomActionTypeArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private CustomActionType(string name, Input id, CustomActionTypeState? state = null, CustomResourceOptions? options = null)
+ : base("aws:codepipeline/customActionType:CustomActionType", 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 CustomActionType 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 CustomActionType Get(string name, Input id, CustomActionTypeState? state = null, CustomResourceOptions? options = null)
+ {
+ return new CustomActionType(name, id, state, options);
+ }
+ }
+
+ public sealed class CustomActionTypeArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`
+ ///
+ [Input("category", required: true)]
+ public Input Category { get; set; } = null!;
+
+ [Input("configurationProperties")]
+ private InputList? _configurationProperties;
+
+ ///
+ /// The configuration properties for the custom action. Max 10 items.
+ ///
+ public InputList ConfigurationProperties
+ {
+ get => _configurationProperties ?? (_configurationProperties = new InputList());
+ set => _configurationProperties = value;
+ }
+
+ ///
+ /// The details of the input artifact for the action.
+ ///
+ [Input("inputArtifactDetails", required: true)]
+ public Input InputArtifactDetails { get; set; } = null!;
+
+ ///
+ /// The details of the output artifact of the action.
+ ///
+ [Input("outputArtifactDetails", required: true)]
+ public Input OutputArtifactDetails { get; set; } = null!;
+
+ ///
+ /// The provider of the service used in the custom action
+ ///
+ [Input("providerName", required: true)]
+ public Input ProviderName { get; set; } = null!;
+
+ ///
+ /// The settings for an action type.
+ ///
+ [Input("settings")]
+ public Input? Settings { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ [Input("tagsAll")]
+ private InputMap? _tagsAll;
+ public InputMap TagsAll
+ {
+ get => _tagsAll ?? (_tagsAll = new InputMap());
+ set => _tagsAll = value;
+ }
+
+ ///
+ /// The version identifier of the custom action.
+ ///
+ [Input("version", required: true)]
+ public Input Version { get; set; } = null!;
+
+ public CustomActionTypeArgs()
+ {
+ }
+ public static new CustomActionTypeArgs Empty => new CustomActionTypeArgs();
+ }
+
+ public sealed class CustomActionTypeState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The action ARN.
+ ///
+ [Input("arn")]
+ public Input? Arn { get; set; }
+
+ ///
+ /// The category of the custom action. Valid values: `Source`, `Build`, `Deploy`, `Test`, `Invoke`, `Approval`
+ ///
+ [Input("category")]
+ public Input? Category { get; set; }
+
+ [Input("configurationProperties")]
+ private InputList? _configurationProperties;
+
+ ///
+ /// The configuration properties for the custom action. Max 10 items.
+ ///
+ public InputList ConfigurationProperties
+ {
+ get => _configurationProperties ?? (_configurationProperties = new InputList());
+ set => _configurationProperties = value;
+ }
+
+ ///
+ /// The details of the input artifact for the action.
+ ///
+ [Input("inputArtifactDetails")]
+ public Input? InputArtifactDetails { get; set; }
+
+ ///
+ /// The details of the output artifact of the action.
+ ///
+ [Input("outputArtifactDetails")]
+ public Input? OutputArtifactDetails { get; set; }
+
+ ///
+ /// The creator of the action being called.
+ ///
+ [Input("owner")]
+ public Input? Owner { get; set; }
+
+ ///
+ /// The provider of the service used in the custom action
+ ///
+ [Input("providerName")]
+ public Input? ProviderName { get; set; }
+
+ ///
+ /// The settings for an action type.
+ ///
+ [Input("settings")]
+ public Input? Settings { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ [Input("tagsAll")]
+ private InputMap? _tagsAll;
+ public InputMap TagsAll
+ {
+ get => _tagsAll ?? (_tagsAll = new InputMap());
+ set => _tagsAll = value;
+ }
+
+ ///
+ /// The version identifier of the custom action.
+ ///
+ [Input("version")]
+ public Input? Version { get; set; }
+
+ public CustomActionTypeState()
+ {
+ }
+ public static new CustomActionTypeState Empty => new CustomActionTypeState();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyArgs.cs
new file mode 100644
index 00000000000..1b32e382d0a
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyArgs.cs
@@ -0,0 +1,62 @@
+// *** 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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeConfigurationPropertyArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The description of the action configuration property.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// Whether the configuration property is a key.
+ ///
+ [Input("key", required: true)]
+ public Input Key { get; set; } = null!;
+
+ ///
+ /// The name of the action configuration property.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// Indicates that the property will be used in conjunction with PollForJobs.
+ ///
+ [Input("queryable")]
+ public Input? Queryable { get; set; }
+
+ ///
+ /// Whether the configuration property is a required value.
+ ///
+ [Input("required", required: true)]
+ public Input Required { get; set; } = null!;
+
+ ///
+ /// Whether the configuration property is secret.
+ ///
+ [Input("secret", required: true)]
+ public Input Secret { get; set; } = null!;
+
+ ///
+ /// The type of the configuration property. Valid values: `String`, `Number`, `Boolean`
+ ///
+ [Input("type")]
+ public Input? Type { get; set; }
+
+ public CustomActionTypeConfigurationPropertyArgs()
+ {
+ }
+ public static new CustomActionTypeConfigurationPropertyArgs Empty => new CustomActionTypeConfigurationPropertyArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyGetArgs.cs
new file mode 100644
index 00000000000..4691d0bd0df
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeConfigurationPropertyGetArgs.cs
@@ -0,0 +1,62 @@
+// *** 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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeConfigurationPropertyGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The description of the action configuration property.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// Whether the configuration property is a key.
+ ///
+ [Input("key", required: true)]
+ public Input Key { get; set; } = null!;
+
+ ///
+ /// The name of the action configuration property.
+ ///
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ ///
+ /// Indicates that the property will be used in conjunction with PollForJobs.
+ ///
+ [Input("queryable")]
+ public Input? Queryable { get; set; }
+
+ ///
+ /// Whether the configuration property is a required value.
+ ///
+ [Input("required", required: true)]
+ public Input Required { get; set; } = null!;
+
+ ///
+ /// Whether the configuration property is secret.
+ ///
+ [Input("secret", required: true)]
+ public Input Secret { get; set; } = null!;
+
+ ///
+ /// The type of the configuration property. Valid values: `String`, `Number`, `Boolean`
+ ///
+ [Input("type")]
+ public Input? Type { get; set; }
+
+ public CustomActionTypeConfigurationPropertyGetArgs()
+ {
+ }
+ public static new CustomActionTypeConfigurationPropertyGetArgs Empty => new CustomActionTypeConfigurationPropertyGetArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsArgs.cs
new file mode 100644
index 00000000000..e273181c7bc
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsArgs.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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeInputArtifactDetailsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("maximumCount", required: true)]
+ public Input MaximumCount { get; set; } = null!;
+
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("minimumCount", required: true)]
+ public Input MinimumCount { get; set; } = null!;
+
+ public CustomActionTypeInputArtifactDetailsArgs()
+ {
+ }
+ public static new CustomActionTypeInputArtifactDetailsArgs Empty => new CustomActionTypeInputArtifactDetailsArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsGetArgs.cs
new file mode 100644
index 00000000000..4d82dffb959
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeInputArtifactDetailsGetArgs.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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeInputArtifactDetailsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("maximumCount", required: true)]
+ public Input MaximumCount { get; set; } = null!;
+
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("minimumCount", required: true)]
+ public Input MinimumCount { get; set; } = null!;
+
+ public CustomActionTypeInputArtifactDetailsGetArgs()
+ {
+ }
+ public static new CustomActionTypeInputArtifactDetailsGetArgs Empty => new CustomActionTypeInputArtifactDetailsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsArgs.cs
new file mode 100644
index 00000000000..601490df204
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsArgs.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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeOutputArtifactDetailsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("maximumCount", required: true)]
+ public Input MaximumCount { get; set; } = null!;
+
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("minimumCount", required: true)]
+ public Input MinimumCount { get; set; } = null!;
+
+ public CustomActionTypeOutputArtifactDetailsArgs()
+ {
+ }
+ public static new CustomActionTypeOutputArtifactDetailsArgs Empty => new CustomActionTypeOutputArtifactDetailsArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsGetArgs.cs
new file mode 100644
index 00000000000..c2b566f9b80
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeOutputArtifactDetailsGetArgs.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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeOutputArtifactDetailsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("maximumCount", required: true)]
+ public Input MaximumCount { get; set; } = null!;
+
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ [Input("minimumCount", required: true)]
+ public Input MinimumCount { get; set; } = null!;
+
+ public CustomActionTypeOutputArtifactDetailsGetArgs()
+ {
+ }
+ public static new CustomActionTypeOutputArtifactDetailsGetArgs Empty => new CustomActionTypeOutputArtifactDetailsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsArgs.cs
new file mode 100644
index 00000000000..4cb5ba222f4
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsArgs.cs
@@ -0,0 +1,44 @@
+// *** 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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeSettingsArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system.
+ ///
+ [Input("entityUrlTemplate")]
+ public Input? EntityUrlTemplate { get; set; }
+
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system.
+ ///
+ [Input("executionUrlTemplate")]
+ public Input? ExecutionUrlTemplate { get; set; }
+
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.
+ ///
+ [Input("revisionUrlTemplate")]
+ public Input? RevisionUrlTemplate { get; set; }
+
+ ///
+ /// The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.
+ ///
+ [Input("thirdPartyConfigurationUrl")]
+ public Input? ThirdPartyConfigurationUrl { get; set; }
+
+ public CustomActionTypeSettingsArgs()
+ {
+ }
+ public static new CustomActionTypeSettingsArgs Empty => new CustomActionTypeSettingsArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsGetArgs.cs
new file mode 100644
index 00000000000..b222a2566c8
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Inputs/CustomActionTypeSettingsGetArgs.cs
@@ -0,0 +1,44 @@
+// *** 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.CodePipeline.Inputs
+{
+
+ public sealed class CustomActionTypeSettingsGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system.
+ ///
+ [Input("entityUrlTemplate")]
+ public Input? EntityUrlTemplate { get; set; }
+
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system.
+ ///
+ [Input("executionUrlTemplate")]
+ public Input? ExecutionUrlTemplate { get; set; }
+
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.
+ ///
+ [Input("revisionUrlTemplate")]
+ public Input? RevisionUrlTemplate { get; set; }
+
+ ///
+ /// The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.
+ ///
+ [Input("thirdPartyConfigurationUrl")]
+ public Input? ThirdPartyConfigurationUrl { get; set; }
+
+ public CustomActionTypeSettingsGetArgs()
+ {
+ }
+ public static new CustomActionTypeSettingsGetArgs Empty => new CustomActionTypeSettingsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeConfigurationProperty.cs b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeConfigurationProperty.cs
new file mode 100644
index 00000000000..65e46b09f3c
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeConfigurationProperty.cs
@@ -0,0 +1,70 @@
+// *** 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.CodePipeline.Outputs
+{
+
+ [OutputType]
+ public sealed class CustomActionTypeConfigurationProperty
+ {
+ ///
+ /// The description of the action configuration property.
+ ///
+ public readonly string? Description;
+ ///
+ /// Whether the configuration property is a key.
+ ///
+ public readonly bool Key;
+ ///
+ /// The name of the action configuration property.
+ ///
+ public readonly string Name;
+ ///
+ /// Indicates that the property will be used in conjunction with PollForJobs.
+ ///
+ public readonly bool? Queryable;
+ ///
+ /// Whether the configuration property is a required value.
+ ///
+ public readonly bool Required;
+ ///
+ /// Whether the configuration property is secret.
+ ///
+ public readonly bool Secret;
+ ///
+ /// The type of the configuration property. Valid values: `String`, `Number`, `Boolean`
+ ///
+ public readonly string? Type;
+
+ [OutputConstructor]
+ private CustomActionTypeConfigurationProperty(
+ string? description,
+
+ bool key,
+
+ string name,
+
+ bool? queryable,
+
+ bool required,
+
+ bool secret,
+
+ string? type)
+ {
+ Description = description;
+ Key = key;
+ Name = name;
+ Queryable = queryable;
+ Required = required;
+ Secret = secret;
+ Type = type;
+ }
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeInputArtifactDetails.cs b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeInputArtifactDetails.cs
new file mode 100644
index 00000000000..78459b5acce
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeInputArtifactDetails.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.CodePipeline.Outputs
+{
+
+ [OutputType]
+ public sealed class CustomActionTypeInputArtifactDetails
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ public readonly int MaximumCount;
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ public readonly int MinimumCount;
+
+ [OutputConstructor]
+ private CustomActionTypeInputArtifactDetails(
+ int maximumCount,
+
+ int minimumCount)
+ {
+ MaximumCount = maximumCount;
+ MinimumCount = minimumCount;
+ }
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeOutputArtifactDetails.cs b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeOutputArtifactDetails.cs
new file mode 100644
index 00000000000..8d2d600979d
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeOutputArtifactDetails.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.CodePipeline.Outputs
+{
+
+ [OutputType]
+ public sealed class CustomActionTypeOutputArtifactDetails
+ {
+ ///
+ /// The maximum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ public readonly int MaximumCount;
+ ///
+ /// The minimum number of artifacts allowed for the action type. Min: 0, Max: 5
+ ///
+ public readonly int MinimumCount;
+
+ [OutputConstructor]
+ private CustomActionTypeOutputArtifactDetails(
+ int maximumCount,
+
+ int minimumCount)
+ {
+ MaximumCount = maximumCount;
+ MinimumCount = minimumCount;
+ }
+ }
+}
diff --git a/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeSettings.cs b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeSettings.cs
new file mode 100644
index 00000000000..5c9baa870e3
--- /dev/null
+++ b/sdk/dotnet/CodePipeline/Outputs/CustomActionTypeSettings.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.CodePipeline.Outputs
+{
+
+ [OutputType]
+ public sealed class CustomActionTypeSettings
+ {
+ ///
+ /// The URL returned to the AWS CodePipeline console that provides a deep link to the resources of the external system.
+ ///
+ public readonly string? EntityUrlTemplate;
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the top-level landing page for the external system.
+ ///
+ public readonly string? ExecutionUrlTemplate;
+ ///
+ /// The URL returned to the AWS CodePipeline console that contains a link to the page where customers can update or change the configuration of the external action.
+ ///
+ public readonly string? RevisionUrlTemplate;
+ ///
+ /// The URL of a sign-up page where users can sign up for an external service and perform initial configuration of the action provided by that service.
+ ///
+ public readonly string? ThirdPartyConfigurationUrl;
+
+ [OutputConstructor]
+ private CustomActionTypeSettings(
+ string? entityUrlTemplate,
+
+ string? executionUrlTemplate,
+
+ string? revisionUrlTemplate,
+
+ string? thirdPartyConfigurationUrl)
+ {
+ EntityUrlTemplate = entityUrlTemplate;
+ ExecutionUrlTemplate = executionUrlTemplate;
+ RevisionUrlTemplate = revisionUrlTemplate;
+ ThirdPartyConfigurationUrl = thirdPartyConfigurationUrl;
+ }
+ }
+}
diff --git a/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsArgs.cs b/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsArgs.cs
new file mode 100644
index 00000000000..7e92dae98b0
--- /dev/null
+++ b/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsArgs.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.Cognito.Inputs
+{
+
+ public sealed class UserPoolUserAttributeUpdateSettingsArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("attributesRequireVerificationBeforeUpdates", required: true)]
+ private InputList? _attributesRequireVerificationBeforeUpdates;
+
+ ///
+ /// A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`.
+ ///
+ public InputList AttributesRequireVerificationBeforeUpdates
+ {
+ get => _attributesRequireVerificationBeforeUpdates ?? (_attributesRequireVerificationBeforeUpdates = new InputList());
+ set => _attributesRequireVerificationBeforeUpdates = value;
+ }
+
+ public UserPoolUserAttributeUpdateSettingsArgs()
+ {
+ }
+ public static new UserPoolUserAttributeUpdateSettingsArgs Empty => new UserPoolUserAttributeUpdateSettingsArgs();
+ }
+}
diff --git a/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsGetArgs.cs b/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsGetArgs.cs
new file mode 100644
index 00000000000..3ee42762c27
--- /dev/null
+++ b/sdk/dotnet/Cognito/Inputs/UserPoolUserAttributeUpdateSettingsGetArgs.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.Cognito.Inputs
+{
+
+ public sealed class UserPoolUserAttributeUpdateSettingsGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("attributesRequireVerificationBeforeUpdates", required: true)]
+ private InputList? _attributesRequireVerificationBeforeUpdates;
+
+ ///
+ /// A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`.
+ ///
+ public InputList AttributesRequireVerificationBeforeUpdates
+ {
+ get => _attributesRequireVerificationBeforeUpdates ?? (_attributesRequireVerificationBeforeUpdates = new InputList());
+ set => _attributesRequireVerificationBeforeUpdates = value;
+ }
+
+ public UserPoolUserAttributeUpdateSettingsGetArgs()
+ {
+ }
+ public static new UserPoolUserAttributeUpdateSettingsGetArgs Empty => new UserPoolUserAttributeUpdateSettingsGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Cognito/Outputs/UserPoolUserAttributeUpdateSettings.cs b/sdk/dotnet/Cognito/Outputs/UserPoolUserAttributeUpdateSettings.cs
new file mode 100644
index 00000000000..1cb2435e34f
--- /dev/null
+++ b/sdk/dotnet/Cognito/Outputs/UserPoolUserAttributeUpdateSettings.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.Cognito.Outputs
+{
+
+ [OutputType]
+ public sealed class UserPoolUserAttributeUpdateSettings
+ {
+ ///
+ /// A list of attributes requiring verification before update. If set, the provided value(s) must also be set in `auto_verified_attributes`. Valid values: `email`, `phone_number`.
+ ///
+ public readonly ImmutableArray AttributesRequireVerificationBeforeUpdates;
+
+ [OutputConstructor]
+ private UserPoolUserAttributeUpdateSettings(ImmutableArray attributesRequireVerificationBeforeUpdates)
+ {
+ AttributesRequireVerificationBeforeUpdates = attributesRequireVerificationBeforeUpdates;
+ }
+ }
+}
diff --git a/sdk/dotnet/Cognito/UserPool.cs b/sdk/dotnet/Cognito/UserPool.cs
index ee111fba367..0f763d7957a 100644
--- a/sdk/dotnet/Cognito/UserPool.cs
+++ b/sdk/dotnet/Cognito/UserPool.cs
@@ -252,6 +252,12 @@ public partial class UserPool : global::Pulumi.CustomResource
[Output("tagsAll")]
public Output> TagsAll { get; private set; } = null!;
+ ///
+ /// Configuration block for user attribute update settings. Detailed below.
+ ///
+ [Output("userAttributeUpdateSettings")]
+ public Output UserAttributeUpdateSettings { get; private set; } = null!;
+
///
/// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
///
@@ -454,6 +460,12 @@ public InputMap Tags
set => _tags = value;
}
+ ///
+ /// Configuration block for user attribute update settings. Detailed below.
+ ///
+ [Input("userAttributeUpdateSettings")]
+ public Input? UserAttributeUpdateSettings { get; set; }
+
///
/// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
///
@@ -678,6 +690,12 @@ public InputMap TagsAll
set => _tagsAll = value;
}
+ ///
+ /// Configuration block for user attribute update settings. Detailed below.
+ ///
+ [Input("userAttributeUpdateSettings")]
+ public Input? UserAttributeUpdateSettings { get; set; }
+
///
/// Configuration block for user pool add-ons to enable user pool advanced security mode features. Detailed below.
///
diff --git a/sdk/dotnet/Comprehend/DocumentClassifier.cs b/sdk/dotnet/Comprehend/DocumentClassifier.cs
new file mode 100644
index 00000000000..e131f90a26a
--- /dev/null
+++ b/sdk/dotnet/Comprehend/DocumentClassifier.cs
@@ -0,0 +1,418 @@
+// *** 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.Comprehend
+{
+ ///
+ /// ## Example Usage
+ /// ### Basic Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var documents = new Aws.S3.BucketObjectv2("documents");
+ ///
+ /// // ...
+ /// var example = new Aws.Comprehend.DocumentClassifier("example", new()
+ /// {
+ /// DataAccessRoleArn = aws_iam_role.Example.Arn,
+ /// LanguageCode = "en",
+ /// InputDataConfig = new Aws.Comprehend.Inputs.DocumentClassifierInputDataConfigArgs
+ /// {
+ /// S3Uri = documents.Id.Apply(id => $"s3://{aws_s3_bucket.Test.Bucket}/{id}"),
+ /// },
+ /// }, new CustomResourceOptions
+ /// {
+ /// DependsOn = new[]
+ /// {
+ /// aws_iam_role_policy.Example,
+ /// },
+ /// });
+ ///
+ /// var entities = new Aws.S3.BucketObjectv2("entities");
+ ///
+ /// // ...
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// Comprehend Document Classifier can be imported using the ARN, e.g.,
+ ///
+ /// ```sh
+ /// $ pulumi import aws:comprehend/documentClassifier:DocumentClassifier example arn:aws:comprehend:us-west-2:123456789012:document_classifier/example
+ /// ```
+ ///
+ [AwsResourceType("aws:comprehend/documentClassifier:DocumentClassifier")]
+ public partial class DocumentClassifier : global::Pulumi.CustomResource
+ {
+ ///
+ /// ARN of the Document Classifier version.
+ ///
+ [Output("arn")]
+ public Output Arn { get; private set; } = null!;
+
+ ///
+ /// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
+ ///
+ [Output("dataAccessRoleArn")]
+ public Output DataAccessRoleArn { get; private set; } = null!;
+
+ ///
+ /// Configuration for the training and testing data.
+ /// See the `input_data_config` Configuration Block section below.
+ ///
+ [Output("inputDataConfig")]
+ public Output InputDataConfig { get; private set; } = null!;
+
+ ///
+ /// Two-letter language code for the language.
+ /// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
+ ///
+ [Output("languageCode")]
+ public Output LanguageCode { get; private set; } = null!;
+
+ ///
+ /// The document classification mode.
+ /// One of `MULTI_CLASS` or `MULTI_LABEL`.
+ /// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
+ ///
+ [Output("mode")]
+ public Output Mode { get; private set; } = null!;
+
+ ///
+ /// KMS Key used to encrypt trained Document Classifiers.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Output("modelKmsKeyId")]
+ public Output ModelKmsKeyId { get; private set; } = null!;
+
+ ///
+ /// Name for the Document Classifier.
+ /// Has a maximum length of 63 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// Configuration for the output results of training.
+ /// See the `output_data_config` Configuration Block section below.
+ ///
+ [Output("outputDataConfig")]
+ public Output OutputDataConfig { get; private set; } = null!;
+
+ ///
+ /// A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
+ ///
+ [Output("tags")]
+ public Output?> Tags { get; private set; } = null!;
+
+ ///
+ /// A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).
+ ///
+ [Output("tagsAll")]
+ public Output> TagsAll { get; private set; } = null!;
+
+ [Output("versionName")]
+ public Output VersionName { get; private set; } = null!;
+
+ ///
+ /// Creates a unique version name beginning with the specified prefix.
+ /// Has a maximum length of 37 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ /// Conflicts with `version_name`.
+ ///
+ [Output("versionNamePrefix")]
+ public Output VersionNamePrefix { get; private set; } = null!;
+
+ ///
+ /// KMS Key used to encrypt storage volumes during job processing.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Output("volumeKmsKeyId")]
+ public Output VolumeKmsKeyId { get; private set; } = null!;
+
+ ///
+ /// Configuration parameters for VPC to contain Document Classifier resources.
+ /// See the `vpc_config` Configuration Block section below.
+ ///
+ [Output("vpcConfig")]
+ public Output VpcConfig { get; private set; } = null!;
+
+
+ ///
+ /// Create a DocumentClassifier 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 DocumentClassifier(string name, DocumentClassifierArgs args, CustomResourceOptions? options = null)
+ : base("aws:comprehend/documentClassifier:DocumentClassifier", name, args ?? new DocumentClassifierArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private DocumentClassifier(string name, Input id, DocumentClassifierState? state = null, CustomResourceOptions? options = null)
+ : base("aws:comprehend/documentClassifier:DocumentClassifier", 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 DocumentClassifier 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 DocumentClassifier Get(string name, Input id, DocumentClassifierState? state = null, CustomResourceOptions? options = null)
+ {
+ return new DocumentClassifier(name, id, state, options);
+ }
+ }
+
+ public sealed class DocumentClassifierArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
+ ///
+ [Input("dataAccessRoleArn", required: true)]
+ public Input DataAccessRoleArn { get; set; } = null!;
+
+ ///
+ /// Configuration for the training and testing data.
+ /// See the `input_data_config` Configuration Block section below.
+ ///
+ [Input("inputDataConfig", required: true)]
+ public Input InputDataConfig { get; set; } = null!;
+
+ ///
+ /// Two-letter language code for the language.
+ /// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
+ ///
+ [Input("languageCode", required: true)]
+ public Input LanguageCode { get; set; } = null!;
+
+ ///
+ /// The document classification mode.
+ /// One of `MULTI_CLASS` or `MULTI_LABEL`.
+ /// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
+ ///
+ [Input("mode")]
+ public Input? Mode { get; set; }
+
+ ///
+ /// KMS Key used to encrypt trained Document Classifiers.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Input("modelKmsKeyId")]
+ public Input? ModelKmsKeyId { get; set; }
+
+ ///
+ /// Name for the Document Classifier.
+ /// Has a maximum length of 63 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Configuration for the output results of training.
+ /// See the `output_data_config` Configuration Block section below.
+ ///
+ [Input("outputDataConfig")]
+ public Input? OutputDataConfig { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ [Input("tagsAll")]
+ private InputMap? _tagsAll;
+
+ ///
+ /// A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).
+ ///
+ public InputMap TagsAll
+ {
+ get => _tagsAll ?? (_tagsAll = new InputMap());
+ set => _tagsAll = value;
+ }
+
+ [Input("versionName")]
+ public Input? VersionName { get; set; }
+
+ ///
+ /// Creates a unique version name beginning with the specified prefix.
+ /// Has a maximum length of 37 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ /// Conflicts with `version_name`.
+ ///
+ [Input("versionNamePrefix")]
+ public Input? VersionNamePrefix { get; set; }
+
+ ///
+ /// KMS Key used to encrypt storage volumes during job processing.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Input("volumeKmsKeyId")]
+ public Input? VolumeKmsKeyId { get; set; }
+
+ ///
+ /// Configuration parameters for VPC to contain Document Classifier resources.
+ /// See the `vpc_config` Configuration Block section below.
+ ///
+ [Input("vpcConfig")]
+ public Input? VpcConfig { get; set; }
+
+ public DocumentClassifierArgs()
+ {
+ }
+ public static new DocumentClassifierArgs Empty => new DocumentClassifierArgs();
+ }
+
+ public sealed class DocumentClassifierState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// ARN of the Document Classifier version.
+ ///
+ [Input("arn")]
+ public Input? Arn { get; set; }
+
+ ///
+ /// The ARN for an IAM Role which allows Comprehend to read the training and testing data.
+ ///
+ [Input("dataAccessRoleArn")]
+ public Input? DataAccessRoleArn { get; set; }
+
+ ///
+ /// Configuration for the training and testing data.
+ /// See the `input_data_config` Configuration Block section below.
+ ///
+ [Input("inputDataConfig")]
+ public Input? InputDataConfig { get; set; }
+
+ ///
+ /// Two-letter language code for the language.
+ /// One of `en`, `es`, `fr`, `it`, `de`, or `pt`.
+ ///
+ [Input("languageCode")]
+ public Input? LanguageCode { get; set; }
+
+ ///
+ /// The document classification mode.
+ /// One of `MULTI_CLASS` or `MULTI_LABEL`.
+ /// `MULTI_CLASS` is also known as "Single Label" in the AWS Console.
+ ///
+ [Input("mode")]
+ public Input? Mode { get; set; }
+
+ ///
+ /// KMS Key used to encrypt trained Document Classifiers.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Input("modelKmsKeyId")]
+ public Input? ModelKmsKeyId { get; set; }
+
+ ///
+ /// Name for the Document Classifier.
+ /// Has a maximum length of 63 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// Configuration for the output results of training.
+ /// See the `output_data_config` Configuration Block section below.
+ ///
+ [Input("outputDataConfig")]
+ public Input? OutputDataConfig { get; set; }
+
+ [Input("tags")]
+ private InputMap? _tags;
+
+ ///
+ /// A map of tags to assign to the resource. If configured with a provider [`default_tags` Configuration Block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level.
+ ///
+ public InputMap Tags
+ {
+ get => _tags ?? (_tags = new InputMap());
+ set => _tags = value;
+ }
+
+ [Input("tagsAll")]
+ private InputMap? _tagsAll;
+
+ ///
+ /// A map of tags assigned to the resource, including those inherited from the provider [`default_tags` configuration block](https://www.terraform.io/docs/providers/aws/index.html#default_tags-configuration-block).
+ ///
+ public InputMap TagsAll
+ {
+ get => _tagsAll ?? (_tagsAll = new InputMap());
+ set => _tagsAll = value;
+ }
+
+ [Input("versionName")]
+ public Input? VersionName { get; set; }
+
+ ///
+ /// Creates a unique version name beginning with the specified prefix.
+ /// Has a maximum length of 37 characters.
+ /// Can contain upper- and lower-case letters, numbers, and hypen (`-`).
+ /// Conflicts with `version_name`.
+ ///
+ [Input("versionNamePrefix")]
+ public Input? VersionNamePrefix { get; set; }
+
+ ///
+ /// KMS Key used to encrypt storage volumes during job processing.
+ /// Can be a KMS Key ID or a KMS Key ARN.
+ ///
+ [Input("volumeKmsKeyId")]
+ public Input? VolumeKmsKeyId { get; set; }
+
+ ///
+ /// Configuration parameters for VPC to contain Document Classifier resources.
+ /// See the `vpc_config` Configuration Block section below.
+ ///
+ [Input("vpcConfig")]
+ public Input? VpcConfig { get; set; }
+
+ public DocumentClassifierState()
+ {
+ }
+ public static new DocumentClassifierState Empty => new DocumentClassifierState();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigArgs.cs
new file mode 100644
index 00000000000..2fa372015b0
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigArgs.cs
@@ -0,0 +1,59 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierInputDataConfigArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("augmentedManifests")]
+ private InputList? _augmentedManifests;
+
+ ///
+ /// List of training datasets produced by Amazon SageMaker Ground Truth.
+ /// Used if `data_format` is `AUGMENTED_MANIFEST`.
+ /// See the `augmented_manifests` Configuration Block section below.
+ ///
+ public InputList AugmentedManifests
+ {
+ get => _augmentedManifests ?? (_augmentedManifests = new InputList());
+ set => _augmentedManifests = value;
+ }
+
+ ///
+ /// The format for the training data.
+ /// One of `COMPREHEND_CSV` or `AUGMENTED_MANIFEST`.
+ ///
+ [Input("dataFormat")]
+ public Input? DataFormat { get; set; }
+
+ ///
+ /// Delimiter between labels when training a multi-label classifier.
+ /// Valid values are `|`, `~`, `!`, `@`, `#`, `$`, `%`, `^`, `*`, `-`, `_`, `+`, `=`, `\`, `:`, `;`, `>`, `?`, `/`, `<space>`, and `<tab>`.
+ /// Default is `|`.
+ ///
+ [Input("labelDelimiter")]
+ public Input? LabelDelimiter { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri")]
+ public Input? S3Uri { get; set; }
+
+ [Input("testS3Uri")]
+ public Input? TestS3Uri { get; set; }
+
+ public DocumentClassifierInputDataConfigArgs()
+ {
+ }
+ public static new DocumentClassifierInputDataConfigArgs Empty => new DocumentClassifierInputDataConfigArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestArgs.cs
new file mode 100644
index 00000000000..bc29e7a57a5
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestArgs.cs
@@ -0,0 +1,65 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierInputDataConfigAugmentedManifestArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Location of annotation files.
+ ///
+ [Input("annotationDataS3Uri")]
+ public Input? AnnotationDataS3Uri { get; set; }
+
+ [Input("attributeNames", required: true)]
+ private InputList? _attributeNames;
+
+ ///
+ /// The JSON attribute that contains the annotations for the training documents.
+ ///
+ public InputList AttributeNames
+ {
+ get => _attributeNames ?? (_attributeNames = new InputList());
+ set => _attributeNames = value;
+ }
+
+ ///
+ /// Type of augmented manifest.
+ /// One of `PLAIN_TEXT_DOCUMENT` or `SEMI_STRUCTURED_DOCUMENT`.
+ ///
+ [Input("documentType")]
+ public Input? DocumentType { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri", required: true)]
+ public Input S3Uri { get; set; } = null!;
+
+ ///
+ /// Location of source PDF files.
+ ///
+ [Input("sourceDocumentsS3Uri")]
+ public Input? SourceDocumentsS3Uri { get; set; }
+
+ ///
+ /// Purpose of data in augmented manifest.
+ /// One of `TRAIN` or `TEST`.
+ ///
+ [Input("split")]
+ public Input? Split { get; set; }
+
+ public DocumentClassifierInputDataConfigAugmentedManifestArgs()
+ {
+ }
+ public static new DocumentClassifierInputDataConfigAugmentedManifestArgs Empty => new DocumentClassifierInputDataConfigAugmentedManifestArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestGetArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestGetArgs.cs
new file mode 100644
index 00000000000..dd56f9c010c
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigAugmentedManifestGetArgs.cs
@@ -0,0 +1,65 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierInputDataConfigAugmentedManifestGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Location of annotation files.
+ ///
+ [Input("annotationDataS3Uri")]
+ public Input? AnnotationDataS3Uri { get; set; }
+
+ [Input("attributeNames", required: true)]
+ private InputList? _attributeNames;
+
+ ///
+ /// The JSON attribute that contains the annotations for the training documents.
+ ///
+ public InputList AttributeNames
+ {
+ get => _attributeNames ?? (_attributeNames = new InputList());
+ set => _attributeNames = value;
+ }
+
+ ///
+ /// Type of augmented manifest.
+ /// One of `PLAIN_TEXT_DOCUMENT` or `SEMI_STRUCTURED_DOCUMENT`.
+ ///
+ [Input("documentType")]
+ public Input? DocumentType { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri", required: true)]
+ public Input S3Uri { get; set; } = null!;
+
+ ///
+ /// Location of source PDF files.
+ ///
+ [Input("sourceDocumentsS3Uri")]
+ public Input? SourceDocumentsS3Uri { get; set; }
+
+ ///
+ /// Purpose of data in augmented manifest.
+ /// One of `TRAIN` or `TEST`.
+ ///
+ [Input("split")]
+ public Input? Split { get; set; }
+
+ public DocumentClassifierInputDataConfigAugmentedManifestGetArgs()
+ {
+ }
+ public static new DocumentClassifierInputDataConfigAugmentedManifestGetArgs Empty => new DocumentClassifierInputDataConfigAugmentedManifestGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigGetArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigGetArgs.cs
new file mode 100644
index 00000000000..bf90a987c13
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierInputDataConfigGetArgs.cs
@@ -0,0 +1,59 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierInputDataConfigGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("augmentedManifests")]
+ private InputList? _augmentedManifests;
+
+ ///
+ /// List of training datasets produced by Amazon SageMaker Ground Truth.
+ /// Used if `data_format` is `AUGMENTED_MANIFEST`.
+ /// See the `augmented_manifests` Configuration Block section below.
+ ///
+ public InputList AugmentedManifests
+ {
+ get => _augmentedManifests ?? (_augmentedManifests = new InputList());
+ set => _augmentedManifests = value;
+ }
+
+ ///
+ /// The format for the training data.
+ /// One of `COMPREHEND_CSV` or `AUGMENTED_MANIFEST`.
+ ///
+ [Input("dataFormat")]
+ public Input? DataFormat { get; set; }
+
+ ///
+ /// Delimiter between labels when training a multi-label classifier.
+ /// Valid values are `|`, `~`, `!`, `@`, `#`, `$`, `%`, `^`, `*`, `-`, `_`, `+`, `=`, `\`, `:`, `;`, `>`, `?`, `/`, `<space>`, and `<tab>`.
+ /// Default is `|`.
+ ///
+ [Input("labelDelimiter")]
+ public Input? LabelDelimiter { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri")]
+ public Input? S3Uri { get; set; }
+
+ [Input("testS3Uri")]
+ public Input? TestS3Uri { get; set; }
+
+ public DocumentClassifierInputDataConfigGetArgs()
+ {
+ }
+ public static new DocumentClassifierInputDataConfigGetArgs Empty => new DocumentClassifierInputDataConfigGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigArgs.cs
new file mode 100644
index 00000000000..4c4525a8d89
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigArgs.cs
@@ -0,0 +1,40 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierOutputDataConfigArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// KMS Key used to encrypt the output documents.
+ /// Can be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN.
+ ///
+ [Input("kmsKeyId")]
+ public Input? KmsKeyId { get; set; }
+
+ ///
+ /// Full path for the output documents.
+ ///
+ [Input("outputS3Uri")]
+ public Input? OutputS3Uri { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri", required: true)]
+ public Input S3Uri { get; set; } = null!;
+
+ public DocumentClassifierOutputDataConfigArgs()
+ {
+ }
+ public static new DocumentClassifierOutputDataConfigArgs Empty => new DocumentClassifierOutputDataConfigArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigGetArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigGetArgs.cs
new file mode 100644
index 00000000000..9a074f15efc
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierOutputDataConfigGetArgs.cs
@@ -0,0 +1,40 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierOutputDataConfigGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// KMS Key used to encrypt the output documents.
+ /// Can be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN.
+ ///
+ [Input("kmsKeyId")]
+ public Input? KmsKeyId { get; set; }
+
+ ///
+ /// Full path for the output documents.
+ ///
+ [Input("outputS3Uri")]
+ public Input? OutputS3Uri { get; set; }
+
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ [Input("s3Uri", required: true)]
+ public Input S3Uri { get; set; } = null!;
+
+ public DocumentClassifierOutputDataConfigGetArgs()
+ {
+ }
+ public static new DocumentClassifierOutputDataConfigGetArgs Empty => new DocumentClassifierOutputDataConfigGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigArgs.cs
new file mode 100644
index 00000000000..58f3cdaa36b
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigArgs.cs
@@ -0,0 +1,44 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierVpcConfigArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("securityGroupIds", required: true)]
+ private InputList? _securityGroupIds;
+
+ ///
+ /// List of security group IDs.
+ ///
+ public InputList SecurityGroupIds
+ {
+ get => _securityGroupIds ?? (_securityGroupIds = new InputList());
+ set => _securityGroupIds = value;
+ }
+
+ [Input("subnets", required: true)]
+ private InputList? _subnets;
+
+ ///
+ /// List of VPC subnets.
+ ///
+ public InputList Subnets
+ {
+ get => _subnets ?? (_subnets = new InputList());
+ set => _subnets = value;
+ }
+
+ public DocumentClassifierVpcConfigArgs()
+ {
+ }
+ public static new DocumentClassifierVpcConfigArgs Empty => new DocumentClassifierVpcConfigArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigGetArgs.cs b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigGetArgs.cs
new file mode 100644
index 00000000000..090ca04cd5f
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Inputs/DocumentClassifierVpcConfigGetArgs.cs
@@ -0,0 +1,44 @@
+// *** 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.Comprehend.Inputs
+{
+
+ public sealed class DocumentClassifierVpcConfigGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("securityGroupIds", required: true)]
+ private InputList? _securityGroupIds;
+
+ ///
+ /// List of security group IDs.
+ ///
+ public InputList SecurityGroupIds
+ {
+ get => _securityGroupIds ?? (_securityGroupIds = new InputList());
+ set => _securityGroupIds = value;
+ }
+
+ [Input("subnets", required: true)]
+ private InputList? _subnets;
+
+ ///
+ /// List of VPC subnets.
+ ///
+ public InputList Subnets
+ {
+ get => _subnets ?? (_subnets = new InputList());
+ set => _subnets = value;
+ }
+
+ public DocumentClassifierVpcConfigGetArgs()
+ {
+ }
+ public static new DocumentClassifierVpcConfigGetArgs Empty => new DocumentClassifierVpcConfigGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfig.cs b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfig.cs
new file mode 100644
index 00000000000..dbe067f8f97
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfig.cs
@@ -0,0 +1,59 @@
+// *** 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.Comprehend.Outputs
+{
+
+ [OutputType]
+ public sealed class DocumentClassifierInputDataConfig
+ {
+ ///
+ /// List of training datasets produced by Amazon SageMaker Ground Truth.
+ /// Used if `data_format` is `AUGMENTED_MANIFEST`.
+ /// See the `augmented_manifests` Configuration Block section below.
+ ///
+ public readonly ImmutableArray AugmentedManifests;
+ ///
+ /// The format for the training data.
+ /// One of `COMPREHEND_CSV` or `AUGMENTED_MANIFEST`.
+ ///
+ public readonly string? DataFormat;
+ ///
+ /// Delimiter between labels when training a multi-label classifier.
+ /// Valid values are `|`, `~`, `!`, `@`, `#`, `$`, `%`, `^`, `*`, `-`, `_`, `+`, `=`, `\`, `:`, `;`, `>`, `?`, `/`, `<space>`, and `<tab>`.
+ /// Default is `|`.
+ ///
+ public readonly string? LabelDelimiter;
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ public readonly string? S3Uri;
+ public readonly string? TestS3Uri;
+
+ [OutputConstructor]
+ private DocumentClassifierInputDataConfig(
+ ImmutableArray augmentedManifests,
+
+ string? dataFormat,
+
+ string? labelDelimiter,
+
+ string? s3Uri,
+
+ string? testS3Uri)
+ {
+ AugmentedManifests = augmentedManifests;
+ DataFormat = dataFormat;
+ LabelDelimiter = labelDelimiter;
+ S3Uri = s3Uri;
+ TestS3Uri = testS3Uri;
+ }
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfigAugmentedManifest.cs b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfigAugmentedManifest.cs
new file mode 100644
index 00000000000..eebdb58c329
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierInputDataConfigAugmentedManifest.cs
@@ -0,0 +1,66 @@
+// *** 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.Comprehend.Outputs
+{
+
+ [OutputType]
+ public sealed class DocumentClassifierInputDataConfigAugmentedManifest
+ {
+ ///
+ /// Location of annotation files.
+ ///
+ public readonly string? AnnotationDataS3Uri;
+ ///
+ /// The JSON attribute that contains the annotations for the training documents.
+ ///
+ public readonly ImmutableArray AttributeNames;
+ ///
+ /// Type of augmented manifest.
+ /// One of `PLAIN_TEXT_DOCUMENT` or `SEMI_STRUCTURED_DOCUMENT`.
+ ///
+ public readonly string? DocumentType;
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ public readonly string S3Uri;
+ ///
+ /// Location of source PDF files.
+ ///
+ public readonly string? SourceDocumentsS3Uri;
+ ///
+ /// Purpose of data in augmented manifest.
+ /// One of `TRAIN` or `TEST`.
+ ///
+ public readonly string? Split;
+
+ [OutputConstructor]
+ private DocumentClassifierInputDataConfigAugmentedManifest(
+ string? annotationDataS3Uri,
+
+ ImmutableArray attributeNames,
+
+ string? documentType,
+
+ string s3Uri,
+
+ string? sourceDocumentsS3Uri,
+
+ string? split)
+ {
+ AnnotationDataS3Uri = annotationDataS3Uri;
+ AttributeNames = attributeNames;
+ DocumentType = documentType;
+ S3Uri = s3Uri;
+ SourceDocumentsS3Uri = sourceDocumentsS3Uri;
+ Split = split;
+ }
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Outputs/DocumentClassifierOutputDataConfig.cs b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierOutputDataConfig.cs
new file mode 100644
index 00000000000..c9c9553cdec
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierOutputDataConfig.cs
@@ -0,0 +1,44 @@
+// *** 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.Comprehend.Outputs
+{
+
+ [OutputType]
+ public sealed class DocumentClassifierOutputDataConfig
+ {
+ ///
+ /// KMS Key used to encrypt the output documents.
+ /// Can be a KMS Key ID, a KMS Key ARN, a KMS Alias name, or a KMS Alias ARN.
+ ///
+ public readonly string? KmsKeyId;
+ ///
+ /// Full path for the output documents.
+ ///
+ public readonly string? OutputS3Uri;
+ ///
+ /// Destination path for the output documents.
+ /// The full path to the output file will be returned in `output_s3_uri`.
+ ///
+ public readonly string S3Uri;
+
+ [OutputConstructor]
+ private DocumentClassifierOutputDataConfig(
+ string? kmsKeyId,
+
+ string? outputS3Uri,
+
+ string s3Uri)
+ {
+ KmsKeyId = kmsKeyId;
+ OutputS3Uri = outputS3Uri;
+ S3Uri = s3Uri;
+ }
+ }
+}
diff --git a/sdk/dotnet/Comprehend/Outputs/DocumentClassifierVpcConfig.cs b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierVpcConfig.cs
new file mode 100644
index 00000000000..92dcde12b96
--- /dev/null
+++ b/sdk/dotnet/Comprehend/Outputs/DocumentClassifierVpcConfig.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.Comprehend.Outputs
+{
+
+ [OutputType]
+ public sealed class DocumentClassifierVpcConfig
+ {
+ ///
+ /// List of security group IDs.
+ ///
+ public readonly ImmutableArray SecurityGroupIds;
+ ///
+ /// List of VPC subnets.
+ ///
+ public readonly ImmutableArray Subnets;
+
+ [OutputConstructor]
+ private DocumentClassifierVpcConfig(
+ ImmutableArray securityGroupIds,
+
+ ImmutableArray subnets)
+ {
+ SecurityGroupIds = securityGroupIds;
+ Subnets = subnets;
+ }
+ }
+}
diff --git a/sdk/dotnet/DirectConnect/Connection.cs b/sdk/dotnet/DirectConnect/Connection.cs
index 9df8be43d00..e62ee119555 100644
--- a/sdk/dotnet/DirectConnect/Connection.cs
+++ b/sdk/dotnet/DirectConnect/Connection.cs
@@ -107,6 +107,12 @@ public partial class Connection : global::Pulumi.CustomResource
[Output("tagsAll")]
public Output> TagsAll { get; private set; } = null!;
+ ///
+ /// The VLAN ID.
+ ///
+ [Output("vlanId")]
+ public Output VlanId { get; private set; } = null!;
+
///
/// Create a Connection resource with the given unique name, arguments, and options.
@@ -275,6 +281,12 @@ public InputMap TagsAll
set => _tagsAll = value;
}
+ ///
+ /// The VLAN ID.
+ ///
+ [Input("vlanId")]
+ public Input? VlanId { get; set; }
+
public ConnectionState()
{
}
diff --git a/sdk/dotnet/DirectConnect/GetConnection.cs b/sdk/dotnet/DirectConnect/GetConnection.cs
index cb627ae96b7..27ec5c99919 100644
--- a/sdk/dotnet/DirectConnect/GetConnection.cs
+++ b/sdk/dotnet/DirectConnect/GetConnection.cs
@@ -156,6 +156,10 @@ public sealed class GetConnectionResult
/// Map of tags for the resource.
///
public readonly ImmutableDictionary Tags;
+ ///
+ /// The VLAN ID.
+ ///
+ public readonly string VlanId;
[OutputConstructor]
private GetConnectionResult(
@@ -175,7 +179,9 @@ private GetConnectionResult(
string providerName,
- ImmutableDictionary tags)
+ ImmutableDictionary tags,
+
+ string vlanId)
{
Arn = arn;
AwsDevice = awsDevice;
@@ -186,6 +192,7 @@ private GetConnectionResult(
OwnerAccountId = ownerAccountId;
ProviderName = providerName;
Tags = tags;
+ VlanId = vlanId;
}
}
}
diff --git a/sdk/dotnet/Ebs/Volume.cs b/sdk/dotnet/Ebs/Volume.cs
index 3d82d6b4d99..874dd833949 100644
--- a/sdk/dotnet/Ebs/Volume.cs
+++ b/sdk/dotnet/Ebs/Volume.cs
@@ -34,7 +34,7 @@ namespace Pulumi.Aws.Ebs
/// });
/// ```
///
- /// > **NOTE**: At least 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/DefaultVpc.cs b/sdk/dotnet/Ec2/DefaultVpc.cs
index f816b9cdb9b..dc0562cdc57 100644
--- a/sdk/dotnet/Ec2/DefaultVpc.cs
+++ b/sdk/dotnet/Ec2/DefaultVpc.cs
@@ -79,6 +79,9 @@ public partial class DefaultVpc : global::Pulumi.CustomResource
[Output("enableDnsSupport")]
public Output EnableDnsSupport { get; private set; } = null!;
+ [Output("enableNetworkAddressUsageMetrics")]
+ public Output EnableNetworkAddressUsageMetrics { get; private set; } = null!;
+
[Output("existingDefaultVpc")]
public Output ExistingDefaultVpc { get; private set; } = null!;
@@ -182,6 +185,9 @@ public sealed class DefaultVpcArgs : global::Pulumi.ResourceArgs
[Input("enableDnsSupport")]
public Input? EnableDnsSupport { get; set; }
+ [Input("enableNetworkAddressUsageMetrics")]
+ public Input? EnableNetworkAddressUsageMetrics { get; set; }
+
///
/// Whether destroying the resource deletes the default VPC. Default: `false`
///
@@ -252,6 +258,9 @@ public sealed class DefaultVpcState : global::Pulumi.ResourceArgs
[Input("enableDnsSupport")]
public Input? EnableDnsSupport { get; set; }
+ [Input("enableNetworkAddressUsageMetrics")]
+ public Input? EnableNetworkAddressUsageMetrics { get; set; }
+
[Input("existingDefaultVpc")]
public Input? ExistingDefaultVpc { get; set; }
diff --git a/sdk/dotnet/Ec2/GetNatGateway.cs b/sdk/dotnet/Ec2/GetNatGateway.cs
index 1178808c241..2f97f3f4dda 100644
--- a/sdk/dotnet/Ec2/GetNatGateway.cs
+++ b/sdk/dotnet/Ec2/GetNatGateway.cs
@@ -25,8 +25,6 @@ public static class GetNatGateway
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var config = new Config();
- /// var subnetId = config.RequireObject<dynamic>("subnetId");
/// var @default = Aws.Ec2.GetNatGateway.Invoke(new()
/// {
/// SubnetId = aws_subnet.Public.Id,
@@ -75,8 +73,6 @@ public static Task InvokeAsync(GetNatGatewayArgs? args = nu
///
/// return await Deployment.RunAsync(() =>
/// {
- /// var config = new Config();
- /// var subnetId = config.RequireObject<dynamic>("subnetId");
/// var @default = Aws.Ec2.GetNatGateway.Invoke(new()
/// {
/// SubnetId = aws_subnet.Public.Id,
diff --git a/sdk/dotnet/Ec2/GetVpc.cs b/sdk/dotnet/Ec2/GetVpc.cs
index 266b16952af..94242a1bda6 100644
--- a/sdk/dotnet/Ec2/GetVpc.cs
+++ b/sdk/dotnet/Ec2/GetVpc.cs
@@ -186,6 +186,10 @@ public sealed class GetVpcResult
/// Whether or not the VPC has DNS support
///
public readonly bool EnableDnsSupport;
+ ///
+ /// Whether Network Address Usage metrics are enabled for your VPC
+ ///
+ public readonly bool EnableNetworkAddressUsageMetrics;
public readonly ImmutableArray Filters;
public readonly string Id;
///
@@ -231,6 +235,8 @@ private GetVpcResult(
bool enableDnsSupport,
+ bool enableNetworkAddressUsageMetrics,
+
ImmutableArray filters,
string id,
@@ -256,6 +262,7 @@ private GetVpcResult(
DhcpOptionsId = dhcpOptionsId;
EnableDnsHostnames = enableDnsHostnames;
EnableDnsSupport = enableDnsSupport;
+ EnableNetworkAddressUsageMetrics = enableNetworkAddressUsageMetrics;
Filters = filters;
Id = id;
InstanceTenancy = instanceTenancy;
diff --git a/sdk/dotnet/Ec2/GetVpcIamPools.cs b/sdk/dotnet/Ec2/GetVpcIamPools.cs
new file mode 100644
index 00000000000..55a2b6a6cd3
--- /dev/null
+++ b/sdk/dotnet/Ec2/GetVpcIamPools.cs
@@ -0,0 +1,181 @@
+// *** 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
+{
+ public static class GetVpcIamPools
+ {
+ ///
+ /// `aws.ec2.getVpcIamPools` provides details about IPAM pools.
+ ///
+ /// This resource can prove useful when IPAM pools are created in another root
+ /// module and you need the pool ids as input variables. For example, pools
+ /// can be shared via RAM and used to create vpcs with CIDRs from that pool.
+ ///
+ /// {{% examples %}}
+ /// ## Example Usage
+ /// {{% example %}}
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var test = Aws.Ec2.GetVpcIamPools.Invoke(new()
+ /// {
+ /// Filters = new[]
+ /// {
+ /// new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs
+ /// {
+ /// Name = "description",
+ /// Values = new[]
+ /// {
+ /// "*test*",
+ /// },
+ /// },
+ /// new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs
+ /// {
+ /// Name = "address-family",
+ /// Values = new[]
+ /// {
+ /// "ipv4",
+ /// },
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ /// {{% /example %}}
+ /// {{% /examples %}}
+ ///
+ public static Task InvokeAsync(GetVpcIamPoolsArgs? args = null, InvokeOptions? options = null)
+ => Pulumi.Deployment.Instance.InvokeAsync("aws:ec2/getVpcIamPools:getVpcIamPools", args ?? new GetVpcIamPoolsArgs(), options.WithDefaults());
+
+ ///
+ /// `aws.ec2.getVpcIamPools` provides details about IPAM pools.
+ ///
+ /// This resource can prove useful when IPAM pools are created in another root
+ /// module and you need the pool ids as input variables. For example, pools
+ /// can be shared via RAM and used to create vpcs with CIDRs from that pool.
+ ///
+ /// {{% examples %}}
+ /// ## Example Usage
+ /// {{% example %}}
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var test = Aws.Ec2.GetVpcIamPools.Invoke(new()
+ /// {
+ /// Filters = new[]
+ /// {
+ /// new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs
+ /// {
+ /// Name = "description",
+ /// Values = new[]
+ /// {
+ /// "*test*",
+ /// },
+ /// },
+ /// new Aws.Ec2.Inputs.GetVpcIamPoolsFilterInputArgs
+ /// {
+ /// Name = "address-family",
+ /// Values = new[]
+ /// {
+ /// "ipv4",
+ /// },
+ /// },
+ /// },
+ /// });
+ ///
+ /// });
+ /// ```
+ /// {{% /example %}}
+ /// {{% /examples %}}
+ ///
+ public static Output Invoke(GetVpcIamPoolsInvokeArgs? args = null, InvokeOptions? options = null)
+ => Pulumi.Deployment.Instance.Invoke("aws:ec2/getVpcIamPools:getVpcIamPools", args ?? new GetVpcIamPoolsInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetVpcIamPoolsArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("filters")]
+ private List? _filters;
+
+ ///
+ /// Custom filter block as described below.
+ ///
+ public List Filters
+ {
+ get => _filters ?? (_filters = new List());
+ set => _filters = value;
+ }
+
+ public GetVpcIamPoolsArgs()
+ {
+ }
+ public static new GetVpcIamPoolsArgs Empty => new GetVpcIamPoolsArgs();
+ }
+
+ public sealed class GetVpcIamPoolsInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("filters")]
+ private InputList? _filters;
+
+ ///
+ /// Custom filter block as described below.
+ ///
+ public InputList Filters
+ {
+ get => _filters ?? (_filters = new InputList());
+ set => _filters = value;
+ }
+
+ public GetVpcIamPoolsInvokeArgs()
+ {
+ }
+ public static new GetVpcIamPoolsInvokeArgs Empty => new GetVpcIamPoolsInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetVpcIamPoolsResult
+ {
+ public readonly ImmutableArray Filters;
+ ///
+ /// The provider-assigned unique ID for this managed resource.
+ ///
+ public readonly string Id;
+ ///
+ /// List of IPAM pools and their attributes. See below for details
+ ///
+ public readonly ImmutableArray IpamPools;
+
+ [OutputConstructor]
+ private GetVpcIamPoolsResult(
+ ImmutableArray filters,
+
+ string id,
+
+ ImmutableArray ipamPools)
+ {
+ Filters = filters;
+ Id = id;
+ IpamPools = ipamPools;
+ }
+ }
+}
diff --git a/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilter.cs b/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilter.cs
new file mode 100644
index 00000000000..b4eac8a2408
--- /dev/null
+++ b/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilter.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.Ec2.Inputs
+{
+
+ public sealed class GetVpcIamPoolsFilterArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("name", required: true)]
+ public string Name { get; set; } = null!;
+
+ [Input("values", required: true)]
+ private List? _values;
+ public List Values
+ {
+ get => _values ?? (_values = new List());
+ set => _values = value;
+ }
+
+ public GetVpcIamPoolsFilterArgs()
+ {
+ }
+ public static new GetVpcIamPoolsFilterArgs Empty => new GetVpcIamPoolsFilterArgs();
+ }
+}
diff --git a/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilterArgs.cs b/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilterArgs.cs
new file mode 100644
index 00000000000..225b8be9900
--- /dev/null
+++ b/sdk/dotnet/Ec2/Inputs/GetVpcIamPoolsFilterArgs.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.Ec2.Inputs
+{
+
+ public sealed class GetVpcIamPoolsFilterInputArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ [Input("values", required: true)]
+ private InputList? _values;
+ public InputList Values
+ {
+ get => _values ?? (_values = new InputList());
+ set => _values = value;
+ }
+
+ public GetVpcIamPoolsFilterInputArgs()
+ {
+ }
+ public static new GetVpcIamPoolsFilterInputArgs Empty => new GetVpcIamPoolsFilterInputArgs();
+ }
+}
diff --git a/sdk/dotnet/Ec2/NetworkInterface.cs b/sdk/dotnet/Ec2/NetworkInterface.cs
index 64421f05943..45cc202f2a8 100644
--- a/sdk/dotnet/Ec2/NetworkInterface.cs
+++ b/sdk/dotnet/Ec2/NetworkInterface.cs
@@ -114,6 +114,9 @@ public partial class NetworkInterface : global::Pulumi.CustomResource
[Output("ipv6AddressCount")]
public Output Ipv6AddressCount { get; private set; } = null!;
+ ///
+ /// Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.
+ ///
[Output("ipv6AddressListEnabled")]
public Output Ipv6AddressListEnabled { get; private set; } = null!;
@@ -310,6 +313,9 @@ public InputList Ipv4Prefixes
[Input("ipv6AddressCount")]
public Input? Ipv6AddressCount { get; set; }
+ ///
+ /// Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.
+ ///
[Input("ipv6AddressListEnabled")]
public Input? Ipv6AddressListEnabled { get; set; }
@@ -492,6 +498,9 @@ public InputList Ipv4Prefixes
[Input("ipv6AddressCount")]
public Input? Ipv6AddressCount { get; set; }
+ ///
+ /// Whether `ipv6_address_list` is allowed and controls the IPs to assign to the ENI and `ipv6_addresses` and `ipv6_address_count` become read-only. Default false.
+ ///
[Input("ipv6AddressListEnabled")]
public Input? Ipv6AddressListEnabled { get; set; }
diff --git a/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsFilterResult.cs b/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsFilterResult.cs
new file mode 100644
index 00000000000..b51c1cdcc4e
--- /dev/null
+++ b/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsFilterResult.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.Ec2.Outputs
+{
+
+ [OutputType]
+ public sealed class GetVpcIamPoolsFilterResult
+ {
+ public readonly string Name;
+ public readonly ImmutableArray Values;
+
+ [OutputConstructor]
+ private GetVpcIamPoolsFilterResult(
+ string name,
+
+ ImmutableArray values)
+ {
+ Name = name;
+ Values = values;
+ }
+ }
+}
diff --git a/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsIpamPoolResult.cs b/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsIpamPoolResult.cs
new file mode 100644
index 00000000000..6152e2fb455
--- /dev/null
+++ b/sdk/dotnet/Ec2/Outputs/GetVpcIamPoolsIpamPoolResult.cs
@@ -0,0 +1,142 @@
+// *** 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 GetVpcIamPoolsIpamPoolResult
+ {
+ ///
+ /// IP protocol assigned to this pool.
+ ///
+ public readonly string AddressFamily;
+ ///
+ /// A default netmask length for allocations added to this pool. If, for example, the CIDR assigned to this pool is 10.0.0.0/8 and you enter 16 here, new allocations will default to 10.0.0.0/16.
+ ///
+ public readonly int AllocationDefaultNetmaskLength;
+ ///
+ /// The maximum netmask length that will be required for CIDR allocations in this pool.
+ ///
+ public readonly int AllocationMaxNetmaskLength;
+ ///
+ /// The minimum netmask length that will be required for CIDR allocations in this pool.
+ ///
+ public readonly int AllocationMinNetmaskLength;
+ ///
+ /// Tags that are required to create resources in using this pool.
+ ///
+ public readonly ImmutableDictionary AllocationResourceTags;
+ ///
+ /// ARN of the pool
+ ///
+ public readonly string Arn;
+ ///
+ /// If enabled, IPAM will continuously look for resources within the CIDR range of this pool and automatically import them as allocations into your IPAM.
+ ///
+ public readonly bool AutoImport;
+ ///
+ /// Limits which service in AWS that the pool can be used in. "ec2", for example, allows users to use space for Elastic IP addresses and VPCs.
+ ///
+ public readonly string AwsService;
+ ///
+ /// Description for the IPAM pool.
+ ///
+ public readonly string Description;
+ ///
+ /// ID of the IPAM pool.
+ ///
+ public readonly string? Id;
+ public readonly string IpamPoolId;
+ ///
+ /// ID of the scope the pool belongs to.
+ ///
+ public readonly string IpamScopeId;
+ public readonly string IpamScopeType;
+ ///
+ /// Locale is the Region where your pool is available for allocations. You can only create pools with locales that match the operating Regions of the IPAM. You can only create VPCs from a pool whose locale matches the VPC's Region.
+ ///
+ public readonly string Locale;
+ public readonly int PoolDepth;
+ ///
+ /// Defines whether or not IPv6 pool space is publicly ∂advertisable over the internet.
+ ///
+ public readonly bool PubliclyAdvertisable;
+ ///
+ /// ID of the source IPAM pool.
+ ///
+ public readonly string SourceIpamPoolId;
+ public readonly string State;
+ ///
+ /// Map of tags to assigned to the resource.
+ ///
+ public readonly ImmutableDictionary Tags;
+
+ [OutputConstructor]
+ private GetVpcIamPoolsIpamPoolResult(
+ string addressFamily,
+
+ int allocationDefaultNetmaskLength,
+
+ int allocationMaxNetmaskLength,
+
+ int allocationMinNetmaskLength,
+
+ ImmutableDictionary allocationResourceTags,
+
+ string arn,
+
+ bool autoImport,
+
+ string awsService,
+
+ string description,
+
+ string? id,
+
+ string ipamPoolId,
+
+ string ipamScopeId,
+
+ string ipamScopeType,
+
+ string locale,
+
+ int poolDepth,
+
+ bool publiclyAdvertisable,
+
+ string sourceIpamPoolId,
+
+ string state,
+
+ ImmutableDictionary tags)
+ {
+ AddressFamily = addressFamily;
+ AllocationDefaultNetmaskLength = allocationDefaultNetmaskLength;
+ AllocationMaxNetmaskLength = allocationMaxNetmaskLength;
+ AllocationMinNetmaskLength = allocationMinNetmaskLength;
+ AllocationResourceTags = allocationResourceTags;
+ Arn = arn;
+ AutoImport = autoImport;
+ AwsService = awsService;
+ Description = description;
+ Id = id;
+ IpamPoolId = ipamPoolId;
+ IpamScopeId = ipamScopeId;
+ IpamScopeType = ipamScopeType;
+ Locale = locale;
+ PoolDepth = poolDepth;
+ PubliclyAdvertisable = publiclyAdvertisable;
+ SourceIpamPoolId = sourceIpamPoolId;
+ State = state;
+ Tags = tags;
+ }
+ }
+}
diff --git a/sdk/dotnet/Ec2/SecurityGroupRule.cs b/sdk/dotnet/Ec2/SecurityGroupRule.cs
index d634ba4216b..202449deee0 100644
--- a/sdk/dotnet/Ec2/SecurityGroupRule.cs
+++ b/sdk/dotnet/Ec2/SecurityGroupRule.cs
@@ -14,8 +14,8 @@ namespace Pulumi.Aws.Ec2
/// `egress` group rule, which can be added to external Security Groups.
///
/// > **NOTE on Security Groups and Security Group Rules:** This provider currently
- /// provides both a standalone Security Group Rule resource (a single `ingress` or
- /// `egress` rule), and a Security Group resource with `ingress` and `egress` rules
+ /// provides both a standalone Security Group Rule resource (one or many `ingress` or
+ /// `egress` rules), and a Security Group resource with `ingress` and `egress` rules
/// defined in-line. At this time you cannot use a Security Group with in-line rules
/// in conjunction with any Security Group Rule resources. Doing so will cause
/// a conflict of rule settings and will overwrite rules.
diff --git a/sdk/dotnet/Ec2/Vpc.cs b/sdk/dotnet/Ec2/Vpc.cs
index 618cf07c2e7..4d78057caf4 100644
--- a/sdk/dotnet/Ec2/Vpc.cs
+++ b/sdk/dotnet/Ec2/Vpc.cs
@@ -175,11 +175,17 @@ public partial class Vpc : global::Pulumi.CustomResource
public Output EnableDnsHostnames { get; private set; } = null!;
///
- /// A boolean flag to enable/disable DNS support in the VPC. Defaults true.
+ /// A boolean flag to enable/disable DNS support in the VPC. Defaults to true.
///
[Output("enableDnsSupport")]
public Output EnableDnsSupport { get; private set; } = null!;
+ ///
+ /// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.
+ ///
+ [Output("enableNetworkAddressUsageMetrics")]
+ public Output EnableNetworkAddressUsageMetrics { get; private set; } = null!;
+
///
/// A tenancy option for instances launched into the VPC. Default is `default`, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is `dedicated`, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee.
///
@@ -334,11 +340,17 @@ public sealed class VpcArgs : global::Pulumi.ResourceArgs
public Input? EnableDnsHostnames { get; set; }
///
- /// A boolean flag to enable/disable DNS support in the VPC. Defaults true.
+ /// A boolean flag to enable/disable DNS support in the VPC. Defaults to true.
///
[Input("enableDnsSupport")]
public Input? EnableDnsSupport { get; set; }
+ ///
+ /// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.
+ ///
+ [Input("enableNetworkAddressUsageMetrics")]
+ public Input? EnableNetworkAddressUsageMetrics { get; set; }
+
///
/// A tenancy option for instances launched into the VPC. Default is `default`, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is `dedicated`, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee.
///
@@ -462,11 +474,17 @@ public sealed class VpcState : global::Pulumi.ResourceArgs
public Input? EnableDnsHostnames { get; set; }
///
- /// A boolean flag to enable/disable DNS support in the VPC. Defaults true.
+ /// A boolean flag to enable/disable DNS support in the VPC. Defaults to true.
///
[Input("enableDnsSupport")]
public Input? EnableDnsSupport { get; set; }
+ ///
+ /// Indicates whether Network Address Usage metrics are enabled for your VPC. Defaults to false.
+ ///
+ [Input("enableNetworkAddressUsageMetrics")]
+ public Input? EnableNetworkAddressUsageMetrics { get; set; }
+
///
/// A tenancy option for instances launched into the VPC. Default is `default`, which ensures that EC2 instances launched in this VPC use the EC2 instance tenancy attribute specified when the EC2 instance is launched. The only other option is `dedicated`, which ensures that EC2 instances launched in this VPC are run on dedicated tenancy instances regardless of the tenancy attribute specified at launch. This has a dedicated per region fee of $2 per hour, plus an hourly per instance usage fee.
///
diff --git a/sdk/dotnet/Ec2ClientVpn/Route.cs b/sdk/dotnet/Ec2ClientVpn/Route.cs
index 8e0ceb157d0..59f2ced4b7d 100644
--- a/sdk/dotnet/Ec2ClientVpn/Route.cs
+++ b/sdk/dotnet/Ec2ClientVpn/Route.cs
@@ -75,7 +75,7 @@ public partial class Route : global::Pulumi.CustomResource
public Output ClientVpnEndpointId { get; private set; } = null!;
///
- /// A brief description of the authorization rule.
+ /// A brief description of the route.
///
[Output("description")]
public Output Description { get; private set; } = null!;
@@ -157,7 +157,7 @@ public sealed class RouteArgs : global::Pulumi.ResourceArgs
public Input ClientVpnEndpointId { get; set; } = null!;
///
- /// A brief description of the authorization rule.
+ /// A brief description of the route.
///
[Input("description")]
public Input? Description { get; set; }
@@ -189,7 +189,7 @@ public sealed class RouteState : global::Pulumi.ResourceArgs
public Input? ClientVpnEndpointId { get; set; }
///
- /// A brief description of the authorization rule.
+ /// A brief description of the route.
///
[Input("description")]
public Input? Description { get; set; }
diff --git a/sdk/dotnet/Ec2TransitGateway/ConnectPeer.cs b/sdk/dotnet/Ec2TransitGateway/ConnectPeer.cs
index 8e3888725b9..d3f1315375b 100644
--- a/sdk/dotnet/Ec2TransitGateway/ConnectPeer.cs
+++ b/sdk/dotnet/Ec2TransitGateway/ConnectPeer.cs
@@ -30,7 +30,10 @@ namespace Pulumi.Aws.Ec2TransitGateway
/// var exampleConnectPeer = new Aws.Ec2TransitGateway.ConnectPeer("exampleConnectPeer", new()
/// {
/// PeerAddress = "10.1.2.3",
- /// InsideCidrBlocks = "169.254.100.0/29",
+ /// InsideCidrBlocks = new[]
+ /// {
+ /// "169.254.100.0/29",
+ /// },
/// TransitGatewayAttachmentId = exampleConnect.Id,
/// });
///
diff --git a/sdk/dotnet/Ecs/GetTaskDefinition.cs b/sdk/dotnet/Ecs/GetTaskDefinition.cs
index 3ed19c77892..d86d498bdb0 100644
--- a/sdk/dotnet/Ecs/GetTaskDefinition.cs
+++ b/sdk/dotnet/Ecs/GetTaskDefinition.cs
@@ -15,7 +15,6 @@ public static class GetTaskDefinition
/// The ECS task definition data source allows access to details of
/// a specific AWS ECS task definition.
///
- ///
/// {{% examples %}}
/// ## Example Usage
/// {{% example %}}
@@ -73,7 +72,6 @@ public static Task InvokeAsync(GetTaskDefinitionArgs ar
/// The ECS task definition data source allows access to details of
/// a specific AWS ECS task definition.
///
- ///
/// {{% examples %}}
/// ## Example Usage
/// {{% example %}}
diff --git a/sdk/dotnet/ElastiCache/GetCluster.cs b/sdk/dotnet/ElastiCache/GetCluster.cs
index 3f0fa98e9ec..a65fe3d6122 100644
--- a/sdk/dotnet/ElastiCache/GetCluster.cs
+++ b/sdk/dotnet/ElastiCache/GetCluster.cs
@@ -12,7 +12,7 @@ namespace Pulumi.Aws.ElastiCache
public static class GetCluster
{
///
- /// Use this data source to get information about an Elasticache Cluster
+ /// Use this data source to get information about an ElastiCache Cluster
///
/// {{% examples %}}
/// ## Example Usage
@@ -39,7 +39,7 @@ public static Task InvokeAsync(GetClusterArgs args, InvokeOpti
=> Pulumi.Deployment.Instance.InvokeAsync("aws:elasticache/getCluster:getCluster", args ?? new GetClusterArgs(), options.WithDefaults());
///
- /// Use this data source to get information about an Elasticache Cluster
+ /// Use this data source to get information about an ElastiCache Cluster
///
/// {{% examples %}}
/// ## Example Usage
diff --git a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs
index e54c8f01840..ed29b66888f 100644
--- a/sdk/dotnet/ElastiCache/GetReplicationGroup.cs
+++ b/sdk/dotnet/ElastiCache/GetReplicationGroup.cs
@@ -12,7 +12,7 @@ namespace Pulumi.Aws.ElastiCache
public static class GetReplicationGroup
{
///
- /// Use this data source to get information about an Elasticache Replication Group.
+ /// Use this data source to get information about an ElastiCache Replication Group.
///
/// {{% examples %}}
/// ## Example Usage
@@ -39,7 +39,7 @@ public static Task InvokeAsync(GetReplicationGroupArg
=> Pulumi.Deployment.Instance.InvokeAsync("aws:elasticache/getReplicationGroup:getReplicationGroup", args ?? new GetReplicationGroupArgs(), options.WithDefaults());
///
- /// Use this data source to get information about an Elasticache Replication Group.
+ /// Use this data source to get information about an ElastiCache Replication Group.
///
/// {{% examples %}}
/// ## Example Usage
diff --git a/sdk/dotnet/ElastiCache/GetUser.cs b/sdk/dotnet/ElastiCache/GetUser.cs
index 7ea54ce7cf7..bdda50f2848 100644
--- a/sdk/dotnet/ElastiCache/GetUser.cs
+++ b/sdk/dotnet/ElastiCache/GetUser.cs
@@ -12,7 +12,7 @@ namespace Pulumi.Aws.ElastiCache
public static class GetUser
{
///
- /// Use this data source to get information about an Elasticache User.
+ /// Use this data source to get information about an ElastiCache User.
///
/// {{% examples %}}
/// ## Example Usage
@@ -39,7 +39,7 @@ public static Task InvokeAsync(GetUserArgs args, InvokeOptions? o
=> Pulumi.Deployment.Instance.InvokeAsync("aws:elasticache/getUser:getUser", args ?? new GetUserArgs(), options.WithDefaults());
///
- /// Use this data source to get information about an Elasticache User.
+ /// Use this data source to get information about an ElastiCache User.
///
/// {{% examples %}}
/// ## Example Usage
diff --git a/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs b/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs
index 67996911ef7..8390c6e5297 100644
--- a/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs
+++ b/sdk/dotnet/ElastiCache/GlobalReplicationGroup.cs
@@ -40,7 +40,17 @@ public partial class GlobalReplicationGroup : global::Pulumi.CustomResource
public Output AuthTokenEnabled { get; private set; } = null!;
///
- /// The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
+ /// Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.
+ /// When creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.
+ ///
+ [Output("automaticFailoverEnabled")]
+ public Output AutomaticFailoverEnabled { get; private set; } = null!;
+
+ ///
+ /// The instance class used.
+ /// See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)
+ /// and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
+ /// When creating, by default the Global Replication Group inherits the node type of the primary replication group.
///
[Output("cacheNodeType")]
public Output CacheNodeType { get; private set; } = null!;
@@ -160,6 +170,22 @@ public static GlobalReplicationGroup Get(string name, Input id, GlobalRe
public sealed class GlobalReplicationGroupArgs : global::Pulumi.ResourceArgs
{
+ ///
+ /// Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.
+ /// When creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.
+ ///
+ [Input("automaticFailoverEnabled")]
+ public Input? AutomaticFailoverEnabled { get; set; }
+
+ ///
+ /// The instance class used.
+ /// See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)
+ /// and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
+ /// When creating, by default the Global Replication Group inherits the node type of the primary replication group.
+ ///
+ [Input("cacheNodeType")]
+ public Input? CacheNodeType { get; set; }
+
///
/// Redis version to use for the Global Replication Group.
/// When creating, by default the Global Replication Group inherits the version of the primary replication group.
@@ -226,7 +252,17 @@ public sealed class GlobalReplicationGroupState : global::Pulumi.ResourceArgs
public Input? AuthTokenEnabled { get; set; }
///
- /// The instance class used. See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html) and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
+ /// Specifies whether read-only replicas will be automatically promoted to read/write primary if the existing primary fails.
+ /// When creating, by default the Global Replication Group inherits the automatic failover setting of the primary replication group.
+ ///
+ [Input("automaticFailoverEnabled")]
+ public Input? AutomaticFailoverEnabled { get; set; }
+
+ ///
+ /// The instance class used.
+ /// See AWS documentation for information on [supported node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/CacheNodes.SupportedTypes.html)
+ /// and [guidance on selecting node types](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html).
+ /// When creating, by default the Global Replication Group inherits the node type of the primary replication group.
///
[Input("cacheNodeType")]
public Input? CacheNodeType { get; set; }
diff --git a/sdk/dotnet/ElastiCache/ParameterGroup.cs b/sdk/dotnet/ElastiCache/ParameterGroup.cs
index 3379f70df8c..110b9aeee69 100644
--- a/sdk/dotnet/ElastiCache/ParameterGroup.cs
+++ b/sdk/dotnet/ElastiCache/ParameterGroup.cs
@@ -12,7 +12,7 @@ namespace Pulumi.Aws.ElastiCache
///
/// Provides an ElastiCache parameter group resource.
///
- /// > **NOTE:** Attempting to remove the `reserved-memory` parameter when `family` is set to `redis2.6` or `redis2.8` may show a perpetual difference in this provider due to an Elasticache API limitation. Leave that parameter configured with any value to workaround the issue.
+ /// > **NOTE:** Attempting to remove the `reserved-memory` parameter when `family` is set to `redis2.6` or `redis2.8` may show a perpetual difference in this provider due to an ElastiCache API limitation. Leave that parameter configured with any value to workaround the issue.
///
/// ## Example Usage
///
diff --git a/sdk/dotnet/ElastiCache/SubnetGroup.cs b/sdk/dotnet/ElastiCache/SubnetGroup.cs
index 4dc00fca28a..f3c484c4196 100644
--- a/sdk/dotnet/ElastiCache/SubnetGroup.cs
+++ b/sdk/dotnet/ElastiCache/SubnetGroup.cs
@@ -77,7 +77,7 @@ public partial class SubnetGroup : global::Pulumi.CustomResource
public Output Description { get; private set; } = null!;
///
- /// Name for the cache subnet group. Elasticache converts this name to lowercase.
+ /// Name for the cache subnet group. ElastiCache converts this name to lowercase.
///
[Output("name")]
public Output Name { get; private set; } = null!;
@@ -153,7 +153,7 @@ public sealed class SubnetGroupArgs : global::Pulumi.ResourceArgs
public Input? Description { get; set; }
///
- /// Name for the cache subnet group. Elasticache converts this name to lowercase.
+ /// Name for the cache subnet group. ElastiCache converts this name to lowercase.
///
[Input("name")]
public Input? Name { get; set; }
@@ -201,7 +201,7 @@ public sealed class SubnetGroupState : global::Pulumi.ResourceArgs
public Input? Description { get; set; }
///
- /// Name for the cache subnet group. Elasticache converts this name to lowercase.
+ /// Name for the cache subnet group. ElastiCache converts this name to lowercase.
///
[Input("name")]
public Input? Name { get; set; }
diff --git a/sdk/dotnet/EmrContainers/VirtualCluster.cs b/sdk/dotnet/EmrContainers/VirtualCluster.cs
index 2a197ed7b6a..19affae4544 100644
--- a/sdk/dotnet/EmrContainers/VirtualCluster.cs
+++ b/sdk/dotnet/EmrContainers/VirtualCluster.cs
@@ -43,10 +43,10 @@ namespace Pulumi.Aws.EmrContainers
///
/// ## Import
///
- /// EKS Clusters can be imported using the `name`, e.g.
+ /// EKS Clusters can be imported using the `id`, e.g.
///
/// ```sh
- /// $ pulumi import aws:emrcontainers/virtualCluster:VirtualCluster example
+ /// $ pulumi import aws:emrcontainers/virtualCluster:VirtualCluster example a1b2c3d4e5f6g7h8i9j10k11l
/// ```
///
[AwsResourceType("aws:emrcontainers/virtualCluster:VirtualCluster")]
diff --git a/sdk/dotnet/GlobalAccelerator/Accelerator.cs b/sdk/dotnet/GlobalAccelerator/Accelerator.cs
index a07665bdabb..a01586198af 100644
--- a/sdk/dotnet/GlobalAccelerator/Accelerator.cs
+++ b/sdk/dotnet/GlobalAccelerator/Accelerator.cs
@@ -31,6 +31,10 @@ namespace Pulumi.Aws.GlobalAccelerator
/// },
/// Enabled = true,
/// IpAddressType = "IPV4",
+ /// IpAddresses = new[]
+ /// {
+ /// "1.2.3.4",
+ /// },
/// });
///
/// });
@@ -77,6 +81,12 @@ public partial class Accelerator : global::Pulumi.CustomResource
[Output("ipAddressType")]
public Output IpAddressType { get; private set; } = null!;
+ ///
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
+ ///
+ [Output("ipAddresses")]
+ public Output> IpAddresses { get; private set; } = null!;
+
///
/// IP address set associated with the accelerator.
///
@@ -165,6 +175,18 @@ public sealed class AcceleratorArgs : global::Pulumi.ResourceArgs
[Input("ipAddressType")]
public Input? IpAddressType { get; set; }
+ [Input("ipAddresses")]
+ private InputList? _ipAddresses;
+
+ ///
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
+ ///
+ public InputList IpAddresses
+ {
+ get => _ipAddresses ?? (_ipAddresses = new InputList());
+ set => _ipAddresses = value;
+ }
+
///
/// The name of the accelerator.
///
@@ -221,6 +243,18 @@ public sealed class AcceleratorState : global::Pulumi.ResourceArgs
[Input("ipAddressType")]
public Input? IpAddressType { get; set; }
+ [Input("ipAddresses")]
+ private InputList? _ipAddresses;
+
+ ///
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
+ ///
+ public InputList IpAddresses
+ {
+ get => _ipAddresses ?? (_ipAddresses = new InputList());
+ set => _ipAddresses = value;
+ }
+
[Input("ipSets")]
private InputList? _ipSets;
diff --git a/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetArgs.cs b/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetArgs.cs
index 5341ec11110..e2dfa3738e7 100644
--- a/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetArgs.cs
+++ b/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetArgs.cs
@@ -16,7 +16,7 @@ public sealed class AcceleratorIpSetArgs : global::Pulumi.ResourceArgs
private InputList? _ipAddresses;
///
- /// A list of IP addresses in the IP address set.
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
///
public InputList IpAddresses
{
diff --git a/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetGetArgs.cs b/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetGetArgs.cs
index 0b88f9fc5e7..b6d72c94a97 100644
--- a/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetGetArgs.cs
+++ b/sdk/dotnet/GlobalAccelerator/Inputs/AcceleratorIpSetGetArgs.cs
@@ -16,7 +16,7 @@ public sealed class AcceleratorIpSetGetArgs : global::Pulumi.ResourceArgs
private InputList? _ipAddresses;
///
- /// A list of IP addresses in the IP address set.
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
///
public InputList IpAddresses
{
diff --git a/sdk/dotnet/GlobalAccelerator/Outputs/AcceleratorIpSet.cs b/sdk/dotnet/GlobalAccelerator/Outputs/AcceleratorIpSet.cs
index 12e6caa6adc..5fee383f4c1 100644
--- a/sdk/dotnet/GlobalAccelerator/Outputs/AcceleratorIpSet.cs
+++ b/sdk/dotnet/GlobalAccelerator/Outputs/AcceleratorIpSet.cs
@@ -14,7 +14,7 @@ namespace Pulumi.Aws.GlobalAccelerator.Outputs
public sealed class AcceleratorIpSet
{
///
- /// A list of IP addresses in the IP address set.
+ /// The IP addresses to use for BYOIP accelerators. If not specified, the service assigns IP addresses. Valid values: 1 or 2 IPv4 addresses.
///
public readonly ImmutableArray IpAddresses;
///
diff --git a/sdk/dotnet/IdentityStore/Group.cs b/sdk/dotnet/IdentityStore/Group.cs
index a4a259f7dde..543aae8238e 100644
--- a/sdk/dotnet/IdentityStore/Group.cs
+++ b/sdk/dotnet/IdentityStore/Group.cs
@@ -48,7 +48,7 @@ public partial class Group : global::Pulumi.CustomResource
public Output GroupId { get; private set; } = null!;
///
- /// The globally unique identifier for the identity store..
+ /// The globally unique identifier for the identity store.
///
[Output("identityStoreId")]
public Output IdentityStoreId { get; private set; } = null!;
@@ -112,7 +112,7 @@ public sealed class GroupArgs : global::Pulumi.ResourceArgs
public Input DisplayName { get; set; } = null!;
///
- /// The globally unique identifier for the identity store..
+ /// The globally unique identifier for the identity store.
///
[Input("identityStoreId", required: true)]
public Input IdentityStoreId { get; set; } = null!;
@@ -156,7 +156,7 @@ public InputList ExternalIds
public Input? GroupId { get; set; }
///
- /// The globally unique identifier for the identity store..
+ /// The globally unique identifier for the identity store.
///
[Input("identityStoreId")]
public Input? IdentityStoreId { get; set; }
diff --git a/sdk/dotnet/IdentityStore/Inputs/UserExternalIdArgs.cs b/sdk/dotnet/IdentityStore/Inputs/UserExternalIdArgs.cs
index 3b7d15439a2..d1c561ce75b 100644
--- a/sdk/dotnet/IdentityStore/Inputs/UserExternalIdArgs.cs
+++ b/sdk/dotnet/IdentityStore/Inputs/UserExternalIdArgs.cs
@@ -16,7 +16,7 @@ public sealed class UserExternalIdArgs : global::Pulumi.ResourceArgs
/// The identifier issued to this resource by an external identity provider.
///
[Input("id")]
- public Input? Id { get; set; }
+ public Input? Id { get; set; }
///
/// The issuer for an external identifier.
diff --git a/sdk/dotnet/IdentityStore/Inputs/UserExternalIdGetArgs.cs b/sdk/dotnet/IdentityStore/Inputs/UserExternalIdGetArgs.cs
index ba546e36a03..c0933f1e76e 100644
--- a/sdk/dotnet/IdentityStore/Inputs/UserExternalIdGetArgs.cs
+++ b/sdk/dotnet/IdentityStore/Inputs/UserExternalIdGetArgs.cs
@@ -16,7 +16,7 @@ public sealed class UserExternalIdGetArgs : global::Pulumi.ResourceArgs
/// The identifier issued to this resource by an external identity provider.
///
[Input("id")]
- public Input? Id { get; set; }
+ public Input? Id { get; set; }
///
/// The issuer for an external identifier.
diff --git a/sdk/dotnet/IdentityStore/Outputs/GetUserExternalIdResult.cs b/sdk/dotnet/IdentityStore/Outputs/GetUserExternalIdResult.cs
index 0a2d2e0c3b0..a23b9e6bc3d 100644
--- a/sdk/dotnet/IdentityStore/Outputs/GetUserExternalIdResult.cs
+++ b/sdk/dotnet/IdentityStore/Outputs/GetUserExternalIdResult.cs
@@ -16,7 +16,7 @@ public sealed class GetUserExternalIdResult
///
/// The identifier issued to this resource by an external identity provider.
///
- public readonly bool Id;
+ public readonly string Id;
///
/// The issuer for an external identifier.
///
@@ -24,7 +24,7 @@ public sealed class GetUserExternalIdResult
[OutputConstructor]
private GetUserExternalIdResult(
- bool id,
+ string id,
string issuer)
{
diff --git a/sdk/dotnet/IdentityStore/Outputs/UserExternalId.cs b/sdk/dotnet/IdentityStore/Outputs/UserExternalId.cs
index f83582115b6..83b25630fe4 100644
--- a/sdk/dotnet/IdentityStore/Outputs/UserExternalId.cs
+++ b/sdk/dotnet/IdentityStore/Outputs/UserExternalId.cs
@@ -16,7 +16,7 @@ public sealed class UserExternalId
///
/// The identifier issued to this resource by an external identity provider.
///
- public readonly bool? Id;
+ public readonly string? Id;
///
/// The issuer for an external identifier.
///
@@ -24,7 +24,7 @@ public sealed class UserExternalId
[OutputConstructor]
private UserExternalId(
- bool? id,
+ string? id,
string? issuer)
{
diff --git a/sdk/dotnet/Inspector2/DelegatedAdminAccount.cs b/sdk/dotnet/Inspector2/DelegatedAdminAccount.cs
new file mode 100644
index 00000000000..1c83807a5b2
--- /dev/null
+++ b/sdk/dotnet/Inspector2/DelegatedAdminAccount.cs
@@ -0,0 +1,133 @@
+// *** 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.Inspector2
+{
+ ///
+ /// ## Example Usage
+ /// ### Basic Usage
+ ///
+ /// ```csharp
+ /// using System.Collections.Generic;
+ /// using Pulumi;
+ /// using Aws = Pulumi.Aws;
+ ///
+ /// return await Deployment.RunAsync(() =>
+ /// {
+ /// var current = Aws.GetCallerIdentity.Invoke();
+ ///
+ /// var example = new Aws.Inspector2.DelegatedAdminAccount("example", new()
+ /// {
+ /// AccountId = current.Apply(getCallerIdentityResult => getCallerIdentityResult.AccountId),
+ /// });
+ ///
+ /// });
+ /// ```
+ ///
+ /// ## Import
+ ///
+ /// Inspector V2 Delegated Admin Account can be imported using the `account_id`, e.g.,
+ ///
+ /// ```sh
+ /// $ pulumi import aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount example 012345678901
+ /// ```
+ ///
+ [AwsResourceType("aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount")]
+ public partial class DelegatedAdminAccount : global::Pulumi.CustomResource
+ {
+ ///
+ /// Account to enable as delegated admin account.
+ ///
+ [Output("accountId")]
+ public Output AccountId { get; private set; } = null!;
+
+ ///
+ /// Status of this delegated admin account.
+ ///
+ [Output("relationshipStatus")]
+ public Output RelationshipStatus { get; private set; } = null!;
+
+
+ ///
+ /// Create a DelegatedAdminAccount 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 DelegatedAdminAccount(string name, DelegatedAdminAccountArgs args, CustomResourceOptions? options = null)
+ : base("aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount", name, args ?? new DelegatedAdminAccountArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private DelegatedAdminAccount(string name, Input id, DelegatedAdminAccountState? state = null, CustomResourceOptions? options = null)
+ : base("aws:inspector2/delegatedAdminAccount:DelegatedAdminAccount", 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 DelegatedAdminAccount 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 DelegatedAdminAccount Get(string name, Input id, DelegatedAdminAccountState? state = null, CustomResourceOptions? options = null)
+ {
+ return new DelegatedAdminAccount(name, id, state, options);
+ }
+ }
+
+ public sealed class DelegatedAdminAccountArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Account to enable as delegated admin account.
+ ///
+ [Input("accountId", required: true)]
+ public Input AccountId { get; set; } = null!;
+
+ public DelegatedAdminAccountArgs()
+ {
+ }
+ public static new DelegatedAdminAccountArgs Empty => new DelegatedAdminAccountArgs();
+ }
+
+ public sealed class DelegatedAdminAccountState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// Account to enable as delegated admin account.
+ ///
+ [Input("accountId")]
+ public Input? AccountId { get; set; }
+
+ ///
+ /// Status of this delegated admin account.
+ ///
+ [Input("relationshipStatus")]
+ public Input? RelationshipStatus { get; set; }
+
+ public DelegatedAdminAccountState()
+ {
+ }
+ public static new DelegatedAdminAccountState Empty => new DelegatedAdminAccountState();
+ }
+}
diff --git a/sdk/dotnet/NetworkManager/Link.cs b/sdk/dotnet/NetworkManager/Link.cs
index 3b076c7a28b..9c01d4ef012 100644
--- a/sdk/dotnet/NetworkManager/Link.cs
+++ b/sdk/dotnet/NetworkManager/Link.cs
@@ -24,7 +24,7 @@ namespace Pulumi.Aws.NetworkManager
/// var example = new Aws.NetworkManager.Link("example", new()
/// {
/// GlobalNetworkId = aws_networkmanager_global_network.Example.Id,
- /// SiteId = aws_networkmanager_global_site.Example.Id,
+ /// SiteId = aws_networkmanager_site.Example.Id,
/// Bandwidth = new Aws.NetworkManager.Inputs.LinkBandwidthArgs
/// {
/// UploadSpeed = 10,
diff --git a/sdk/dotnet/OpsWorks/CustomLayer.cs b/sdk/dotnet/OpsWorks/CustomLayer.cs
index 69edc446c22..a0f5ec123c6 100644
--- a/sdk/dotnet/OpsWorks/CustomLayer.cs
+++ b/sdk/dotnet/OpsWorks/CustomLayer.cs
@@ -134,6 +134,12 @@ public partial class CustomLayer : global::Pulumi.CustomResource
[Output("instanceShutdownTimeout")]
public Output InstanceShutdownTimeout { get; private set; } = null!;
+ ///
+ /// Load-based auto scaling configuration. See Load Based AutoScaling
+ ///
+ [Output("loadBasedAutoScaling")]
+ public Output LoadBasedAutoScaling { get; private set; } = null!;
+
///
/// A human-readable name for the layer.
///
@@ -346,6 +352,12 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ ///
+ /// Load-based auto scaling configuration. See Load Based AutoScaling
+ ///
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
@@ -532,6 +544,12 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ ///
+ /// Load-based auto scaling configuration. See Load Based AutoScaling
+ ///
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
diff --git a/sdk/dotnet/OpsWorks/EcsClusterLayer.cs b/sdk/dotnet/OpsWorks/EcsClusterLayer.cs
index cba51c46543..940c344c6ff 100644
--- a/sdk/dotnet/OpsWorks/EcsClusterLayer.cs
+++ b/sdk/dotnet/OpsWorks/EcsClusterLayer.cs
@@ -129,6 +129,9 @@ public partial class EcsClusterLayer : global::Pulumi.CustomResource
[Output("instanceShutdownTimeout")]
public Output InstanceShutdownTimeout { get; private set; } = null!;
+ [Output("loadBasedAutoScaling")]
+ public Output LoadBasedAutoScaling { get; private set; } = null!;
+
///
/// A human-readable name for the layer.
///
@@ -335,6 +338,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
@@ -518,6 +524,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
diff --git a/sdk/dotnet/OpsWorks/GangliaLayer.cs b/sdk/dotnet/OpsWorks/GangliaLayer.cs
index 934f1fb186d..e8f2056f604 100644
--- a/sdk/dotnet/OpsWorks/GangliaLayer.cs
+++ b/sdk/dotnet/OpsWorks/GangliaLayer.cs
@@ -123,6 +123,9 @@ public partial class GangliaLayer : global::Pulumi.CustomResource
[Output("instanceShutdownTimeout")]
public Output InstanceShutdownTimeout { get; private set; } = null!;
+ [Output("loadBasedAutoScaling")]
+ public Output LoadBasedAutoScaling { get; private set; } = null!;
+
///
/// A human-readable name for the layer.
///
@@ -344,6 +347,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
@@ -539,6 +545,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
diff --git a/sdk/dotnet/OpsWorks/HaproxyLayer.cs b/sdk/dotnet/OpsWorks/HaproxyLayer.cs
index 0f2e41fa45a..f736aeea539 100644
--- a/sdk/dotnet/OpsWorks/HaproxyLayer.cs
+++ b/sdk/dotnet/OpsWorks/HaproxyLayer.cs
@@ -135,6 +135,9 @@ public partial class HaproxyLayer : global::Pulumi.CustomResource
[Output("instanceShutdownTimeout")]
public Output InstanceShutdownTimeout { get; private set; } = null!;
+ [Output("loadBasedAutoScaling")]
+ public Output LoadBasedAutoScaling { get; private set; } = null!;
+
///
/// A human-readable name for the layer.
///
@@ -374,6 +377,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
@@ -587,6 +593,9 @@ public InputList EbsVolumes
[Input("instanceShutdownTimeout")]
public Input? InstanceShutdownTimeout { get; set; }
+ [Input("loadBasedAutoScaling")]
+ public Input? LoadBasedAutoScaling { get; set; }
+
///
/// A human-readable name for the layer.
///
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingArgs.cs
new file mode 100644
index 00000000000..9c4316a8699
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingArgs.cs
@@ -0,0 +1,38 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The downscaling settings, as defined below, used for load-based autoscaling
+ ///
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ ///
+ /// Whether load-based auto scaling is enabled for the layer.
+ ///
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ ///
+ /// The upscaling settings, as defined below, used for load-based autoscaling
+ ///
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingArgs Empty => new CustomLayerLoadBasedAutoScalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingArgs.cs
new file mode 100644
index 00000000000..3a871384e74
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingArgs.cs
@@ -0,0 +1,68 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingDownscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+
+ ///
+ /// Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.
+ ///
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ ///
+ /// The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.
+ ///
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ ///
+ /// The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.
+ ///
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ ///
+ /// The number of instances to add or remove when the load exceeds a threshold.
+ ///
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ ///
+ /// The load threshold. A value of -1 disables the threshold.
+ ///
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ ///
+ /// The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.
+ ///
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ ///
+ /// The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.
+ ///
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingDownscalingArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingDownscalingArgs Empty => new CustomLayerLoadBasedAutoScalingDownscalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingGetArgs.cs
new file mode 100644
index 00000000000..0a63d35541a
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingDownscalingGetArgs.cs
@@ -0,0 +1,68 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingDownscalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+
+ ///
+ /// Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.
+ ///
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ ///
+ /// The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.
+ ///
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ ///
+ /// The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.
+ ///
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ ///
+ /// The number of instances to add or remove when the load exceeds a threshold.
+ ///
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ ///
+ /// The load threshold. A value of -1 disables the threshold.
+ ///
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ ///
+ /// The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.
+ ///
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ ///
+ /// The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.
+ ///
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingDownscalingGetArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingDownscalingGetArgs Empty => new CustomLayerLoadBasedAutoScalingDownscalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingGetArgs.cs
new file mode 100644
index 00000000000..cbe63391fad
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingGetArgs.cs
@@ -0,0 +1,38 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The downscaling settings, as defined below, used for load-based autoscaling
+ ///
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ ///
+ /// Whether load-based auto scaling is enabled for the layer.
+ ///
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ ///
+ /// The upscaling settings, as defined below, used for load-based autoscaling
+ ///
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingGetArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingGetArgs Empty => new CustomLayerLoadBasedAutoScalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingArgs.cs
new file mode 100644
index 00000000000..2d1d2dc8c5d
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingArgs.cs
@@ -0,0 +1,68 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingUpscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+
+ ///
+ /// Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.
+ ///
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ ///
+ /// The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.
+ ///
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ ///
+ /// The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.
+ ///
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ ///
+ /// The number of instances to add or remove when the load exceeds a threshold.
+ ///
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ ///
+ /// The load threshold. A value of -1 disables the threshold.
+ ///
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ ///
+ /// The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.
+ ///
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ ///
+ /// The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.
+ ///
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingUpscalingArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingUpscalingArgs Empty => new CustomLayerLoadBasedAutoScalingUpscalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingGetArgs.cs
new file mode 100644
index 00000000000..3465eac7908
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/CustomLayerLoadBasedAutoScalingUpscalingGetArgs.cs
@@ -0,0 +1,68 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class CustomLayerLoadBasedAutoScalingUpscalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+
+ ///
+ /// Custom Cloudwatch auto scaling alarms, to be used as thresholds. This parameter takes a list of up to five alarm names, which are case sensitive and must be in the same region as the stack.
+ ///
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ ///
+ /// The CPU utilization threshold, as a percent of the available CPU. A value of -1 disables the threshold.
+ ///
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ ///
+ /// The amount of time (in minutes) after a scaling event occurs that AWS OpsWorks Stacks should ignore metrics and suppress additional scaling events.
+ ///
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ ///
+ /// The number of instances to add or remove when the load exceeds a threshold.
+ ///
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ ///
+ /// The load threshold. A value of -1 disables the threshold.
+ ///
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ ///
+ /// The memory utilization threshold, as a percent of the available memory. A value of -1 disables the threshold.
+ ///
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ ///
+ /// The amount of time, in minutes, that the load must exceed a threshold before more instances are added or removed.
+ ///
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public CustomLayerLoadBasedAutoScalingUpscalingGetArgs()
+ {
+ }
+ public static new CustomLayerLoadBasedAutoScalingUpscalingGetArgs Empty => new CustomLayerLoadBasedAutoScalingUpscalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingArgs.cs
new file mode 100644
index 00000000000..498918c4f14
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingArgs.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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingArgs Empty => new EcsClusterLayerLoadBasedAutoScalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingArgs.cs
new file mode 100644
index 00000000000..3e44db47c12
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingDownscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingDownscalingArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingDownscalingArgs Empty => new EcsClusterLayerLoadBasedAutoScalingDownscalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs.cs
new file mode 100644
index 00000000000..37ece9cf253
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs Empty => new EcsClusterLayerLoadBasedAutoScalingDownscalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingGetArgs.cs
new file mode 100644
index 00000000000..24fdc2497ce
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingGetArgs.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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingGetArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingGetArgs Empty => new EcsClusterLayerLoadBasedAutoScalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingArgs.cs
new file mode 100644
index 00000000000..66960f92bbc
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingUpscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingUpscalingArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingUpscalingArgs Empty => new EcsClusterLayerLoadBasedAutoScalingUpscalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs.cs
new file mode 100644
index 00000000000..5f075c89c4a
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs()
+ {
+ }
+ public static new EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs Empty => new EcsClusterLayerLoadBasedAutoScalingUpscalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingArgs.cs
new file mode 100644
index 00000000000..c2bb0234168
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingArgs.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.OpsWorks.Inputs
+{
+
+ public sealed class GangliaLayerLoadBasedAutoScalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public GangliaLayerLoadBasedAutoScalingArgs()
+ {
+ }
+ public static new GangliaLayerLoadBasedAutoScalingArgs Empty => new GangliaLayerLoadBasedAutoScalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingArgs.cs
new file mode 100644
index 00000000000..8782d10314c
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class GangliaLayerLoadBasedAutoScalingDownscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public GangliaLayerLoadBasedAutoScalingDownscalingArgs()
+ {
+ }
+ public static new GangliaLayerLoadBasedAutoScalingDownscalingArgs Empty => new GangliaLayerLoadBasedAutoScalingDownscalingArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingGetArgs.cs
new file mode 100644
index 00000000000..68afc3dde34
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingDownscalingGetArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class GangliaLayerLoadBasedAutoScalingDownscalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input? MemoryThreshold { get; set; }
+
+ [Input("thresholdsWaitTime")]
+ public Input? ThresholdsWaitTime { get; set; }
+
+ public GangliaLayerLoadBasedAutoScalingDownscalingGetArgs()
+ {
+ }
+ public static new GangliaLayerLoadBasedAutoScalingDownscalingGetArgs Empty => new GangliaLayerLoadBasedAutoScalingDownscalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingGetArgs.cs b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingGetArgs.cs
new file mode 100644
index 00000000000..dbafc845aea
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingGetArgs.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.OpsWorks.Inputs
+{
+
+ public sealed class GangliaLayerLoadBasedAutoScalingGetArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("downscaling")]
+ public Input? Downscaling { get; set; }
+
+ [Input("enable")]
+ public Input? Enable { get; set; }
+
+ [Input("upscaling")]
+ public Input? Upscaling { get; set; }
+
+ public GangliaLayerLoadBasedAutoScalingGetArgs()
+ {
+ }
+ public static new GangliaLayerLoadBasedAutoScalingGetArgs Empty => new GangliaLayerLoadBasedAutoScalingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingUpscalingArgs.cs b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingUpscalingArgs.cs
new file mode 100644
index 00000000000..5b5f32839ed
--- /dev/null
+++ b/sdk/dotnet/OpsWorks/Inputs/GangliaLayerLoadBasedAutoScalingUpscalingArgs.cs
@@ -0,0 +1,46 @@
+// *** 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.OpsWorks.Inputs
+{
+
+ public sealed class GangliaLayerLoadBasedAutoScalingUpscalingArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("alarms")]
+ private InputList? _alarms;
+ public InputList Alarms
+ {
+ get => _alarms ?? (_alarms = new InputList());
+ set => _alarms = value;
+ }
+
+ [Input("cpuThreshold")]
+ public Input? CpuThreshold { get; set; }
+
+ [Input("ignoreMetricsTime")]
+ public Input? IgnoreMetricsTime { get; set; }
+
+ [Input("instanceCount")]
+ public Input? InstanceCount { get; set; }
+
+ [Input("loadThreshold")]
+ public Input? LoadThreshold { get; set; }
+
+ [Input("memoryThreshold")]
+ public Input