diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e3932d5c46..e38f4076100 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ CHANGELOG ========= ## HEAD (Unreleased) - +* Update to v3.24.1 of the AWS Terraform Provider * Revert auto-naming of RDS Cluster `clusterIdentifier`. --- diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index f0d66e3f62a..4b1b3c82fa8 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -2622,6 +2622,46 @@ "types" ] }, + "aws:apigateway/DomainNameMutualTlsAuthentication:DomainNameMutualTlsAuthentication": { + "properties": { + "truststoreUri": { + "type": "string", + "description": "An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`.\nThe truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "truststoreVersion": { + "type": "string", + "description": "The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "truststoreUri" + ] + }, + "aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig": { + "properties": { + "insecureSkipVerification": { + "type": "boolean", + "description": "Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "aws:apigateway/MethodSettingsSettings:MethodSettingsSettings": { "properties": { "cacheDataEncrypted": { @@ -2873,6 +2913,31 @@ }, "type": "object" }, + "aws:apigateway/getDomainNameEndpointConfiguration:getDomainNameEndpointConfiguration": { + "properties": { + "types": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of endpoint types.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "types" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:apigateway/getRestApiEndpointConfiguration:getRestApiEndpointConfiguration": { "properties": { "types": { @@ -3098,6 +3163,36 @@ "truststoreUri" ] }, + "aws:apigatewayv2/IntegrationResponseParameter:IntegrationResponseParameter": { + "properties": { + "mappings": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A 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", + "language": { + "python": { + "mapCase": false + } + } + }, + "statusCode": { + "type": "string", + "description": "The HTTP status code in the range 200-599.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "mappings", + "statusCode" + ] + }, "aws:apigatewayv2/IntegrationTlsConfig:IntegrationTlsConfig": { "properties": { "serverNameToVerify": { @@ -6041,8 +6136,7 @@ }, "type": "object", "required": [ - "action", - "match" + "action" ] }, "aws:appmesh/RouteSpecGrpcRouteAction:RouteSpecGrpcRouteAction": { @@ -9971,6 +10065,7 @@ "properties": { "instanceWarmup": { "type": "string", + "description": "The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period.\n", "language": { "python": { "mapCase": false @@ -15420,7 +15515,7 @@ }, "provider": { "type": "string", - "description": "The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy.\n", + "description": "The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation.\n", "language": { "python": { "mapCase": false @@ -17782,6 +17877,15 @@ } } }, + "datePartitionEnabled": { + "type": "boolean", + "description": "Partition S3 bucket folders based on transaction commit dates. Defaults to `false`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "externalTableDefinition": { "type": "string", "description": "JSON document that describes how AWS DMS should interpret the data.\n", @@ -19552,7 +19656,7 @@ "properties": { "cpuCredits": { "type": "string", - "description": "The credit option for CPU usage. Can be `\"standard\"` or `\"unlimited\"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.\n", + "description": "Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.\n", "language": { "python": { "mapCase": false @@ -19566,7 +19670,7 @@ "properties": { "deleteOnTermination": { "type": "boolean", - "description": "Whether the volume should be destroyed\non instance termination (Default: `true`).\n", + "description": "Whether the volume should be destroyed on instance termination. Defaults to `true`.\n", "language": { "python": { "mapCase": false @@ -19575,7 +19679,7 @@ }, "deviceName": { "type": "string", - "description": "The name of the device to mount.\n", + "description": "Name of the device to mount.\n", "language": { "python": { "mapCase": false @@ -19584,7 +19688,7 @@ }, "encrypted": { "type": "boolean", - "description": "Enables [EBS\nencryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)\non the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection.\n", + "description": "Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection.\n", "language": { "python": { "mapCase": false @@ -19593,7 +19697,7 @@ }, "iops": { "type": "integer", - "description": "The amount of provisioned\n[IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).\nOnly valid for volume_type of `\"io1\"`, `\"io2\"` or `\"gp3\"`.\n", + "description": "Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`.\n", "language": { "python": { "mapCase": false @@ -19611,7 +19715,19 @@ }, "snapshotId": { "type": "string", - "description": "The Snapshot ID to mount.\n", + "description": "Snapshot ID to mount.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the device.\n", "language": { "python": { "mapCase": false @@ -19620,7 +19736,7 @@ }, "throughput": { "type": "integer", - "description": "The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `\"gp3\"`.\n", + "description": "Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`.\n", "language": { "python": { "mapCase": false @@ -19629,6 +19745,7 @@ }, "volumeId": { "type": "string", + "description": "ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`.\n", "language": { "python": { "mapCase": false @@ -19637,7 +19754,7 @@ }, "volumeSize": { "type": "integer", - "description": "The size of the volume in gibibytes (GiB).\n", + "description": "Size of the volume in gibibytes (GiB).\n", "language": { "python": { "mapCase": false @@ -19646,7 +19763,7 @@ }, "volumeType": { "type": "string", - "description": "The type of volume. Can be `\"standard\"`, `\"gp2\"`, `\"gp3\"`, `\"io1\"`, `\"io2\"`, `\"sc1\"`, or `\"st1\"`. (Default: `\"gp2\"`).\n", + "description": "Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`.\n", "language": { "python": { "mapCase": false @@ -19678,7 +19795,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether Nitro Enclaves will be enabled on the instance. (Default: `\"false\"`).\n", + "description": "Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`.\n", "language": { "python": { "mapCase": false @@ -19717,7 +19834,7 @@ }, "virtualName": { "type": "string", - "description": "The [Instance Store Device\nName](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames)\n(e.g. `\"ephemeral0\"`).\n", + "description": "[Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`).\n", "language": { "python": { "mapCase": false @@ -19734,7 +19851,7 @@ "properties": { "httpEndpoint": { "type": "string", - "description": "Whether the metadata service is available. Can be `\"enabled\"` or `\"disabled\"`. (Default: `\"enabled\"`).\n", + "description": "Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`.\n", "language": { "python": { "mapCase": false @@ -19743,7 +19860,7 @@ }, "httpPutResponseHopLimit": { "type": "integer", - "description": "The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`).\n", + "description": "Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`.\n", "language": { "python": { "mapCase": false @@ -19752,7 +19869,7 @@ }, "httpTokens": { "type": "string", - "description": "Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `\"optional\"` or `\"required\"`. (Default: `\"optional\"`).\n", + "description": "Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`.\n", "language": { "python": { "mapCase": false @@ -19784,7 +19901,7 @@ }, "deviceIndex": { "type": "integer", - "description": "The integer index of the network interface attachment. Limited by instance type.\n", + "description": "Integer index of the network interface attachment. Limited by instance type.\n", "language": { "python": { "mapCase": false @@ -19793,7 +19910,7 @@ }, "networkInterfaceId": { "type": "string", - "description": "The ID of the network interface to attach.\n", + "description": "ID of the network interface to attach.\n", "language": { "python": { "mapCase": false @@ -19848,7 +19965,7 @@ "properties": { "deleteOnTermination": { "type": "boolean", - "description": "Whether the volume should be destroyed\non instance termination (Default: `true`).\n", + "description": "Whether the volume should be destroyed on instance termination. Defaults to `true`.\n", "language": { "python": { "mapCase": false @@ -19857,7 +19974,7 @@ }, "deviceName": { "type": "string", - "description": "The name of the device to mount.\n", + "description": "Name of the device to mount.\n", "language": { "python": { "mapCase": false @@ -19866,7 +19983,7 @@ }, "encrypted": { "type": "boolean", - "description": "Enable volume encryption. (Default: `false`). Must be configured to perform drift detection.\n", + "description": "Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection.\n", "language": { "python": { "mapCase": false @@ -19875,7 +19992,7 @@ }, "iops": { "type": "integer", - "description": "The amount of provisioned\n[IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `\"io1\"`, `\"io2\"` or `\"gp3\"`.\n", + "description": "Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`.\n", "language": { "python": { "mapCase": false @@ -19891,9 +20008,21 @@ } } }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the device.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "throughput": { "type": "integer", - "description": "The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `\"gp3\"`.\n", + "description": "Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`.\n", "language": { "python": { "mapCase": false @@ -19902,6 +20031,7 @@ }, "volumeId": { "type": "string", + "description": "ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`.\n", "language": { "python": { "mapCase": false @@ -19910,7 +20040,7 @@ }, "volumeSize": { "type": "integer", - "description": "The size of the volume in gibibytes (GiB).\n", + "description": "Size of the volume in gibibytes (GiB).\n", "language": { "python": { "mapCase": false @@ -19919,7 +20049,7 @@ }, "volumeType": { "type": "string", - "description": "The type of volume. Can be `\"standard\"`, `\"gp2\"`, `\"gp3\"`, `\"io1\"`, `\"io2\"`, `\"sc1\"`, or `\"st1\"`. (Default: `\"gp2\"`).\n", + "description": "Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`.\n", "language": { "python": { "mapCase": false @@ -23549,7 +23679,7 @@ "properties": { "cpuCredits": { "type": "string", - "description": "The credit option for CPU usage. Can be `\"standard\"` or `\"unlimited\"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.\n", + "description": "Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default.\n", "language": { "python": { "mapCase": false @@ -23563,7 +23693,7 @@ "properties": { "deleteOnTermination": { "type": "boolean", - "description": "Whether the volume should be destroyed\non instance termination (Default: `true`).\n", + "description": "Whether the volume should be destroyed on instance termination. Defaults to `true`.\n", "language": { "python": { "mapCase": false @@ -23572,7 +23702,7 @@ }, "deviceName": { "type": "string", - "description": "The name of the device to mount.\n", + "description": "Name of the device to mount.\n", "language": { "python": { "mapCase": false @@ -23581,7 +23711,7 @@ }, "encrypted": { "type": "boolean", - "description": "Enables [EBS\nencryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)\non the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection.\n", + "description": "Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection.\n", "language": { "python": { "mapCase": false @@ -23590,7 +23720,7 @@ }, "iops": { "type": "integer", - "description": "The amount of provisioned\n[IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html).\nOnly valid for volume_type of `\"io1\"`, `\"io2\"` or `\"gp3\"`.\n", + "description": "Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`.\n", "language": { "python": { "mapCase": false @@ -23608,7 +23738,19 @@ }, "snapshotId": { "type": "string", - "description": "The Snapshot ID to mount.\n", + "description": "Snapshot ID to mount.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the device.\n", "language": { "python": { "mapCase": false @@ -23617,7 +23759,7 @@ }, "throughput": { "type": "integer", - "description": "The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `\"gp3\"`.\n", + "description": "Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`.\n", "language": { "python": { "mapCase": false @@ -23634,7 +23776,7 @@ }, "volumeSize": { "type": "integer", - "description": "The size of the volume in gibibytes (GiB).\n", + "description": "Size of the volume in gibibytes (GiB).\n", "language": { "python": { "mapCase": false @@ -23643,7 +23785,7 @@ }, "volumeType": { "type": "string", - "description": "The type of volume. Can be `\"standard\"`, `\"gp2\"`, `\"gp3\"`, `\"io1\"`, `\"io2\"`, `\"sc1\"`, or `\"st1\"`. (Default: `\"gp2\"`).\n", + "description": "Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`.\n", "language": { "python": { "mapCase": false @@ -23675,7 +23817,7 @@ "properties": { "enabled": { "type": "boolean", - "description": "Whether Nitro Enclaves will be enabled on the instance. (Default: `\"false\"`).\n", + "description": "Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`.\n", "language": { "python": { "mapCase": false @@ -23714,7 +23856,7 @@ }, "virtualName": { "type": "string", - "description": "The [Instance Store Device\nName](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames)\n(e.g. `\"ephemeral0\"`).\n", + "description": "[Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`).\n", "language": { "python": { "mapCase": false @@ -23731,7 +23873,7 @@ "properties": { "httpEndpoint": { "type": "string", - "description": "Whether the metadata service is available. Can be `\"enabled\"` or `\"disabled\"`. (Default: `\"enabled\"`).\n", + "description": "Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`.\n", "language": { "python": { "mapCase": false @@ -23740,7 +23882,7 @@ }, "httpPutResponseHopLimit": { "type": "integer", - "description": "The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`).\n", + "description": "Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`.\n", "language": { "python": { "mapCase": false @@ -23749,7 +23891,7 @@ }, "httpTokens": { "type": "string", - "description": "Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `\"optional\"` or `\"required\"`. (Default: `\"optional\"`).\n", + "description": "Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`.\n", "language": { "python": { "mapCase": false @@ -23781,7 +23923,7 @@ }, "deviceIndex": { "type": "integer", - "description": "The integer index of the network interface attachment. Limited by instance type.\n", + "description": "Integer index of the network interface attachment. Limited by instance type.\n", "language": { "python": { "mapCase": false @@ -23790,7 +23932,7 @@ }, "networkInterfaceId": { "type": "string", - "description": "The ID of the network interface to attach.\n", + "description": "ID of the network interface to attach.\n", "language": { "python": { "mapCase": false @@ -23808,7 +23950,7 @@ "properties": { "deleteOnTermination": { "type": "boolean", - "description": "Whether the volume should be destroyed\non instance termination (Default: `true`).\n", + "description": "Whether the volume should be destroyed on instance termination. Defaults to `true`.\n", "language": { "python": { "mapCase": false @@ -23817,7 +23959,7 @@ }, "deviceName": { "type": "string", - "description": "The name of the device to mount.\n", + "description": "Name of the device to mount.\n", "language": { "python": { "mapCase": false @@ -23826,7 +23968,7 @@ }, "encrypted": { "type": "boolean", - "description": "Enable volume encryption. (Default: `false`). Must be configured to perform drift detection.\n", + "description": "Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection.\n", "language": { "python": { "mapCase": false @@ -23835,7 +23977,7 @@ }, "iops": { "type": "integer", - "description": "The amount of provisioned\n[IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `\"io1\"`, `\"io2\"` or `\"gp3\"`.\n", + "description": "Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`.\n", "language": { "python": { "mapCase": false @@ -23851,9 +23993,21 @@ } } }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the device.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "throughput": { "type": "integer", - "description": "The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `\"gp3\"`.\n", + "description": "Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`.\n", "language": { "python": { "mapCase": false @@ -23870,7 +24024,7 @@ }, "volumeSize": { "type": "integer", - "description": "The size of the volume in gibibytes (GiB).\n", + "description": "Size of the volume in gibibytes (GiB).\n", "language": { "python": { "mapCase": false @@ -23879,7 +24033,7 @@ }, "volumeType": { "type": "string", - "description": "The type of volume. Can be `\"standard\"`, `\"gp2\"`, `\"gp3\"`, `\"io1\"`, `\"io2\"`, `\"sc1\"`, or `\"st1\"`. (Default: `\"gp2\"`).\n", + "description": "Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`.\n", "language": { "python": { "mapCase": false @@ -24430,6 +24584,18 @@ } } }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the Instance.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "throughput": { "type": "integer", "description": "The throughput of the volume, in MiB/s.\n", @@ -24474,6 +24640,7 @@ "iops", "kmsKeyId", "snapshotId", + "tags", "throughput", "volumeId", "volumeSize", @@ -24663,6 +24830,18 @@ } } }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags assigned to the Instance.\n", + "language": { + "python": { + "mapCase": false + } + } + }, "throughput": { "type": "integer", "description": "The throughput of the volume, in MiB/s.\n", @@ -24706,6 +24885,7 @@ "encrypted", "iops", "kmsKeyId", + "tags", "throughput", "volumeId", "volumeSize", @@ -35224,6 +35404,88 @@ "unitType" ] }, + "aws:fms/PolicyExcludeMap:PolicyExcludeMap": { + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "orgunits": { + "type": "array", + "items": { + "type": "string" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:fms/PolicyIncludeMap:PolicyIncludeMap": { + "properties": { + "accounts": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "orgunits": { + "type": "array", + "items": { + "type": "string" + }, + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:fms/PolicySecurityServicePolicyData:PolicySecurityServicePolicyData": { + "properties": { + "managedServiceData": { + "type": "string", + "description": "Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "type": { + "type": "string", + "description": "valid values are `BLOCK` or `COUNT`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "type" + ] + }, "aws:fsx/WindowsFileSystemSelfManagedActiveDirectory:WindowsFileSystemSelfManagedActiveDirectory": { "properties": { "dnsIps": { @@ -38886,6 +39148,60 @@ "type" ] }, + "aws:identitystore/getGroupFilter:getGroupFilter": { + "properties": { + "attributePath": { + "type": "string", + "description": "The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "attributeValue": { + "type": "string", + "description": "The value for an attribute.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "attributePath", + "attributeValue" + ] + }, + "aws:identitystore/getUserFilter:getUserFilter": { + "properties": { + "attributePath": { + "type": "string", + "description": "The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "attributeValue": { + "type": "string", + "description": "The value for an attribute.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "attributePath", + "attributeValue" + ] + }, "aws:imagebuilder/DistributionConfigurationDistribution:DistributionConfigurationDistribution": { "properties": { "amiDistributionConfiguration": { @@ -58164,6 +58480,271 @@ "repositoryUrl" ] }, + "aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings": { + "properties": { + "executionRole": { + "type": "string", + "description": "The execution role ARN for the user.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "jupyterServerAppSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettings:DomainDefaultUserSettingsJupyterServerAppSettings", + "description": "The Jupyter server's app settings. See Jupyter Server App Settings below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "kernelGatewayAppSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettings:DomainDefaultUserSettingsKernelGatewayAppSettings", + "description": "The kernel gateway app settings. See Kernel Gateway App Settings below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "securityGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The security groups.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sharingSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsSharingSettings:DomainDefaultUserSettingsSharingSettings", + "description": "The sharing settings. See Sharing Settings below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "tensorBoardAppSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsTensorBoardAppSettings:DomainDefaultUserSettingsTensorBoardAppSettings", + "description": "The TensorBoard app settings. See TensorBoard App Settings below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "executionRole" + ] + }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettings:DomainDefaultUserSettingsJupyterServerAppSettings": { + "properties": { + "defaultResourceSpec": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "defaultResourceSpec" + ] + }, + "aws:sagemaker/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec": { + "properties": { + "instanceType": { + "type": "string", + "description": "The instance type.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sagemakerImageArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SageMaker image created on the instance.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettings:DomainDefaultUserSettingsKernelGatewayAppSettings": { + "properties": { + "customImages": { + "type": "array", + "items": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage:DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage" + }, + "description": "A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "defaultResourceSpec": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "defaultResourceSpec" + ] + }, + "aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage:DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage": { + "properties": { + "appImageConfigName": { + "type": "string", + "description": "The name of the App Image Config.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "imageName": { + "type": "string", + "description": "The name of the Custom Image.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "imageVersionNumber": { + "type": "integer", + "description": "The version number of the Custom Image.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "appImageConfigName", + "imageName" + ] + }, + "aws:sagemaker/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec": { + "properties": { + "instanceType": { + "type": "string", + "description": "The instance type.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sagemakerImageArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SageMaker image created on the instance.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsSharingSettings:DomainDefaultUserSettingsSharingSettings": { + "properties": { + "notebookOutputOption": { + "type": "string", + "description": "Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "s3KmsKeyId": { + "type": "string", + "description": "When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "s3OutputPath": { + "type": "string", + "description": "When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:sagemaker/DomainDefaultUserSettingsTensorBoardAppSettings:DomainDefaultUserSettingsTensorBoardAppSettings": { + "properties": { + "defaultResourceSpec": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec", + "description": "The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "defaultResourceSpec" + ] + }, + "aws:sagemaker/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec:DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec": { + "properties": { + "instanceType": { + "type": "string", + "description": "The instance type.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "sagemakerImageArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SageMaker image created on the instance.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "aws:sagemaker/EndpointConfigurationDataCaptureConfig:EndpointConfigurationDataCaptureConfig": { "properties": { "captureContentTypeHeader": { @@ -137333,6 +137914,74 @@ }, "type": "object" }, + "aws:workspaces/DirectoryWorkspaceAccessProperties:DirectoryWorkspaceAccessProperties": { + "properties": { + "deviceTypeAndroid": { + "type": "string", + "description": "Indicates whether users can use Android devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeChromeos": { + "type": "string", + "description": "Indicates whether users can use Chromebooks to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeIos": { + "type": "string", + "description": "Indicates whether users can use iOS devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeOsx": { + "type": "string", + "description": "Indicates whether users can use macOS clients to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeWeb": { + "type": "string", + "description": "Indicates whether users can access their WorkSpaces through a web browser.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeWindows": { + "type": "string", + "description": "Indicates whether users can use Windows clients to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeZeroclient": { + "type": "string", + "description": "Indicates whether users can use zero client devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties": { "properties": { "customSecurityGroupId": { @@ -137594,6 +138243,88 @@ } } }, + "aws:workspaces/getDirectoryWorkspaceAccessProperty:getDirectoryWorkspaceAccessProperty": { + "properties": { + "deviceTypeAndroid": { + "type": "string", + "description": "(Optional) Indicates whether users can use Android devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeChromeos": { + "type": "string", + "description": "(Optional) Indicates whether users can use Chromebooks to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeIos": { + "type": "string", + "description": "(Optional) Indicates whether users can use iOS devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeOsx": { + "type": "string", + "description": "(Optional) Indicates whether users can use macOS clients to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeWeb": { + "type": "string", + "description": "(Optional) Indicates whether users can access their WorkSpaces through a web browser.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeWindows": { + "type": "string", + "description": "(Optional) Indicates whether users can use Windows clients to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "deviceTypeZeroclient": { + "type": "string", + "description": "(Optional) Indicates whether users can use zero client devices to access their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "deviceTypeAndroid", + "deviceTypeChromeos", + "deviceTypeIos", + "deviceTypeOsx", + "deviceTypeWeb", + "deviceTypeWindows", + "deviceTypeZeroclient" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, "aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties": { "properties": { "customSecurityGroupId": { @@ -137644,7 +138375,11 @@ }, "type": "object", "required": [ - "customSecurityGroupId" + "customSecurityGroupId", + "defaultOu", + "enableInternetAccess", + "enableMaintenanceMode", + "userEnabledAsLocalAdministrator" ], "language": { "nodejs": { @@ -139969,6 +140704,10 @@ "$ref": "#/types/aws:apigateway/DomainNameEndpointConfiguration:DomainNameEndpointConfiguration", "description": "Configuration block defining API endpoint information including type. Defined below.\n" }, + "mutualTlsAuthentication": { + "$ref": "#/types/aws:apigateway/DomainNameMutualTlsAuthentication:DomainNameMutualTlsAuthentication", + "description": "The mutual TLS authentication configuration for the domain name. Defined below.\n" + }, "regionalCertificateArn": { "type": "string", "description": "The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.\n" @@ -140042,6 +140781,10 @@ "$ref": "#/types/aws:apigateway/DomainNameEndpointConfiguration:DomainNameEndpointConfiguration", "description": "Configuration block defining API endpoint information including type. Defined below.\n" }, + "mutualTlsAuthentication": { + "$ref": "#/types/aws:apigateway/DomainNameMutualTlsAuthentication:DomainNameMutualTlsAuthentication", + "description": "The mutual TLS authentication configuration for the domain name. Defined below.\n" + }, "regionalCertificateArn": { "type": "string", "description": "The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.\n" @@ -140117,6 +140860,10 @@ "$ref": "#/types/aws:apigateway/DomainNameEndpointConfiguration:DomainNameEndpointConfiguration", "description": "Configuration block defining API endpoint information including type. Defined below.\n" }, + "mutualTlsAuthentication": { + "$ref": "#/types/aws:apigateway/DomainNameMutualTlsAuthentication:DomainNameMutualTlsAuthentication", + "description": "The mutual TLS authentication configuration for the domain name. Defined below.\n" + }, "regionalCertificateArn": { "type": "string", "description": "The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`.\n" @@ -140216,6 +140963,10 @@ "type": "integer", "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.\n" }, + "tlsConfig": { + "$ref": "#/types/aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig", + "description": "Configuration block specifying the TLS configuration for an integration. Defined below.\n" + }, "type": { "type": "string", "description": "The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.\n" @@ -140308,6 +141059,10 @@ "type": "integer", "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.\n" }, + "tlsConfig": { + "$ref": "#/types/aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig", + "description": "Configuration block specifying the TLS configuration for an integration. Defined below.\n" + }, "type": { "type": "string", "description": "The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.\n" @@ -140400,6 +141155,10 @@ "type": "integer", "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds.\n" }, + "tlsConfig": { + "$ref": "#/types/aws:apigateway/IntegrationTlsConfig:IntegrationTlsConfig", + "description": "Configuration block specifying the TLS configuration for an integration. Defined below.\n" + }, "type": { "type": "string", "description": "The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC.\n" @@ -140595,6 +141354,10 @@ "type": "string", "description": "The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)\n" }, + "operationName": { + "type": "string", + "description": "The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.\n" + }, "requestModels": { "type": "object", "additionalProperties": { @@ -140652,6 +141415,10 @@ "type": "string", "description": "The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)\n" }, + "operationName": { + "type": "string", + "description": "The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.\n" + }, "requestModels": { "type": "object", "additionalProperties": { @@ -140720,6 +141487,10 @@ "type": "string", "description": "The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`)\n" }, + "operationName": { + "type": "string", + "description": "The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb.\n" + }, "requestModels": { "type": "object", "additionalProperties": { @@ -140893,7 +141664,7 @@ } }, "aws:apigateway/methodSettings:MethodSettings": { - "description": "Provides an API Gateway Method Settings, e.g. logging or monitoring.\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 testRestApi = new aws.apigateway.RestApi(\"testRestApi\", {description: \"This is my API for demonstration purposes\"});\nconst testResource = new aws.apigateway.Resource(\"testResource\", {\n restApi: testRestApi.id,\n parentId: testRestApi.rootResourceId,\n pathPart: \"mytestresource\",\n});\nconst testMethod = new aws.apigateway.Method(\"testMethod\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: \"GET\",\n authorization: \"NONE\",\n});\nconst testIntegration = new aws.apigateway.Integration(\"testIntegration\", {\n restApi: testRestApi.id,\n resourceId: testResource.id,\n httpMethod: testMethod.httpMethod,\n type: \"MOCK\",\n requestTemplates: {\n \"application/xml\": `{\n \"body\" : $input.json('$')\n}\n`,\n },\n});\nconst testDeployment = new aws.apigateway.Deployment(\"testDeployment\", {\n restApi: testRestApi.id,\n stageName: \"dev\",\n}, {\n dependsOn: [testIntegration],\n});\nconst testStage = new aws.apigateway.Stage(\"testStage\", {\n stageName: \"prod\",\n restApi: testRestApi.id,\n deployment: testDeployment.id,\n});\nconst methodSettings = new aws.apigateway.MethodSettings(\"methodSettings\", {\n restApi: testRestApi.id,\n stageName: testStage.stageName,\n methodPath: pulumi.interpolate`${testResource.pathPart}/${testMethod.httpMethod}`,\n settings: {\n metricsEnabled: true,\n loggingLevel: \"INFO\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_rest_api = aws.apigateway.RestApi(\"testRestApi\", description=\"This is my API for demonstration purposes\")\ntest_resource = aws.apigateway.Resource(\"testResource\",\n rest_api=test_rest_api.id,\n parent_id=test_rest_api.root_resource_id,\n path_part=\"mytestresource\")\ntest_method = aws.apigateway.Method(\"testMethod\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=\"GET\",\n authorization=\"NONE\")\ntest_integration = aws.apigateway.Integration(\"testIntegration\",\n rest_api=test_rest_api.id,\n resource_id=test_resource.id,\n http_method=test_method.http_method,\n type=\"MOCK\",\n request_templates={\n \"application/xml\": \"\"\"{\n \"body\" : $input.json('$')\n}\n\"\"\",\n })\ntest_deployment = aws.apigateway.Deployment(\"testDeployment\",\n rest_api=test_rest_api.id,\n stage_name=\"dev\",\n opts=pulumi.ResourceOptions(depends_on=[test_integration]))\ntest_stage = aws.apigateway.Stage(\"testStage\",\n stage_name=\"prod\",\n rest_api=test_rest_api.id,\n deployment=test_deployment.id)\nmethod_settings = aws.apigateway.MethodSettings(\"methodSettings\",\n rest_api=test_rest_api.id,\n stage_name=test_stage.stage_name,\n method_path=pulumi.Output.all(test_resource.path_part, test_method.http_method).apply(lambda path_part, http_method: f\"{path_part}/{http_method}\"),\n settings=aws.apigateway.MethodSettingsSettingsArgs(\n metrics_enabled=True,\n logging_level=\"INFO\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var testRestApi = new Aws.ApiGateway.RestApi(\"testRestApi\", new Aws.ApiGateway.RestApiArgs\n {\n Description = \"This is my API for demonstration purposes\",\n });\n var testResource = new Aws.ApiGateway.Resource(\"testResource\", new Aws.ApiGateway.ResourceArgs\n {\n RestApi = testRestApi.Id,\n ParentId = testRestApi.RootResourceId,\n PathPart = \"mytestresource\",\n });\n var testMethod = new Aws.ApiGateway.Method(\"testMethod\", new Aws.ApiGateway.MethodArgs\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = \"GET\",\n Authorization = \"NONE\",\n });\n var testIntegration = new Aws.ApiGateway.Integration(\"testIntegration\", new Aws.ApiGateway.IntegrationArgs\n {\n RestApi = testRestApi.Id,\n ResourceId = testResource.Id,\n HttpMethod = testMethod.HttpMethod,\n Type = \"MOCK\",\n RequestTemplates = \n {\n { \"application/xml\", @\"{\n \"\"body\"\" : $input.json('$')\n}\n\" },\n },\n });\n var testDeployment = new Aws.ApiGateway.Deployment(\"testDeployment\", new Aws.ApiGateway.DeploymentArgs\n {\n RestApi = testRestApi.Id,\n StageName = \"dev\",\n }, new CustomResourceOptions\n {\n DependsOn = \n {\n testIntegration,\n },\n });\n var testStage = new Aws.ApiGateway.Stage(\"testStage\", new Aws.ApiGateway.StageArgs\n {\n StageName = \"prod\",\n RestApi = testRestApi.Id,\n Deployment = testDeployment.Id,\n });\n var methodSettings = new Aws.ApiGateway.MethodSettings(\"methodSettings\", new Aws.ApiGateway.MethodSettingsArgs\n {\n RestApi = testRestApi.Id,\n StageName = testStage.StageName,\n MethodPath = Output.Tuple(testResource.PathPart, testMethod.HttpMethod).Apply(values =\u003e\n {\n var pathPart = values.Item1;\n var httpMethod = values.Item2;\n return $\"{pathPart}/{httpMethod}\";\n }),\n Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs\n {\n MetricsEnabled = true,\n LoggingLevel = \"INFO\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestRestApi, err := apigateway.NewRestApi(ctx, \"testRestApi\", \u0026apigateway.RestApiArgs{\n\t\t\tDescription: pulumi.String(\"This is my API for demonstration purposes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestResource, err := apigateway.NewResource(ctx, \"testResource\", \u0026apigateway.ResourceArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tParentId: testRestApi.RootResourceId,\n\t\t\tPathPart: pulumi.String(\"mytestresource\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestMethod, err := apigateway.NewMethod(ctx, \"testMethod\", \u0026apigateway.MethodArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: pulumi.String(\"GET\"),\n\t\t\tAuthorization: pulumi.String(\"NONE\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestIntegration, err := apigateway.NewIntegration(ctx, \"testIntegration\", \u0026apigateway.IntegrationArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tResourceId: testResource.ID(),\n\t\t\tHttpMethod: testMethod.HttpMethod,\n\t\t\tType: pulumi.String(\"MOCK\"),\n\t\t\tRequestTemplates: pulumi.StringMap{\n\t\t\t\t\"application/xml\": pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v\", \"{\\n\", \" \\\"body\\\" : \", \"$\", \"input.json('\", \"$\", \"')\\n\", \"}\\n\")),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestDeployment, err := apigateway.NewDeployment(ctx, \"testDeployment\", \u0026apigateway.DeploymentArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tStageName: pulumi.String(\"dev\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\ttestIntegration,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestStage, err := apigateway.NewStage(ctx, \"testStage\", \u0026apigateway.StageArgs{\n\t\t\tStageName: pulumi.String(\"prod\"),\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tDeployment: testDeployment.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewMethodSettings(ctx, \"methodSettings\", \u0026apigateway.MethodSettingsArgs{\n\t\t\tRestApi: testRestApi.ID(),\n\t\t\tStageName: testStage.StageName,\n\t\t\tMethodPath: pulumi.All(testResource.PathPart, testMethod.HttpMethod).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\tpathPart := _args[0].(string)\n\t\t\t\thttpMethod := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v%v%v\", pathPart, \"/\", httpMethod), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tSettings: \u0026apigateway.MethodSettingsSettingsArgs{\n\t\t\t\tMetricsEnabled: pulumi.Bool(true),\n\t\t\t\tLoggingLevel: pulumi.String(\"INFO\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g.\n\n```sh\n $ pulumi import aws:apigateway/methodSettings:MethodSettings example 12345abcde/example/test/GET\n```\n\n ", + "description": "Provides an API Gateway Method Settings, e.g. logging or monitoring.\n\n\n## Import\n\n`aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g.\n\n```sh\n $ pulumi import aws:apigateway/methodSettings:MethodSettings example 12345abcde/example/test/GET\n```\n\n ", "properties": { "methodPath": { "type": "string", @@ -141256,7 +142027,7 @@ } }, "aws:apigateway/response:Response": { - "description": "Provides an API Gateway Gateway Response for a REST API 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 main = new aws.apigateway.RestApi(\"main\", {});\nconst test = new aws.apigateway.Response(\"test\", {\n restApiId: main.id,\n statusCode: \"401\",\n responseType: \"UNAUTHORIZED\",\n responseTemplates: {\n \"application/json\": `{'message':$context.error.messageString}`,\n },\n responseParameters: {\n \"gatewayresponse.header.Authorization\": \"'Basic'\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.apigateway.RestApi(\"main\")\ntest = aws.apigateway.Response(\"test\",\n rest_api_id=main.id,\n status_code=\"401\",\n response_type=\"UNAUTHORIZED\",\n response_templates={\n \"application/json\": \"{'message':$context.error.messageString}\",\n },\n response_parameters={\n \"gatewayresponse.header.Authorization\": \"'Basic'\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var main = new Aws.ApiGateway.RestApi(\"main\", new Aws.ApiGateway.RestApiArgs\n {\n });\n var test = new Aws.ApiGateway.Response(\"test\", new Aws.ApiGateway.ResponseArgs\n {\n RestApiId = main.Id,\n StatusCode = \"401\",\n ResponseType = \"UNAUTHORIZED\",\n ResponseTemplates = \n {\n { \"application/json\", \"{'message':$context.error.messageString}\" },\n },\n ResponseParameters = \n {\n { \"gatewayresponse.header.Authorization\", \"'Basic'\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := apigateway.NewRestApi(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewResponse(ctx, \"test\", \u0026apigateway.ResponseArgs{\n\t\t\tRestApiId: main.ID(),\n\t\t\tStatusCode: pulumi.String(\"401\"),\n\t\t\tResponseType: pulumi.String(\"UNAUTHORIZED\"),\n\t\t\tResponseTemplates: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(fmt.Sprintf(\"%v%v%v\", \"{'message':\", \"$\", \"context.error.messageString}\")),\n\t\t\t},\n\t\t\tResponseParameters: pulumi.StringMap{\n\t\t\t\t\"gatewayresponse.header.Authorization\": pulumi.String(\"'Basic'\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_api_gateway_gateway_response` can be imported using `REST-API-ID/RESPONSE-TYPE`, e.g.\n\n```sh\n $ pulumi import aws:apigateway/response:Response example 12345abcde/UNAUTHORIZED\n```\n\n ", + "description": "Provides an API Gateway Gateway Response for a REST API 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 main = new aws.apigateway.RestApi(\"main\", {});\nconst test = new aws.apigateway.Response(\"test\", {\n restApiId: main.id,\n statusCode: \"401\",\n responseType: \"UNAUTHORIZED\",\n responseTemplates: {\n \"application/json\": `{\"message\":$context.error.messageString}`,\n },\n responseParameters: {\n \"gatewayresponse.header.Authorization\": \"'Basic'\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.apigateway.RestApi(\"main\")\ntest = aws.apigateway.Response(\"test\",\n rest_api_id=main.id,\n status_code=\"401\",\n response_type=\"UNAUTHORIZED\",\n response_templates={\n \"application/json\": \"{\\\"message\\\":$context.error.messageString}\",\n },\n response_parameters={\n \"gatewayresponse.header.Authorization\": \"'Basic'\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var main = new Aws.ApiGateway.RestApi(\"main\", new Aws.ApiGateway.RestApiArgs\n {\n });\n var test = new Aws.ApiGateway.Response(\"test\", new Aws.ApiGateway.ResponseArgs\n {\n RestApiId = main.Id,\n StatusCode = \"401\",\n ResponseType = \"UNAUTHORIZED\",\n ResponseTemplates = \n {\n { \"application/json\", \"{\\\"message\\\":$context.error.messageString}\" },\n },\n ResponseParameters = \n {\n { \"gatewayresponse.header.Authorization\", \"'Basic'\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := apigateway.NewRestApi(ctx, \"main\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = apigateway.NewResponse(ctx, \"test\", \u0026apigateway.ResponseArgs{\n\t\t\tRestApiId: main.ID(),\n\t\t\tStatusCode: pulumi.String(\"401\"),\n\t\t\tResponseType: pulumi.String(\"UNAUTHORIZED\"),\n\t\t\tResponseTemplates: pulumi.StringMap{\n\t\t\t\t\"application/json\": pulumi.String(fmt.Sprintf(\"%v%v%v\", \"{\\\"message\\\":\", \"$\", \"context.error.messageString}\")),\n\t\t\t},\n\t\t\tResponseParameters: pulumi.StringMap{\n\t\t\t\t\"gatewayresponse.header.Authorization\": pulumi.String(\"'Basic'\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n`aws_api_gateway_gateway_response` can be imported using `REST-API-ID/RESPONSE-TYPE`, e.g.\n\n```sh\n $ pulumi import aws:apigateway/response:Response example 12345abcde/UNAUTHORIZED\n```\n\n ", "properties": { "responseParameters": { "type": "object", @@ -141384,6 +142155,10 @@ "type": "string", "description": "The description of the REST API\n" }, + "disableExecuteApiEndpoint": { + "type": "boolean", + "description": "Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`.\n" + }, "endpointConfiguration": { "$ref": "#/types/aws:apigateway/RestApiEndpointConfiguration:RestApiEndpointConfiguration", "description": "Nested argument defining API endpoint configuration including endpoint type. Defined below.\n" @@ -141400,6 +142175,13 @@ "type": "string", "description": "The name of the REST API\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).\n" + }, "policy": { "type": "string", "description": "JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead.\n" @@ -141445,6 +142227,10 @@ "type": "string", "description": "The description of the REST API\n" }, + "disableExecuteApiEndpoint": { + "type": "boolean", + "description": "Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`.\n" + }, "endpointConfiguration": { "$ref": "#/types/aws:apigateway/RestApiEndpointConfiguration:RestApiEndpointConfiguration", "description": "Nested argument defining API endpoint configuration including endpoint type. Defined below.\n" @@ -141457,6 +142243,13 @@ "type": "string", "description": "The name of the REST API\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).\n" + }, "policy": { "type": "string", "description": "JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead.\n" @@ -141499,6 +142292,10 @@ "type": "string", "description": "The description of the REST API\n" }, + "disableExecuteApiEndpoint": { + "type": "boolean", + "description": "Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`.\n" + }, "endpointConfiguration": { "$ref": "#/types/aws:apigateway/RestApiEndpointConfiguration:RestApiEndpointConfiguration", "description": "Nested argument defining API endpoint configuration including endpoint type. Defined below.\n" @@ -141515,6 +142312,13 @@ "type": "string", "description": "The name of the REST API\n" }, + "parameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html).\n" + }, "policy": { "type": "string", "description": "JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead.\n" @@ -142791,95 +143595,109 @@ "additionalProperties": { "type": "string" }, - "description": "A key-value map specifying request parameters that are passed from the method request to the backend.\nSupported only for WebSocket APIs.\n" + "description": "For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.\nFor HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.\nFor HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.\nSee the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.\n" + }, + "requestTemplates": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" + }, + "responseParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:apigatewayv2/IntegrationResponseParameter:IntegrationResponseParameter" + }, + "description": "Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.\n" + }, + "templateSelectionExpression": { + "type": "string", + "description": "The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.\n" + }, + "timeoutMilliseconds": { + "type": "integer" + }, + "tlsConfig": { + "$ref": "#/types/aws:apigatewayv2/IntegrationTlsConfig:IntegrationTlsConfig", + "description": "The TLS configuration for a private integration. Supported only for HTTP APIs.\n" + } + }, + "required": [ + "apiId", + "integrationResponseSelectionExpression", + "integrationType", + "timeoutMilliseconds" + ], + "inputProperties": { + "apiId": { + "type": "string", + "description": "The API identifier.\n" + }, + "connectionId": { + "type": "string", + "description": "The ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.\n" + }, + "connectionType": { + "type": "string", + "description": "The type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.\n" + }, + "contentHandlingStrategy": { + "type": "string", + "description": "How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.\n" + }, + "credentialsArn": { + "type": "string", + "description": "The credentials required for the integration, if any.\n" + }, + "description": { + "type": "string", + "description": "The description of the integration.\n" + }, + "integrationMethod": { + "type": "string", + "description": "The integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.\n" + }, + "integrationSubtype": { + "type": "string", + "description": "Specifies the AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.\n" + }, + "integrationType": { + "type": "string", + "description": "The integration type of an integration.\nValid values: `AWS`, `AWS_PROXY`, `HTTP`, `HTTP_PROXY`, `MOCK`.\n" + }, + "integrationUri": { + "type": "string", + "description": "The URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.\nFor an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.\n" + }, + "passthroughBehavior": { + "type": "string", + "description": "The pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.\nValid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.\n" + }, + "payloadFormatVersion": { + "type": "string", + "description": "The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.\n" + }, + "requestParameters": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.\nFor HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.\nFor HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.\nSee the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.\n" }, "requestTemplates": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" + "description": "A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" }, - "templateSelectionExpression": { - "type": "string", - "description": "The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.\n" - }, - "timeoutMilliseconds": { - "type": "integer" - }, - "tlsConfig": { - "$ref": "#/types/aws:apigatewayv2/IntegrationTlsConfig:IntegrationTlsConfig", - "description": "The TLS configuration for a private integration. Supported only for HTTP APIs.\n" - } - }, - "required": [ - "apiId", - "integrationResponseSelectionExpression", - "integrationType", - "timeoutMilliseconds" - ], - "inputProperties": { - "apiId": { - "type": "string", - "description": "The API identifier.\n" - }, - "connectionId": { - "type": "string", - "description": "The ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.\n" - }, - "connectionType": { - "type": "string", - "description": "The type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.\n" - }, - "contentHandlingStrategy": { - "type": "string", - "description": "How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.\n" - }, - "credentialsArn": { - "type": "string", - "description": "The credentials required for the integration, if any.\n" - }, - "description": { - "type": "string", - "description": "The description of the integration.\n" - }, - "integrationMethod": { - "type": "string", - "description": "The integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.\n" - }, - "integrationSubtype": { - "type": "string", - "description": "Specifies the AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.\n" - }, - "integrationType": { - "type": "string", - "description": "The integration type of an integration.\nValid values: `AWS`, `AWS_PROXY`, `HTTP`, `HTTP_PROXY`, `MOCK`.\n" - }, - "integrationUri": { - "type": "string", - "description": "The URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.\nFor an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.\n" - }, - "passthroughBehavior": { - "type": "string", - "description": "The pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.\nValid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.\n" - }, - "payloadFormatVersion": { - "type": "string", - "description": "The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.\n" - }, - "requestParameters": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "A key-value map specifying request parameters that are passed from the method request to the backend.\nSupported only for WebSocket APIs.\n" - }, - "requestTemplates": { - "type": "object", - "additionalProperties": { - "type": "string" + "responseParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:apigatewayv2/IntegrationResponseParameter:IntegrationResponseParameter" }, - "description": "A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" + "description": "Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.\n" }, "templateSelectionExpression": { "type": "string", @@ -142957,14 +143775,21 @@ "additionalProperties": { "type": "string" }, - "description": "A key-value map specifying request parameters that are passed from the method request to the backend.\nSupported only for WebSocket APIs.\n" + "description": "For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.\nFor HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.\nFor HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.\nSee the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.\n" }, "requestTemplates": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" + "description": "A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.\n" + }, + "responseParameters": { + "type": "array", + "items": { + "$ref": "#/types/aws:apigatewayv2/IntegrationResponseParameter:IntegrationResponseParameter" + }, + "description": "Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.\n" }, "templateSelectionExpression": { "type": "string", @@ -151627,6 +152452,168 @@ "type": "object" } }, + "aws:cloudwatch/compositeAlarm:CompositeAlarm": { + "description": "\n\n\n## Import\n\nUse the `alarm_name` to import a CloudWatch Composite Alarm. For example\n\n```sh\n $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm\n```\n\n ", + "properties": { + "actionsEnabled": { + "type": "boolean", + "description": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.\n" + }, + "alarmActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "alarmDescription": { + "type": "string", + "description": "The description for the composite alarm.\n" + }, + "alarmName": { + "type": "string", + "description": "The name for the composite alarm. This name must be unique within the region.\n" + }, + "alarmRule": { + "type": "string", + "description": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.\n" + }, + "arn": { + "type": "string", + "description": "The ARN of the composite alarm.\n" + }, + "insufficientDataActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "okActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to associate with the alarm. Up to 50 tags are allowed.\n" + } + }, + "required": [ + "alarmName", + "alarmRule", + "arn" + ], + "inputProperties": { + "actionsEnabled": { + "type": "boolean", + "description": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.\n" + }, + "alarmActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "alarmDescription": { + "type": "string", + "description": "The description for the composite alarm.\n" + }, + "alarmName": { + "type": "string", + "description": "The name for the composite alarm. This name must be unique within the region.\n" + }, + "alarmRule": { + "type": "string", + "description": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.\n" + }, + "insufficientDataActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "okActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to associate with the alarm. Up to 50 tags are allowed.\n" + } + }, + "requiredInputs": [ + "alarmName", + "alarmRule" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CompositeAlarm resources.\n", + "properties": { + "actionsEnabled": { + "type": "boolean", + "description": "Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`.\n" + }, + "alarmActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "alarmDescription": { + "type": "string", + "description": "The description for the composite alarm.\n" + }, + "alarmName": { + "type": "string", + "description": "The name for the composite alarm. This name must be unique within the region.\n" + }, + "alarmRule": { + "type": "string", + "description": "An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters.\n" + }, + "arn": { + "type": "string", + "description": "The ARN of the composite alarm.\n" + }, + "insufficientDataActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "okActions": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to associate with the alarm. Up to 50 tags are allowed.\n" + } + }, + "type": "object" + } + }, "aws:cloudwatch/dashboard:Dashboard": { "description": "Provides a CloudWatch Dashboard 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 main = new aws.cloudwatch.Dashboard(\"main\", {\n dashboardBody: `{\n \"widgets\": [\n {\n \"type\": \"metric\",\n \"x\": 0,\n \"y\": 0,\n \"width\": 12,\n \"height\": 6,\n \"properties\": {\n \"metrics\": [\n [\n \"AWS/EC2\",\n \"CPUUtilization\",\n \"InstanceId\",\n \"i-012345\"\n ]\n ],\n \"period\": 300,\n \"stat\": \"Average\",\n \"region\": \"us-east-1\",\n \"title\": \"EC2 Instance CPU\"\n }\n },\n {\n \"type\": \"text\",\n \"x\": 0,\n \"y\": 7,\n \"width\": 3,\n \"height\": 3,\n \"properties\": {\n \"markdown\": \"Hello world\"\n }\n }\n ]\n}\n`,\n dashboardName: \"my-dashboard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain = aws.cloudwatch.Dashboard(\"main\",\n dashboard_body=\"\"\"{\n \"widgets\": [\n {\n \"type\": \"metric\",\n \"x\": 0,\n \"y\": 0,\n \"width\": 12,\n \"height\": 6,\n \"properties\": {\n \"metrics\": [\n [\n \"AWS/EC2\",\n \"CPUUtilization\",\n \"InstanceId\",\n \"i-012345\"\n ]\n ],\n \"period\": 300,\n \"stat\": \"Average\",\n \"region\": \"us-east-1\",\n \"title\": \"EC2 Instance CPU\"\n }\n },\n {\n \"type\": \"text\",\n \"x\": 0,\n \"y\": 7,\n \"width\": 3,\n \"height\": 3,\n \"properties\": {\n \"markdown\": \"Hello world\"\n }\n }\n ]\n}\n\n\"\"\",\n dashboard_name=\"my-dashboard\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var main = new Aws.CloudWatch.Dashboard(\"main\", new Aws.CloudWatch.DashboardArgs\n {\n DashboardBody = @\"{\n \"\"widgets\"\": [\n {\n \"\"type\"\": \"\"metric\"\",\n \"\"x\"\": 0,\n \"\"y\"\": 0,\n \"\"width\"\": 12,\n \"\"height\"\": 6,\n \"\"properties\"\": {\n \"\"metrics\"\": [\n [\n \"\"AWS/EC2\"\",\n \"\"CPUUtilization\"\",\n \"\"InstanceId\"\",\n \"\"i-012345\"\"\n ]\n ],\n \"\"period\"\": 300,\n \"\"stat\"\": \"\"Average\"\",\n \"\"region\"\": \"\"us-east-1\"\",\n \"\"title\"\": \"\"EC2 Instance CPU\"\"\n }\n },\n {\n \"\"type\"\": \"\"text\"\",\n \"\"x\"\": 0,\n \"\"y\"\": 7,\n \"\"width\"\": 3,\n \"\"height\"\": 3,\n \"\"properties\"\": {\n \"\"markdown\"\": \"\"Hello world\"\"\n }\n }\n ]\n}\n\n\",\n DashboardName = \"my-dashboard\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/cloudwatch\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := cloudwatch.NewDashboard(ctx, \"main\", \u0026cloudwatch.DashboardArgs{\n\t\t\tDashboardBody: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \" \\\"widgets\\\": [\\n\", \" {\\n\", \" \\\"type\\\": \\\"metric\\\",\\n\", \" \\\"x\\\": 0,\\n\", \" \\\"y\\\": 0,\\n\", \" \\\"width\\\": 12,\\n\", \" \\\"height\\\": 6,\\n\", \" \\\"properties\\\": {\\n\", \" \\\"metrics\\\": [\\n\", \" [\\n\", \" \\\"AWS/EC2\\\",\\n\", \" \\\"CPUUtilization\\\",\\n\", \" \\\"InstanceId\\\",\\n\", \" \\\"i-012345\\\"\\n\", \" ]\\n\", \" ],\\n\", \" \\\"period\\\": 300,\\n\", \" \\\"stat\\\": \\\"Average\\\",\\n\", \" \\\"region\\\": \\\"us-east-1\\\",\\n\", \" \\\"title\\\": \\\"EC2 Instance CPU\\\"\\n\", \" }\\n\", \" },\\n\", \" {\\n\", \" \\\"type\\\": \\\"text\\\",\\n\", \" \\\"x\\\": 0,\\n\", \" \\\"y\\\": 7,\\n\", \" \\\"width\\\": 3,\\n\", \" \\\"height\\\": 3,\\n\", \" \\\"properties\\\": {\\n\", \" \\\"markdown\\\": \\\"Hello world\\\"\\n\", \" }\\n\", \" }\\n\", \" ]\\n\", \"}\\n\", \"\\n\")),\n\t\t\tDashboardName: pulumi.String(\"my-dashboard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCloudWatch dashboards can be imported using the `dashboard_name`, e.g.\n\n```sh\n $ pulumi import aws:cloudwatch/dashboard:Dashboard sample \u003cdashboard_name\u003e\n```\n\n ", "properties": { @@ -154592,7 +155579,7 @@ } }, "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 codepipelineBucket = new aws.s3.Bucket(\"codepipelineBucket\", {acl: \"private\"});\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 artifactStore: {\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: \"ThirdParty\",\n provider: \"GitHub\",\n version: \"1\",\n outputArtifacts: [\"source_output\"],\n configuration: {\n Owner: \"my-organization\",\n Repo: \"test\",\n Branch: \"master\",\n OAuthToken: _var.github_token,\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 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:PutObject\"\n ],\n \"Resource\": [\n \"${codepipelineBucket.arn}\",\n \"${codepipelineBucket.arn}/*\"\n ]\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\ncodepipeline_bucket = aws.s3.Bucket(\"codepipelineBucket\", acl=\"private\")\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_store=aws.codepipeline.PipelineArtifactStoreArgs(\n location=codepipeline_bucket.bucket,\n type=\"S3\",\n encryption_key={\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=\"ThirdParty\",\n provider=\"GitHub\",\n version=\"1\",\n output_artifacts=[\"source_output\"],\n configuration={\n \"Owner\": \"my-organization\",\n \"Repo\": \"test\",\n \"Branch\": \"master\",\n \"OAuthToken\": var[\"github_token\"],\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_policy = aws.iam.RolePolicy(\"codepipelinePolicy\",\n role=codepipeline_role.id,\n policy=pulumi.Output.all(codepipeline_bucket.arn, codepipeline_bucket.arn).apply(lambda codepipelineBucketArn, codepipelineBucketArn1: 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:PutObject\"\n ],\n \"Resource\": [\n \"{codepipeline_bucket_arn}\",\n \"{codepipeline_bucket_arn1}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }}\n ]\n}}\n\"\"\"))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var codepipelineBucket = new Aws.S3.Bucket(\"codepipelineBucket\", new Aws.S3.BucketArgs\n {\n Acl = \"private\",\n });\n var codepipelineRole = new Aws.Iam.Role(\"codepipelineRole\", new Aws.Iam.RoleArgs\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 var s3kmskey = Output.Create(Aws.Kms.GetAlias.InvokeAsync(new Aws.Kms.GetAliasArgs\n {\n Name = \"alias/myKmsKey\",\n }));\n var codepipeline = new Aws.CodePipeline.Pipeline(\"codepipeline\", new Aws.CodePipeline.PipelineArgs\n {\n RoleArn = codepipelineRole.Arn,\n ArtifactStore = new Aws.CodePipeline.Inputs.PipelineArtifactStoreArgs\n {\n Location = codepipelineBucket.BucketName,\n Type = \"S3\",\n EncryptionKey = new Aws.CodePipeline.Inputs.PipelineArtifactStoreEncryptionKeyArgs\n {\n Id = s3kmskey.Apply(s3kmskey =\u003e s3kmskey.Arn),\n Type = \"KMS\",\n },\n },\n Stages = \n {\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Source\",\n Actions = \n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Source\",\n Category = \"Source\",\n Owner = \"ThirdParty\",\n Provider = \"GitHub\",\n Version = \"1\",\n OutputArtifacts = \n {\n \"source_output\",\n },\n Configuration = \n {\n { \"Owner\", \"my-organization\" },\n { \"Repo\", \"test\" },\n { \"Branch\", \"master\" },\n { \"OAuthToken\", @var.Github_token },\n },\n },\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Build\",\n Actions = \n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Build\",\n Category = \"Build\",\n Owner = \"AWS\",\n Provider = \"CodeBuild\",\n InputArtifacts = \n {\n \"source_output\",\n },\n OutputArtifacts = \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 = \n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Deploy\",\n Category = \"Deploy\",\n Owner = \"AWS\",\n Provider = \"CloudFormation\",\n InputArtifacts = \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 var codepipelinePolicy = new Aws.Iam.RolePolicy(\"codepipelinePolicy\", new Aws.Iam.RolePolicyArgs\n {\n Role = codepipelineRole.Id,\n Policy = Output.Tuple(codepipelineBucket.Arn, codepipelineBucket.Arn).Apply(values =\u003e\n {\n var codepipelineBucketArn = values.Item1;\n var codepipelineBucketArn1 = values.Item2;\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:PutObject\"\"\n ],\n \"\"Resource\"\": [\n \"\"{codepipelineBucketArn}\"\",\n \"\"{codepipelineBucketArn1}/*\"\"\n ]\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```\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 ", + "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.Bucket(\"codepipelineBucket\", {acl: \"private\"});\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 artifactStore: {\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 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:PutObject\"\n ],\n \"Resource\": [\n \"${codepipelineBucket.arn}\",\n \"${codepipelineBucket.arn}/*\"\n ]\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.Bucket(\"codepipelineBucket\", acl=\"private\")\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_store=aws.codepipeline.PipelineArtifactStoreArgs(\n location=codepipeline_bucket.bucket,\n type=\"S3\",\n encryption_key={\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_policy = aws.iam.RolePolicy(\"codepipelinePolicy\",\n role=codepipeline_role.id,\n policy=pulumi.Output.all(codepipeline_bucket.arn, codepipeline_bucket.arn).apply(lambda codepipelineBucketArn, codepipelineBucketArn1: 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:PutObject\"\n ],\n \"Resource\": [\n \"{codepipeline_bucket_arn}\",\n \"{codepipeline_bucket_arn1}/*\"\n ]\n }},\n {{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"codebuild:BatchGetBuilds\",\n \"codebuild:StartBuild\"\n ],\n \"Resource\": \"*\"\n }}\n ]\n}}\n\"\"\"))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.CodeStarConnections.Connection(\"example\", new Aws.CodeStarConnections.ConnectionArgs\n {\n ProviderType = \"GitHub\",\n });\n var codepipelineBucket = new Aws.S3.Bucket(\"codepipelineBucket\", new Aws.S3.BucketArgs\n {\n Acl = \"private\",\n });\n var codepipelineRole = new Aws.Iam.Role(\"codepipelineRole\", new Aws.Iam.RoleArgs\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 var s3kmskey = Output.Create(Aws.Kms.GetAlias.InvokeAsync(new Aws.Kms.GetAliasArgs\n {\n Name = \"alias/myKmsKey\",\n }));\n var codepipeline = new Aws.CodePipeline.Pipeline(\"codepipeline\", new Aws.CodePipeline.PipelineArgs\n {\n RoleArn = codepipelineRole.Arn,\n ArtifactStore = new Aws.CodePipeline.Inputs.PipelineArtifactStoreArgs\n {\n Location = codepipelineBucket.BucketName,\n Type = \"S3\",\n EncryptionKey = new Aws.CodePipeline.Inputs.PipelineArtifactStoreEncryptionKeyArgs\n {\n Id = s3kmskey.Apply(s3kmskey =\u003e s3kmskey.Arn),\n Type = \"KMS\",\n },\n },\n Stages = \n {\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Source\",\n Actions = \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 = \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 = \n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Build\",\n Category = \"Build\",\n Owner = \"AWS\",\n Provider = \"CodeBuild\",\n InputArtifacts = \n {\n \"source_output\",\n },\n OutputArtifacts = \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 = \n {\n new Aws.CodePipeline.Inputs.PipelineStageActionArgs\n {\n Name = \"Deploy\",\n Category = \"Deploy\",\n Owner = \"AWS\",\n Provider = \"CloudFormation\",\n InputArtifacts = \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 var codepipelinePolicy = new Aws.Iam.RolePolicy(\"codepipelinePolicy\", new Aws.Iam.RolePolicyArgs\n {\n Role = codepipelineRole.Id,\n Policy = Output.Tuple(codepipelineBucket.Arn, codepipelineBucket.Arn).Apply(values =\u003e\n {\n var codepipelineBucketArn = values.Item1;\n var codepipelineBucketArn1 = values.Item2;\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:PutObject\"\"\n ],\n \"\"Resource\"\": [\n \"\"{codepipelineBucketArn}\"\",\n \"\"{codepipelineBucketArn1}/*\"\"\n ]\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```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codepipeline\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codestarconnections\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/kms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/s3\"\n\t\"github.com/pulumi/pulumi/sdk/v2/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.NewBucket(ctx, \"codepipelineBucket\", \u0026s3.BucketArgs{\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\tcodepipelineRole, err := iam.NewRole(ctx, \"codepipelineRole\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\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\tArtifactStore: \u0026codepipeline.PipelineArtifactStoreArgs{\n\t\t\t\tLocation: codepipelineBucket.Bucket,\n\t\t\t\tType: pulumi.String(\"S3\"),\n\t\t\t\tEncryptionKey: \u0026codepipeline.PipelineArtifactStoreEncryptionKeyArgs{\n\t\t\t\t\tId: pulumi.String(s3kmskey.Arn),\n\t\t\t\t\tType: pulumi.String(\"KMS\"),\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 = iam.NewRolePolicy(ctx, \"codepipelinePolicy\", \u0026iam.RolePolicyArgs{\n\t\t\tRole: codepipelineRole.ID(),\n\t\t\tPolicy: pulumi.All(codepipelineBucket.Arn, codepipelineBucket.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\treturn fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \"{\\n\", \" \\\"Version\\\": \\\"2012-10-17\\\",\\n\", \" \\\"Statement\\\": [\\n\", \" {\\n\", \" \\\"Effect\\\":\\\"Allow\\\",\\n\", \" \\\"Action\\\": [\\n\", \" \\\"s3:GetObject\\\",\\n\", \" \\\"s3:GetObjectVersion\\\",\\n\", \" \\\"s3:GetBucketVersioning\\\",\\n\", \" \\\"s3:PutObject\\\"\\n\", \" ],\\n\", \" \\\"Resource\\\": [\\n\", \" \\\"\", codepipelineBucketArn, \"\\\",\\n\", \" \\\"\", codepipelineBucketArn1, \"/*\\\"\\n\", \" ]\\n\", \" },\\n\", \" {\\n\", \" \\\"Effect\\\": \\\"Allow\\\",\\n\", \" \\\"Action\\\": [\\n\", \" \\\"codebuild:BatchGetBuilds\\\",\\n\", \" \\\"codebuild:StartBuild\\\"\\n\", \" ],\\n\", \" \\\"Resource\\\": \\\"*\\\"\\n\", \" }\\n\", \" ]\\n\", \"}\\n\"), 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{{% /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": { "arn": { "type": "string", @@ -154840,7 +155827,7 @@ } }, "aws:codestarconnections/connection:Connection": { - "description": "Provides a CodeStar Connection.\n\n\u003e **NOTE:** The `aws.codestarconnections.Connection` resource is created in the state `PENDING`. Authentication with the connection provider must be completed in the AWS Console.\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 exampleConnection = new aws.codestarconnections.Connection(\"exampleConnection\", {providerType: \"Bitbucket\"});\nconst examplePipeline = new aws.codepipeline.Pipeline(\"examplePipeline\", {\n roleArn: aws_iam_role.codepipeline_role.arn,\n artifactStore: {},\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 Owner: \"my-organization\",\n ConnectionArn: exampleConnection.arn,\n Repo: \"foo/test\",\n Branch: \"master\",\n },\n }],\n },\n {\n name: \"Build\",\n actions: [{}],\n },\n {\n name: \"Deploy\",\n actions: [{}],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_connection = aws.codestarconnections.Connection(\"exampleConnection\", provider_type=\"Bitbucket\")\nexample_pipeline = aws.codepipeline.Pipeline(\"examplePipeline\",\n role_arn=aws_iam_role[\"codepipeline_role\"][\"arn\"],\n artifact_store=aws.codepipeline.PipelineArtifactStoreArgs(),\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 \"Owner\": \"my-organization\",\n \"ConnectionArn\": example_connection.arn,\n \"Repo\": \"foo/test\",\n \"Branch\": \"master\",\n },\n )],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Build\",\n actions=[aws.codepipeline.PipelineStageActionArgs()],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Deploy\",\n actions=[aws.codepipeline.PipelineStageActionArgs()],\n ),\n ])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleConnection = new Aws.CodeStarConnections.Connection(\"exampleConnection\", new Aws.CodeStarConnections.ConnectionArgs\n {\n ProviderType = \"Bitbucket\",\n });\n var examplePipeline = new Aws.CodePipeline.Pipeline(\"examplePipeline\", new Aws.CodePipeline.PipelineArgs\n {\n RoleArn = aws_iam_role.Codepipeline_role.Arn,\n ArtifactStore = ,\n Stages = \n {\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Source\",\n Actions = \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 = \n {\n \"source_output\",\n },\n Configuration = \n {\n { \"Owner\", \"my-organization\" },\n { \"ConnectionArn\", exampleConnection.Arn },\n { \"Repo\", \"foo/test\" },\n { \"Branch\", \"master\" },\n },\n },\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Build\",\n Actions = \n {\n ,\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Deploy\",\n Actions = \n {\n ,\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codepipeline\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codestarconnections\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleConnection, err := codestarconnections.NewConnection(ctx, \"exampleConnection\", \u0026codestarconnections.ConnectionArgs{\n\t\t\tProviderType: pulumi.String(\"Bitbucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = codepipeline.NewPipeline(ctx, \"examplePipeline\", \u0026codepipeline.PipelineArgs{\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Codepipeline_role.Arn),\n\t\t\tArtifactStore: nil,\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\"Owner\": pulumi.String(\"my-organization\"),\n\t\t\t\t\t\t\t\t\"ConnectionArn\": exampleConnection.Arn,\n\t\t\t\t\t\t\t\t\"Repo\": pulumi.String(\"foo/test\"),\n\t\t\t\t\t\t\t\t\"Branch\": pulumi.String(\"master\"),\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\tnil,\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\tnil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodeStar connections can be imported using the ARN, e.g.\n\n```sh\n $ pulumi import aws:codestarconnections/connection:Connection test-connection arn:aws:codestar-connections:us-west-1:0123456789:connection/79d4d357-a2ee-41e4-b350-2fe39ae59448\n```\n\n ", + "description": "Provides a CodeStar Connection.\n\n\u003e **NOTE:** The `aws.codestarconnections.Connection` resource is created in the state `PENDING`. Authentication with the connection provider must be completed in the AWS Console.\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 exampleConnection = new aws.codestarconnections.Connection(\"exampleConnection\", {providerType: \"Bitbucket\"});\nconst examplePipeline = new aws.codepipeline.Pipeline(\"examplePipeline\", {\n roleArn: aws_iam_role.codepipeline_role.arn,\n artifactStore: {},\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: exampleConnection.arn,\n FullRepositoryId: \"my-organization/test\",\n BranchName: \"main\",\n },\n }],\n },\n {\n name: \"Build\",\n actions: [{}],\n },\n {\n name: \"Deploy\",\n actions: [{}],\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_connection = aws.codestarconnections.Connection(\"exampleConnection\", provider_type=\"Bitbucket\")\nexample_pipeline = aws.codepipeline.Pipeline(\"examplePipeline\",\n role_arn=aws_iam_role[\"codepipeline_role\"][\"arn\"],\n artifact_store=aws.codepipeline.PipelineArtifactStoreArgs(),\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_connection.arn,\n \"FullRepositoryId\": \"my-organization/test\",\n \"BranchName\": \"main\",\n },\n )],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Build\",\n actions=[aws.codepipeline.PipelineStageActionArgs()],\n ),\n aws.codepipeline.PipelineStageArgs(\n name=\"Deploy\",\n actions=[aws.codepipeline.PipelineStageActionArgs()],\n ),\n ])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleConnection = new Aws.CodeStarConnections.Connection(\"exampleConnection\", new Aws.CodeStarConnections.ConnectionArgs\n {\n ProviderType = \"Bitbucket\",\n });\n var examplePipeline = new Aws.CodePipeline.Pipeline(\"examplePipeline\", new Aws.CodePipeline.PipelineArgs\n {\n RoleArn = aws_iam_role.Codepipeline_role.Arn,\n ArtifactStore = ,\n Stages = \n {\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Source\",\n Actions = \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 = \n {\n \"source_output\",\n },\n Configuration = \n {\n { \"ConnectionArn\", exampleConnection.Arn },\n { \"FullRepositoryId\", \"my-organization/test\" },\n { \"BranchName\", \"main\" },\n },\n },\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Build\",\n Actions = \n {\n ,\n },\n },\n new Aws.CodePipeline.Inputs.PipelineStageArgs\n {\n Name = \"Deploy\",\n Actions = \n {\n ,\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codepipeline\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codestarconnections\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleConnection, err := codestarconnections.NewConnection(ctx, \"exampleConnection\", \u0026codestarconnections.ConnectionArgs{\n\t\t\tProviderType: pulumi.String(\"Bitbucket\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = codepipeline.NewPipeline(ctx, \"examplePipeline\", \u0026codepipeline.PipelineArgs{\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Codepipeline_role.Arn),\n\t\t\tArtifactStore: nil,\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\": exampleConnection.Arn,\n\t\t\t\t\t\t\t\t\"FullRepositoryId\": pulumi.String(\"my-organization/test\"),\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\tnil,\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\tnil,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nCodeStar connections can be imported using the ARN, e.g.\n\n```sh\n $ pulumi import aws:codestarconnections/connection:Connection test-connection arn:aws:codestar-connections:us-west-1:0123456789:connection/79d4d357-a2ee-41e4-b350-2fe39ae59448\n```\n\n ", "properties": { "arn": { "type": "string", @@ -166084,11 +167071,11 @@ } }, "aws:ec2/instance:Instance": { - "description": "Provides an EC2 instance resource. This allows instances to be created, updated,\nand deleted.\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 ubuntu = aws.getAmi({\n mostRecent: true,\n filters: [\n {\n name: \"name\",\n values: [\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\"],\n },\n {\n name: \"virtualization-type\",\n values: [\"hvm\"],\n },\n ],\n owners: [\"099720109477\"],\n});\nconst web = new aws.ec2.Instance(\"web\", {\n ami: ubuntu.then(ubuntu =\u003e ubuntu.id),\n instanceType: \"t3.micro\",\n tags: {\n Name: \"HelloWorld\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nubuntu = aws.get_ami(most_recent=True,\n filters=[\n aws.GetAmiFilterArgs(\n name=\"name\",\n values=[\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\"],\n ),\n aws.GetAmiFilterArgs(\n name=\"virtualization-type\",\n values=[\"hvm\"],\n ),\n ],\n owners=[\"099720109477\"])\nweb = aws.ec2.Instance(\"web\",\n ami=ubuntu.id,\n instance_type=\"t3.micro\",\n tags={\n \"Name\": \"HelloWorld\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ubuntu = Output.Create(Aws.GetAmi.InvokeAsync(new Aws.GetAmiArgs\n {\n MostRecent = true,\n Filters = \n {\n new Aws.Inputs.GetAmiFilterArgs\n {\n Name = \"name\",\n Values = \n {\n \"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\",\n },\n },\n new Aws.Inputs.GetAmiFilterArgs\n {\n Name = \"virtualization-type\",\n Values = \n {\n \"hvm\",\n },\n },\n },\n Owners = \n {\n \"099720109477\",\n },\n }));\n var web = new Aws.Ec2.Instance(\"web\", new Aws.Ec2.InstanceArgs\n {\n Ami = ubuntu.Apply(ubuntu =\u003e ubuntu.Id),\n InstanceType = \"t3.micro\",\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := true\n\t\tubuntu, err := aws.GetAmi(ctx, \u0026aws.GetAmiArgs{\n\t\t\tMostRecent: \u0026opt0,\n\t\t\tFilters: []aws.GetAmiFilter{\n\t\t\t\taws.GetAmiFilter{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taws.GetAmiFilter{\n\t\t\t\t\tName: \"virtualization-type\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"hvm\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOwners: []string{\n\t\t\t\t\"099720109477\",\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 = ec2.NewInstance(ctx, \"web\", \u0026ec2.InstanceArgs{\n\t\t\tAmi: pulumi.String(ubuntu.Id),\n\t\t\tInstanceType: pulumi.String(\"t3.micro\"),\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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:ec2/instance:Instance web i-12345678\n```\n\n ", + "description": "Provides an EC2 instance resource. This allows instances to be created, updated, and deleted.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic Example Using AMI Lookup\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst ubuntu = aws.getAmi({\n mostRecent: true,\n filters: [\n {\n name: \"name\",\n values: [\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\"],\n },\n {\n name: \"virtualization-type\",\n values: [\"hvm\"],\n },\n ],\n owners: [\"099720109477\"],\n});\nconst web = new aws.ec2.Instance(\"web\", {\n ami: ubuntu.then(ubuntu =\u003e ubuntu.id),\n instanceType: \"t3.micro\",\n tags: {\n Name: \"HelloWorld\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nubuntu = aws.get_ami(most_recent=True,\n filters=[\n aws.GetAmiFilterArgs(\n name=\"name\",\n values=[\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\"],\n ),\n aws.GetAmiFilterArgs(\n name=\"virtualization-type\",\n values=[\"hvm\"],\n ),\n ],\n owners=[\"099720109477\"])\nweb = aws.ec2.Instance(\"web\",\n ami=ubuntu.id,\n instance_type=\"t3.micro\",\n tags={\n \"Name\": \"HelloWorld\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var ubuntu = Output.Create(Aws.GetAmi.InvokeAsync(new Aws.GetAmiArgs\n {\n MostRecent = true,\n Filters = \n {\n new Aws.Inputs.GetAmiFilterArgs\n {\n Name = \"name\",\n Values = \n {\n \"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\",\n },\n },\n new Aws.Inputs.GetAmiFilterArgs\n {\n Name = \"virtualization-type\",\n Values = \n {\n \"hvm\",\n },\n },\n },\n Owners = \n {\n \"099720109477\",\n },\n }));\n var web = new Aws.Ec2.Instance(\"web\", new Aws.Ec2.InstanceArgs\n {\n Ami = ubuntu.Apply(ubuntu =\u003e ubuntu.Id),\n InstanceType = \"t3.micro\",\n Tags = \n {\n { \"Name\", \"HelloWorld\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\topt0 := true\n\t\tubuntu, err := aws.GetAmi(ctx, \u0026aws.GetAmiArgs{\n\t\t\tMostRecent: \u0026opt0,\n\t\t\tFilters: []aws.GetAmiFilter{\n\t\t\t\taws.GetAmiFilter{\n\t\t\t\t\tName: \"name\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\taws.GetAmiFilter{\n\t\t\t\t\tName: \"virtualization-type\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"hvm\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOwners: []string{\n\t\t\t\t\"099720109477\",\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 = ec2.NewInstance(ctx, \"web\", \u0026ec2.InstanceArgs{\n\t\t\tAmi: pulumi.String(ubuntu.Id),\n\t\t\tInstanceType: pulumi.String(\"t3.micro\"),\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{{% /example %}}\n{{% example %}}\n### Network and Credit Specification Example\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst myVpc = new aws.ec2.Vpc(\"myVpc\", {\n cidrBlock: \"172.16.0.0/16\",\n tags: {\n Name: \"tf-example\",\n },\n});\nconst mySubnet = new aws.ec2.Subnet(\"mySubnet\", {\n vpcId: myVpc.id,\n cidrBlock: \"172.16.10.0/24\",\n availabilityZone: \"us-west-2a\",\n tags: {\n Name: \"tf-example\",\n },\n});\nconst fooNetworkInterface = new aws.ec2.NetworkInterface(\"fooNetworkInterface\", {\n subnetId: mySubnet.id,\n privateIps: [\"172.16.10.100\"],\n tags: {\n Name: \"primary_network_interface\",\n },\n});\nconst fooInstance = new aws.ec2.Instance(\"fooInstance\", {\n ami: \"ami-005e54dee72cc1d00\",\n instanceType: \"t2.micro\",\n networkInterfaces: [{\n networkInterfaceId: fooNetworkInterface.id,\n deviceIndex: 0,\n }],\n creditSpecification: {\n cpuCredits: \"unlimited\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_vpc = aws.ec2.Vpc(\"myVpc\",\n cidr_block=\"172.16.0.0/16\",\n tags={\n \"Name\": \"tf-example\",\n })\nmy_subnet = aws.ec2.Subnet(\"mySubnet\",\n vpc_id=my_vpc.id,\n cidr_block=\"172.16.10.0/24\",\n availability_zone=\"us-west-2a\",\n tags={\n \"Name\": \"tf-example\",\n })\nfoo_network_interface = aws.ec2.NetworkInterface(\"fooNetworkInterface\",\n subnet_id=my_subnet.id,\n private_ips=[\"172.16.10.100\"],\n tags={\n \"Name\": \"primary_network_interface\",\n })\nfoo_instance = aws.ec2.Instance(\"fooInstance\",\n ami=\"ami-005e54dee72cc1d00\",\n instance_type=\"t2.micro\",\n network_interfaces=[aws.ec2.InstanceNetworkInterfaceArgs(\n network_interface_id=foo_network_interface.id,\n device_index=0,\n )],\n credit_specification=aws.ec2.InstanceCreditSpecificationArgs(\n cpu_credits=\"unlimited\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var myVpc = new Aws.Ec2.Vpc(\"myVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"172.16.0.0/16\",\n Tags = \n {\n { \"Name\", \"tf-example\" },\n },\n });\n var mySubnet = new Aws.Ec2.Subnet(\"mySubnet\", new Aws.Ec2.SubnetArgs\n {\n VpcId = myVpc.Id,\n CidrBlock = \"172.16.10.0/24\",\n AvailabilityZone = \"us-west-2a\",\n Tags = \n {\n { \"Name\", \"tf-example\" },\n },\n });\n var fooNetworkInterface = new Aws.Ec2.NetworkInterface(\"fooNetworkInterface\", new Aws.Ec2.NetworkInterfaceArgs\n {\n SubnetId = mySubnet.Id,\n PrivateIps = \n {\n \"172.16.10.100\",\n },\n Tags = \n {\n { \"Name\", \"primary_network_interface\" },\n },\n });\n var fooInstance = new Aws.Ec2.Instance(\"fooInstance\", new Aws.Ec2.InstanceArgs\n {\n Ami = \"ami-005e54dee72cc1d00\",\n InstanceType = \"t2.micro\",\n NetworkInterfaces = \n {\n new Aws.Ec2.Inputs.InstanceNetworkInterfaceArgs\n {\n NetworkInterfaceId = fooNetworkInterface.Id,\n DeviceIndex = 0,\n },\n },\n CreditSpecification = new Aws.Ec2.Inputs.InstanceCreditSpecificationArgs\n {\n CpuCredits = \"unlimited\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyVpc, err := ec2.NewVpc(ctx, \"myVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"tf-example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmySubnet, err := ec2.NewSubnet(ctx, \"mySubnet\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: myVpc.ID(),\n\t\t\tCidrBlock: pulumi.String(\"172.16.10.0/24\"),\n\t\t\tAvailabilityZone: pulumi.String(\"us-west-2a\"),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"tf-example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tfooNetworkInterface, err := ec2.NewNetworkInterface(ctx, \"fooNetworkInterface\", \u0026ec2.NetworkInterfaceArgs{\n\t\t\tSubnetId: mySubnet.ID(),\n\t\t\tPrivateIps: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"172.16.10.100\"),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"primary_network_interface\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewInstance(ctx, \"fooInstance\", \u0026ec2.InstanceArgs{\n\t\t\tAmi: pulumi.String(\"ami-005e54dee72cc1d00\"),\n\t\t\tInstanceType: pulumi.String(\"t2.micro\"),\n\t\t\tNetworkInterfaces: ec2.InstanceNetworkInterfaceArray{\n\t\t\t\t\u0026ec2.InstanceNetworkInterfaceArgs{\n\t\t\t\t\tNetworkInterfaceId: fooNetworkInterface.ID(),\n\t\t\t\t\tDeviceIndex: pulumi.Int(0),\n\t\t\t\t},\n\t\t\t},\n\t\t\tCreditSpecification: \u0026ec2.InstanceCreditSpecificationArgs{\n\t\t\t\tCpuCredits: pulumi.String(\"unlimited\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nInstances can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:ec2/instance:Instance web i-12345678\n```\n\n ", "properties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "arn": { "type": "string", @@ -166096,15 +167083,15 @@ }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -166116,18 +167103,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/InstanceEbsBlockDevice:InstanceEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/InstanceEnclaveOptions:InstanceEnclaveOptions", @@ -166138,7 +167125,7 @@ "items": { "$ref": "#/types/aws:ec2/InstanceEphemeralBlockDevice:InstanceEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -166150,15 +167137,15 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceState": { "type": "string", @@ -166171,7 +167158,7 @@ }, "instanceType": { "type": "string", - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -166186,7 +167173,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "metadataOptions": { "$ref": "#/types/aws:ec2/InstanceMetadataOptions:InstanceMetadataOptions", @@ -166209,11 +167196,11 @@ }, "passwordData": { "type": "string", - "description": "Base-64 encoded encrypted password data for the instance.\nUseful for getting the administrator password for instances running Microsoft Windows.\nThis attribute is only exported if `get_password_data` is true.\nNote that this encrypted value will be stored in the state file, as with all exported attributes.\nSee [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information.\n" + "description": "Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information.\n" }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "primaryNetworkInterfaceId": { "type": "string", @@ -166221,23 +167208,23 @@ }, "privateDns": { "type": "string", - "description": "The private DNS name assigned to the instance. Can only be\nused inside the Amazon EC2, and only available if you've enabled DNS hostnames\nfor your VPC\n" + "description": "The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC.\n" }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "publicDns": { "type": "string", - "description": "The public DNS name assigned to the instance. For EC2-VPC, this\nis only available if you've enabled DNS hostnames for your VPC\n" + "description": "The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC.\n" }, "publicIp": { "type": "string", - "description": "The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached.\n" + "description": "The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached.\n" }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/InstanceRootBlockDevice:InstanceRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -166256,26 +167243,26 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -166286,7 +167273,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -166327,25 +167314,24 @@ "securityGroups", "subnetId", "tenancy", - "volumeTags", "vpcSecurityGroupIds" ], "inputProperties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -166357,18 +167343,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/InstanceEbsBlockDevice:InstanceEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/InstanceEnclaveOptions:InstanceEnclaveOptions", @@ -166379,7 +167365,7 @@ "items": { "$ref": "#/types/aws:ec2/InstanceEphemeralBlockDevice:InstanceEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -166391,7 +167377,7 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", @@ -166404,11 +167390,11 @@ "$ref": "#/types/aws:iam/instanceProfile:InstanceProfile" } ], - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceType": { "type": "string", @@ -166421,7 +167407,7 @@ "$ref": "#/types/aws:ec2/InstanceType:InstanceType" } ], - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -166436,7 +167422,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "metadataOptions": { "$ref": "#/types/aws:ec2/InstanceMetadataOptions:InstanceMetadataOptions", @@ -166455,15 +167441,15 @@ }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/InstanceRootBlockDevice:InstanceRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -166482,18 +167468,18 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", @@ -166506,11 +167492,11 @@ "$ref": "#/types/aws:ec2/Tenancy:Tenancy" } ], - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -166521,7 +167507,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -166540,7 +167526,7 @@ "properties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "arn": { "type": "string", @@ -166548,15 +167534,15 @@ }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -166568,18 +167554,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/InstanceEbsBlockDevice:InstanceEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/InstanceEnclaveOptions:InstanceEnclaveOptions", @@ -166590,7 +167576,7 @@ "items": { "$ref": "#/types/aws:ec2/InstanceEphemeralBlockDevice:InstanceEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -166602,7 +167588,7 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", @@ -166615,11 +167601,11 @@ "$ref": "#/types/aws:iam/instanceProfile:InstanceProfile" } ], - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceState": { "type": "string", @@ -166641,7 +167627,7 @@ "$ref": "#/types/aws:ec2/InstanceType:InstanceType" } ], - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -166656,7 +167642,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "metadataOptions": { "$ref": "#/types/aws:ec2/InstanceMetadataOptions:InstanceMetadataOptions", @@ -166679,11 +167665,11 @@ }, "passwordData": { "type": "string", - "description": "Base-64 encoded encrypted password data for the instance.\nUseful for getting the administrator password for instances running Microsoft Windows.\nThis attribute is only exported if `get_password_data` is true.\nNote that this encrypted value will be stored in the state file, as with all exported attributes.\nSee [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information.\n" + "description": "Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information.\n" }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "primaryNetworkInterfaceId": { "type": "string", @@ -166691,23 +167677,23 @@ }, "privateDns": { "type": "string", - "description": "The private DNS name assigned to the instance. Can only be\nused inside the Amazon EC2, and only available if you've enabled DNS hostnames\nfor your VPC\n" + "description": "The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC.\n" }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "publicDns": { "type": "string", - "description": "The public DNS name assigned to the instance. For EC2-VPC, this\nis only available if you've enabled DNS hostnames for your VPC\n" + "description": "The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC.\n" }, "publicIp": { "type": "string", - "description": "The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached.\n" + "description": "The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached.\n" }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/InstanceRootBlockDevice:InstanceRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -166726,18 +167712,18 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", @@ -166750,11 +167736,11 @@ "$ref": "#/types/aws:ec2/Tenancy:Tenancy" } ], - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -166765,7 +167751,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -170171,18 +171157,18 @@ "properties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "arn": { "type": "string" }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "blockDurationMinutes": { "type": "integer", @@ -170190,7 +171176,7 @@ }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -170202,18 +171188,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEbsBlockDevice:SpotInstanceRequestEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEnclaveOptions:SpotInstanceRequestEnclaveOptions", @@ -170224,7 +171210,7 @@ "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEphemeralBlockDevice:SpotInstanceRequestEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -170236,15 +171222,15 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceInterruptionBehaviour": { "type": "string", @@ -170255,7 +171241,7 @@ }, "instanceType": { "type": "string", - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -170270,7 +171256,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "launchGroup": { "type": "string", @@ -170299,7 +171285,7 @@ }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "primaryNetworkInterfaceId": { "type": "string" @@ -170310,7 +171296,7 @@ }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "publicDns": { "type": "string", @@ -170322,7 +171308,7 @@ }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/SpotInstanceRequestRootBlockDevice:SpotInstanceRequestRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -170340,7 +171326,7 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "spotBidStatus": { "type": "string", @@ -170363,22 +171349,22 @@ }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -170397,7 +171383,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -170452,15 +171438,15 @@ "inputProperties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "blockDurationMinutes": { "type": "integer", @@ -170468,7 +171454,7 @@ }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -170480,18 +171466,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEbsBlockDevice:SpotInstanceRequestEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEnclaveOptions:SpotInstanceRequestEnclaveOptions", @@ -170502,7 +171488,7 @@ "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEphemeralBlockDevice:SpotInstanceRequestEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -170514,15 +171500,15 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceInterruptionBehaviour": { "type": "string", @@ -170530,7 +171516,7 @@ }, "instanceType": { "type": "string", - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -170545,7 +171531,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "launchGroup": { "type": "string", @@ -170568,15 +171554,15 @@ }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/SpotInstanceRequestRootBlockDevice:SpotInstanceRequestRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -170594,7 +171580,7 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "spotPrice": { "type": "string", @@ -170606,22 +171592,22 @@ }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -170640,7 +171626,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -170663,18 +171649,18 @@ "properties": { "ami": { "type": "string", - "description": "The AMI to use for the instance.\n" + "description": "AMI to use for the instance.\n" }, "arn": { "type": "string" }, "associatePublicIpAddress": { "type": "boolean", - "description": "Associate a public ip address with an instance in a VPC. Boolean value.\n" + "description": "Whether to associate a public IP address with an instance in a VPC.\n" }, "availabilityZone": { "type": "string", - "description": "The AZ to start the instance in.\n" + "description": "AZ to start the instance in.\n" }, "blockDurationMinutes": { "type": "integer", @@ -170682,7 +171668,7 @@ }, "cpuCoreCount": { "type": "integer", - "description": "Sets the number of CPU cores for an instance. This option is\nonly supported on creation of instance type that support CPU Options\n[CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" + "description": "Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API.\n" }, "cpuThreadsPerCore": { "type": "integer", @@ -170694,18 +171680,18 @@ }, "disableApiTermination": { "type": "boolean", - "description": "If true, enables [EC2 Instance\nTermination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination)\n" + "description": "If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination).\n" }, "ebsBlockDevices": { "type": "array", "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEbsBlockDevice:SpotInstanceRequestEbsBlockDevice" }, - "description": "Additional EBS block devices to attach to the\ninstance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" + "description": "Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection.\n" }, "ebsOptimized": { "type": "boolean", - "description": "If true, the launched EC2 instance will be EBS-optimized.\nNote that if this is not set on an instance type that is optimized by default then\nthis will show as disabled but if the instance type is optimized by default then\nthere is no need to set this and there is no effect to disabling it.\nSee the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" + "description": "If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information.\n" }, "enclaveOptions": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEnclaveOptions:SpotInstanceRequestEnclaveOptions", @@ -170716,7 +171702,7 @@ "items": { "$ref": "#/types/aws:ec2/SpotInstanceRequestEphemeralBlockDevice:SpotInstanceRequestEphemeralBlockDevice" }, - "description": "Customize Ephemeral (also known as\n\"Instance Store\") volumes on the instance. See Block Devices below for details.\n" + "description": "Customize Ephemeral (also known as \"Instance Store\") volumes on the instance. See Block Devices below for details.\n" }, "getPasswordData": { "type": "boolean", @@ -170728,15 +171714,15 @@ }, "hostId": { "type": "string", - "description": "The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" + "description": "ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host.\n" }, "iamInstanceProfile": { "type": "string", - "description": "The IAM Instance Profile to\nlaunch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" + "description": "IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`.\n" }, "instanceInitiatedShutdownBehavior": { "type": "string", - "description": "Shutdown behavior for the\ninstance. Amazon defaults this to `stop` for EBS-backed instances and\n`terminate` for instance-store instances. Cannot be set on instance-store\ninstances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" + "description": "Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information.\n" }, "instanceInterruptionBehaviour": { "type": "string", @@ -170747,7 +171733,7 @@ }, "instanceType": { "type": "string", - "description": "The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" + "description": "Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance.\n" }, "ipv6AddressCount": { "type": "integer", @@ -170762,7 +171748,7 @@ }, "keyName": { "type": "string", - "description": "The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" + "description": "Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource.\n" }, "launchGroup": { "type": "string", @@ -170791,7 +171777,7 @@ }, "placementGroup": { "type": "string", - "description": "The Placement Group to start the instance in.\n" + "description": "Placement Group to start the instance in.\n" }, "primaryNetworkInterfaceId": { "type": "string" @@ -170802,7 +171788,7 @@ }, "privateIp": { "type": "string", - "description": "Private IP address to associate with the\ninstance in a VPC.\n" + "description": "Private IP address to associate with the instance in a VPC.\n" }, "publicDns": { "type": "string", @@ -170814,7 +171800,7 @@ }, "rootBlockDevice": { "$ref": "#/types/aws:ec2/SpotInstanceRequestRootBlockDevice:SpotInstanceRequestRootBlockDevice", - "description": "Customize details about the root block\ndevice of the instance. See Block Devices below for details.\n" + "description": "Customize details about the root block device of the instance. See Block Devices below for details.\n" }, "secondaryPrivateIps": { "type": "array", @@ -170832,7 +171818,7 @@ }, "sourceDestCheck": { "type": "boolean", - "description": "Controls if traffic is routed to the instance when\nthe destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" + "description": "Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true.\n" }, "spotBidStatus": { "type": "string", @@ -170855,22 +171841,22 @@ }, "subnetId": { "type": "string", - "description": "The VPC Subnet ID to launch in.\n" + "description": "VPC Subnet ID to launch in.\n" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the resource.\n" + "description": "A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices.\n" }, "tenancy": { "type": "string", - "description": "The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" + "description": "Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command.\n" }, "userData": { "type": "string", - "description": "The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" + "description": "User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead.\n" }, "userDataBase64": { "type": "string", @@ -170889,7 +171875,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map of tags to assign to the devices created by the instance at launch time.\n" + "description": "A map of tags to assign, at instance-creation time, to root and EBS volumes.\n" }, "vpcSecurityGroupIds": { "type": "array", @@ -177732,6 +178718,10 @@ "type": "string", "description": "Version number of the cache engine to be used.\nSee [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)\nin the AWS Documentation center for supported versions\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final cluster snapshot. If omitted, no final snapshot will be made.\n" + }, "maintenanceWindow": { "type": "string", "description": "Specifies the weekly time range for when maintenance\non the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).\nThe minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`\n" @@ -177859,6 +178849,10 @@ "type": "string", "description": "Version number of the cache engine to be used.\nSee [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)\nin the AWS Documentation center for supported versions\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final cluster snapshot. If omitted, no final snapshot will be made.\n" + }, "maintenanceWindow": { "type": "string", "description": "Specifies the weekly time range for when maintenance\non the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).\nThe minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`\n" @@ -177984,6 +178978,10 @@ "type": "string", "description": "Version number of the cache engine to be used.\nSee [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html)\nin the AWS Documentation center for supported versions\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final cluster snapshot. If omitted, no final snapshot will be made.\n" + }, "maintenanceWindow": { "type": "string", "description": "Specifies the weekly time range for when maintenance\non the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC).\nThe minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00`\n" @@ -178184,7 +179182,7 @@ }, "clusterMode": { "$ref": "#/types/aws:elasticache/ReplicationGroupClusterMode:ReplicationGroupClusterMode", - "description": "Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" + "description": "Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" }, "configurationEndpointAddress": { "type": "string", @@ -178198,6 +179196,10 @@ "type": "string", "description": "The version number of the cache engine to be used for the cache clusters in this replication group.\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.\n" + }, "kmsKeyId": { "type": "string", "description": "The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`.\n" @@ -178348,7 +179350,7 @@ }, "clusterMode": { "$ref": "#/types/aws:elasticache/ReplicationGroupClusterMode:ReplicationGroupClusterMode", - "description": "Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" + "description": "Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" }, "engine": { "type": "string", @@ -178358,6 +179360,10 @@ "type": "string", "description": "The version number of the cache engine to be used for the cache clusters in this replication group.\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.\n" + }, "kmsKeyId": { "type": "string", "description": "The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`.\n" @@ -178482,7 +179488,7 @@ }, "clusterMode": { "$ref": "#/types/aws:elasticache/ReplicationGroupClusterMode:ReplicationGroupClusterMode", - "description": "Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" + "description": "Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true.\n" }, "configurationEndpointAddress": { "type": "string", @@ -178496,6 +179502,10 @@ "type": "string", "description": "The version number of the cache engine to be used for the cache clusters in this replication group.\n" }, + "finalSnapshotIdentifier": { + "type": "string", + "description": "The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made.\n" + }, "kmsKeyId": { "type": "string", "description": "The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`.\n" @@ -183394,6 +184404,172 @@ "type": "object" } }, + "aws:fms/policy:Policy": { + "description": "Provides a resource to create an AWS Firewall Manager policy. You need to be using AWS organizations and have enabled the Firewall Manager administrator account.\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.wafregional.RuleGroup(\"test\", {\n metricName: \"WAFRuleGroupExample\",\n});\nconst example = new aws.fms.Policy(\"example\", {\n excludeResourceTags: false,\n remediationEnabled: false,\n resourceTypeLists: [\"AWS::ElasticLoadBalancingV2::LoadBalancer\"],\n securityServicePolicyData: {\n managedServiceData: pulumi.interpolate` {\n \"type\": \"WAF\",\n \"ruleGroups\":\n [{\n \"id\":\"${test.id}\",\n \"overrideAction\" : {\n \"type\": \"COUNT\"\n }\n }],\n \"defaultAction\":\n {\n \"type\": \"BLOCK\"\n },\n \"overrideCustomerWebACLAssociation\": false\n }\n`,\n type: \"WAF\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.wafregional.RuleGroup(\"test\", metric_name=\"WAFRuleGroupExample\")\nexample = aws.fms.Policy(\"example\",\n exclude_resource_tags=False,\n remediation_enabled=False,\n resource_type_lists=[\"AWS::ElasticLoadBalancingV2::LoadBalancer\"],\n security_service_policy_data=aws.fms.PolicySecurityServicePolicyDataArgs(\n managed_service_data=test.id.apply(lambda id: f\"\"\" {{\n \"type\": \"WAF\",\n \"ruleGroups\":\n [{{\n \"id\":\"{id}\",\n \"overrideAction\" : {{\n \"type\": \"COUNT\"\n }}\n }}],\n \"defaultAction\":\n {{\n \"type\": \"BLOCK\"\n }},\n \"overrideCustomerWebACLAssociation\": false\n }}\n\n\"\"\"),\n type=\"WAF\",\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = new Aws.WafRegional.RuleGroup(\"test\", new Aws.WafRegional.RuleGroupArgs\n {\n MetricName = \"WAFRuleGroupExample\",\n });\n var example = new Aws.Fms.Policy(\"example\", new Aws.Fms.PolicyArgs\n {\n ExcludeResourceTags = false,\n RemediationEnabled = false,\n ResourceTypeLists = \n {\n \"AWS::ElasticLoadBalancingV2::LoadBalancer\",\n },\n SecurityServicePolicyData = new Aws.Fms.Inputs.PolicySecurityServicePolicyDataArgs\n {\n ManagedServiceData = test.Id.Apply(id =\u003e @$\" {{\n \"\"type\"\": \"\"WAF\"\",\n \"\"ruleGroups\"\":\n [{{\n \"\"id\"\":\"\"{id}\"\",\n \"\"overrideAction\"\" : {{\n \"\"type\"\": \"\"COUNT\"\"\n }}\n }}],\n \"\"defaultAction\"\":\n {{\n \"\"type\"\": \"\"BLOCK\"\"\n }},\n \"\"overrideCustomerWebACLAssociation\"\": false\n }}\n\n\"),\n Type = \"WAF\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/fms\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/wafregional\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := wafregional.NewRuleGroup(ctx, \"test\", \u0026wafregional.RuleGroupArgs{\n\t\t\tMetricName: pulumi.String(\"WAFRuleGroupExample\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fms.NewPolicy(ctx, \"example\", \u0026fms.PolicyArgs{\n\t\t\tExcludeResourceTags: pulumi.Bool(false),\n\t\t\tRemediationEnabled: pulumi.Bool(false),\n\t\t\tResourceTypeLists: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"AWS::ElasticLoadBalancingV2::LoadBalancer\"),\n\t\t\t},\n\t\t\tSecurityServicePolicyData: \u0026fms.PolicySecurityServicePolicyDataArgs{\n\t\t\t\tManagedServiceData: test.ID().ApplyT(func(id string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v\", \" {\\n\", \" \\\"type\\\": \\\"WAF\\\",\\n\", \" \\\"ruleGroups\\\":\\n\", \" [{\\n\", \" \\\"id\\\":\\\"\", id, \"\\\",\\n\", \" \\\"overrideAction\\\" : {\\n\", \" \\\"type\\\": \\\"COUNT\\\"\\n\", \" }\\n\", \" }],\\n\", \" \\\"defaultAction\\\":\\n\", \" {\\n\", \" \\\"type\\\": \\\"BLOCK\\\"\\n\", \" },\\n\", \" \\\"overrideCustomerWebACLAssociation\\\": false\\n\", \" }\\n\", \"\\n\"), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tType: pulumi.String(\"WAF\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFirewall Manager policies can be imported using the policy ID, e.g.\n\n```sh\n $ pulumi import aws:fms/policy:Policy example 5be49585-a7e3-4c49-dde1-a179fe4a619a\n```\n\n ", + "properties": { + "arn": { + "type": "string" + }, + "deleteAllPolicyResources": { + "type": "boolean", + "description": "If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html)\n" + }, + "excludeMap": { + "$ref": "#/types/aws:fms/PolicyExcludeMap:PolicyExcludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy.\n" + }, + "excludeResourceTags": { + "type": "boolean", + "description": "A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy.\n" + }, + "includeMap": { + "$ref": "#/types/aws:fms/PolicyIncludeMap:PolicyIncludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy.\n" + }, + "name": { + "type": "string", + "description": "The friendly name of the AWS Firewall Manager Policy.\n" + }, + "policyUpdateToken": { + "type": "string", + "description": "A unique identifier for each update to the policy.\n" + }, + "remediationEnabled": { + "type": "boolean", + "description": "A boolean value, indicates if the policy should automatically applied to resources that already exist in the account.\n" + }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags.\n" + }, + "resourceTypeLists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`.\n" + }, + "securityServicePolicyData": { + "$ref": "#/types/aws:fms/PolicySecurityServicePolicyData:PolicySecurityServicePolicyData", + "description": "The objects to include in Security Service Policy Data. Documented below.\n" + } + }, + "required": [ + "arn", + "excludeResourceTags", + "name", + "policyUpdateToken", + "resourceTypeLists", + "securityServicePolicyData" + ], + "inputProperties": { + "deleteAllPolicyResources": { + "type": "boolean", + "description": "If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html)\n" + }, + "excludeMap": { + "$ref": "#/types/aws:fms/PolicyExcludeMap:PolicyExcludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy.\n" + }, + "excludeResourceTags": { + "type": "boolean", + "description": "A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy.\n" + }, + "includeMap": { + "$ref": "#/types/aws:fms/PolicyIncludeMap:PolicyIncludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy.\n" + }, + "name": { + "type": "string", + "description": "The friendly name of the AWS Firewall Manager Policy.\n" + }, + "remediationEnabled": { + "type": "boolean", + "description": "A boolean value, indicates if the policy should automatically applied to resources that already exist in the account.\n" + }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags.\n" + }, + "resourceTypeLists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`.\n" + }, + "securityServicePolicyData": { + "$ref": "#/types/aws:fms/PolicySecurityServicePolicyData:PolicySecurityServicePolicyData", + "description": "The objects to include in Security Service Policy Data. Documented below.\n" + } + }, + "requiredInputs": [ + "excludeResourceTags", + "resourceTypeLists", + "securityServicePolicyData" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Policy resources.\n", + "properties": { + "arn": { + "type": "string" + }, + "deleteAllPolicyResources": { + "type": "boolean", + "description": "If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html)\n" + }, + "excludeMap": { + "$ref": "#/types/aws:fms/PolicyExcludeMap:PolicyExcludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy.\n" + }, + "excludeResourceTags": { + "type": "boolean", + "description": "A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy.\n" + }, + "includeMap": { + "$ref": "#/types/aws:fms/PolicyIncludeMap:PolicyIncludeMap", + "description": "A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy.\n" + }, + "name": { + "type": "string", + "description": "The friendly name of the AWS Firewall Manager Policy.\n" + }, + "policyUpdateToken": { + "type": "string", + "description": "A unique identifier for each update to the policy.\n" + }, + "remediationEnabled": { + "type": "boolean", + "description": "A boolean value, indicates if the policy should automatically applied to resources that already exist in the account.\n" + }, + "resourceTags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags.\n" + }, + "resourceTypeLists": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`.\n" + }, + "securityServicePolicyData": { + "$ref": "#/types/aws:fms/PolicySecurityServicePolicyData:PolicySecurityServicePolicyData", + "description": "The objects to include in Security Service Policy Data. Documented below.\n" + } + }, + "type": "object" + } + }, "aws:fsx/lustreFileSystem:LustreFileSystem": { "description": "Manages a FSx Lustre File System. See the [FSx Lustre Guide](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html) for 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\nconst example = new aws.fsx.LustreFileSystem(\"example\", {\n importPath: `s3://${aws_s3_bucket.example.bucket}`,\n storageCapacity: 1200,\n subnetIds: [aws_subnet.example.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.fsx.LustreFileSystem(\"example\",\n import_path=f\"s3://{aws_s3_bucket['example']['bucket']}\",\n storage_capacity=1200,\n subnet_ids=[aws_subnet[\"example\"][\"id\"]])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Fsx.LustreFileSystem(\"example\", new Aws.Fsx.LustreFileSystemArgs\n {\n ImportPath = $\"s3://{aws_s3_bucket.Example.Bucket}\",\n StorageCapacity = 1200,\n SubnetIds = \n {\n aws_subnet.Example.Id,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/fsx\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fsx.NewLustreFileSystem(ctx, \"example\", \u0026fsx.LustreFileSystemArgs{\n\t\t\tImportPath: pulumi.String(fmt.Sprintf(\"%v%v\", \"s3://\", aws_s3_bucket.Example.Bucket)),\n\t\t\tStorageCapacity: pulumi.Int(1200),\n\t\t\tSubnetIds: pulumi.String(pulumi.String{\n\t\t\t\tpulumi.Any(aws_subnet.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nFSx File Systems can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:fsx/lustreFileSystem:LustreFileSystem example fs-543ab12b1ca672f33\n```\n\n Certain resource arguments, like `security_group_ids`, do not have a FSx API method for reading the information after creation. If the argument is set in the provider configuration on an imported resource, this provider will always show a difference. To workaround this behavior, either omit the argument from the provider configuration or use [`ignoreChanges`](https://www.pulumi.com/docs/intro/concepts/programming-model/#ignorechanges) to hide the difference, e.g. hcl resource \"aws_fsx_lustre_file_system\" \"example\" {\n\n # ... other configuration ...\n\n security_group_ids = [aws_security_group.example.id]\n\n # There is no FSx API for reading security_group_ids\n\n lifecycle {\n\n\n\n ignore_changes = [security_group_ids]\n\n } } ", "properties": { @@ -209923,7 +211099,7 @@ }, "finalSnapshotIdentifier": { "type": "string", - "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`.\n" + "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.\n" }, "hostedZoneId": { "type": "string", @@ -210205,7 +211381,7 @@ }, "finalSnapshotIdentifier": { "type": "string", - "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`.\n" + "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.\n" }, "iamDatabaseAuthenticationEnabled": { "type": "boolean", @@ -210462,7 +211638,7 @@ }, "finalSnapshotIdentifier": { "type": "string", - "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`.\n" + "description": "The name of your final DB snapshot\nwhen this DB instance is deleted. Must be provided if `skip_final_snapshot` is\nset to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica.\n" }, "hostedZoneId": { "type": "string", @@ -213693,6 +214869,64 @@ "type": "object" } }, + "aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig": { + "description": "Provides a Route 53 Resolver DNSSEC config 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 exampleVpc = new aws.ec2.Vpc(\"exampleVpc\", {\n cidrBlock: \"10.0.0.0/16\",\n enableDnsSupport: true,\n enableDnsHostnames: true,\n});\nconst exampleResolverDnsSecConfig = new aws.route53.ResolverDnsSecConfig(\"exampleResolverDnsSecConfig\", {resourceId: exampleVpc.id});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_vpc = aws.ec2.Vpc(\"exampleVpc\",\n cidr_block=\"10.0.0.0/16\",\n enable_dns_support=True,\n enable_dns_hostnames=True)\nexample_resolver_dns_sec_config = aws.route53.ResolverDnsSecConfig(\"exampleResolverDnsSecConfig\", resource_id=example_vpc.id)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleVpc = new Aws.Ec2.Vpc(\"exampleVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"10.0.0.0/16\",\n EnableDnsSupport = true,\n EnableDnsHostnames = true,\n });\n var exampleResolverDnsSecConfig = new Aws.Route53.ResolverDnsSecConfig(\"exampleResolverDnsSecConfig\", new Aws.Route53.ResolverDnsSecConfigArgs\n {\n ResourceId = exampleVpc.Id,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := ec2.NewVpc(ctx, \"exampleVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t\tEnableDnsSupport: pulumi.Bool(true),\n\t\t\tEnableDnsHostnames: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = route53.NewResolverDnsSecConfig(ctx, \"exampleResolverDnsSecConfig\", \u0026route53.ResolverDnsSecConfigArgs{\n\t\t\tResourceId: exampleVpc.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n Route 53 Resolver DNSSEC configs can be imported using the Route 53 Resolver DNSSEC config ID, e.g.\n\n```sh\n $ pulumi import aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig example rdsc-be1866ecc1683e95\n```\n\n ", + "properties": { + "arn": { + "type": "string", + "description": "The ARN for a configuration for DNSSEC validation.\n" + }, + "ownerId": { + "type": "string", + "description": "The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation.\n" + }, + "resourceId": { + "type": "string", + "description": "The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for.\n" + }, + "validationStatus": { + "type": "string", + "description": "The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`.\n" + } + }, + "required": [ + "arn", + "ownerId", + "resourceId", + "validationStatus" + ], + "inputProperties": { + "resourceId": { + "type": "string", + "description": "The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for.\n" + } + }, + "requiredInputs": [ + "resourceId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ResolverDnsSecConfig resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN for a configuration for DNSSEC validation.\n" + }, + "ownerId": { + "type": "string", + "description": "The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation.\n" + }, + "resourceId": { + "type": "string", + "description": "The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for.\n" + }, + "validationStatus": { + "type": "string", + "description": "The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`.\n" + } + }, + "type": "object" + } + }, "aws:route53/resolverEndpoint:ResolverEndpoint": { "description": "Provides a Route 53 Resolver endpoint 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 foo = new aws.route53.ResolverEndpoint(\"foo\", {\n direction: \"INBOUND\",\n securityGroupIds: [\n aws_security_group.sg1.id,\n aws_security_group.sg2.id,\n ],\n ipAddresses: [\n {\n subnetId: aws_subnet.sn1.id,\n },\n {\n subnetId: aws_subnet.sn2.id,\n ip: \"10.0.64.4\",\n },\n ],\n tags: {\n Environment: \"Prod\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nfoo = aws.route53.ResolverEndpoint(\"foo\",\n direction=\"INBOUND\",\n security_group_ids=[\n aws_security_group[\"sg1\"][\"id\"],\n aws_security_group[\"sg2\"][\"id\"],\n ],\n ip_addresses=[\n aws.route53.ResolverEndpointIpAddressArgs(\n subnet_id=aws_subnet[\"sn1\"][\"id\"],\n ),\n aws.route53.ResolverEndpointIpAddressArgs(\n subnet_id=aws_subnet[\"sn2\"][\"id\"],\n ip=\"10.0.64.4\",\n ),\n ],\n tags={\n \"Environment\": \"Prod\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var foo = new Aws.Route53.ResolverEndpoint(\"foo\", new Aws.Route53.ResolverEndpointArgs\n {\n Direction = \"INBOUND\",\n SecurityGroupIds = \n {\n aws_security_group.Sg1.Id,\n aws_security_group.Sg2.Id,\n },\n IpAddresses = \n {\n new Aws.Route53.Inputs.ResolverEndpointIpAddressArgs\n {\n SubnetId = aws_subnet.Sn1.Id,\n },\n new Aws.Route53.Inputs.ResolverEndpointIpAddressArgs\n {\n SubnetId = aws_subnet.Sn2.Id,\n Ip = \"10.0.64.4\",\n },\n },\n Tags = \n {\n { \"Environment\", \"Prod\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/route53\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := route53.NewResolverEndpoint(ctx, \"foo\", \u0026route53.ResolverEndpointArgs{\n\t\t\tDirection: pulumi.String(\"INBOUND\"),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_security_group.Sg1.Id),\n\t\t\t\tpulumi.Any(aws_security_group.Sg2.Id),\n\t\t\t},\n\t\t\tIpAddresses: route53.ResolverEndpointIpAddressArray{\n\t\t\t\t\u0026route53.ResolverEndpointIpAddressArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(aws_subnet.Sn1.Id),\n\t\t\t\t},\n\t\t\t\t\u0026route53.ResolverEndpointIpAddressArgs{\n\t\t\t\t\tSubnetId: pulumi.Any(aws_subnet.Sn2.Id),\n\t\t\t\t\tIp: pulumi.String(\"10.0.64.4\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"Prod\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\n Route 53 Resolver endpoints can be imported using the Route 53 Resolver endpoint ID, e.g.\n\n```sh\n $ pulumi import aws:route53/resolverEndpoint:ResolverEndpoint foo rslvr-in-abcdef01234567890\n```\n\n ", "properties": { @@ -216235,6 +217469,183 @@ "type": "object" } }, + "aws:sagemaker/domain:Domain": { + "description": "Provides a Sagemaker Domain resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleDomain = new aws.sagemaker.Domain(\"exampleDomain\", {\n domainName: \"example\",\n authMode: \"IAM\",\n vpcId: aws_vpc.test.id,\n subnetIds: [aws_subnet.test.id],\n defaultUserSettings: {\n executionRole: aws_iam_role.test.arn,\n },\n});\nconst examplePolicyDocument = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"sagemaker.amazonaws.com\"],\n }],\n }],\n});\nconst exampleRole = new aws.iam.Role(\"exampleRole\", {\n path: \"/\",\n assumeRolePolicy: examplePolicyDocument.then(examplePolicyDocument =\u003e examplePolicyDocument.json),\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_domain = aws.sagemaker.Domain(\"exampleDomain\",\n domain_name=\"example\",\n auth_mode=\"IAM\",\n vpc_id=aws_vpc[\"test\"][\"id\"],\n subnet_ids=[aws_subnet[\"test\"][\"id\"]],\n default_user_settings=aws.sagemaker.DomainDefaultUserSettingsArgs(\n execution_role=aws_iam_role[\"test\"][\"arn\"],\n ))\nexample_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"sagemaker.amazonaws.com\"],\n )],\n)])\nexample_role = aws.iam.Role(\"exampleRole\",\n path=\"/\",\n assume_role_policy=example_policy_document.json)\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleDomain = new Aws.Sagemaker.Domain(\"exampleDomain\", new Aws.Sagemaker.DomainArgs\n {\n DomainName = \"example\",\n AuthMode = \"IAM\",\n VpcId = aws_vpc.Test.Id,\n SubnetIds = \n {\n aws_subnet.Test.Id,\n },\n DefaultUserSettings = new Aws.Sagemaker.Inputs.DomainDefaultUserSettingsArgs\n {\n ExecutionRole = aws_iam_role.Test.Arn,\n },\n });\n var examplePolicyDocument = Output.Create(Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs\n {\n Statements = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs\n {\n Actions = \n {\n \"sts:AssumeRole\",\n },\n Principals = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs\n {\n Type = \"Service\",\n Identifiers = \n {\n \"sagemaker.amazonaws.com\",\n },\n },\n },\n },\n },\n }));\n var exampleRole = new Aws.Iam.Role(\"exampleRole\", new Aws.Iam.RoleArgs\n {\n Path = \"/\",\n AssumeRolePolicy = examplePolicyDocument.Apply(examplePolicyDocument =\u003e examplePolicyDocument.Json),\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sagemaker.NewDomain(ctx, \"exampleDomain\", \u0026sagemaker.DomainArgs{\n\t\t\tDomainName: pulumi.String(\"example\"),\n\t\t\tAuthMode: pulumi.String(\"IAM\"),\n\t\t\tVpcId: pulumi.Any(aws_vpc.Test.Id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.Any(aws_subnet.Test.Id),\n\t\t\t},\n\t\t\tDefaultUserSettings: \u0026sagemaker.DomainDefaultUserSettingsArgs{\n\t\t\t\tExecutionRole: pulumi.Any(aws_iam_role.Test.Arn),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePolicyDocument, 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\"sagemaker.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, \"exampleRole\", \u0026iam.RoleArgs{\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tAssumeRolePolicy: pulumi.String(examplePolicyDocument.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSagemaker Code Domains can be imported using the `id`, e.g.\n\n```sh\n $ pulumi import aws:sagemaker/domain:Domain test_domain d-8jgsjtilstu8\n```\n\n ", + "properties": { + "appNetworkAccessType": { + "type": "string", + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" + }, + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Domain.\n" + }, + "authMode": { + "type": "string", + "description": "The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`.\n" + }, + "defaultUserSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings", + "description": "The default user settings. See Default User Settings below.\n" + }, + "domainName": { + "type": "string", + "description": "The domain name.\n" + }, + "homeEfsFileSystemId": { + "type": "string", + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain.\n" + }, + "singleSignOnManagedApplicationInstanceId": { + "type": "string", + "description": "The SSO managed application instance ID.\n" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The VPC subnets that Studio uses for communication.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "url": { + "type": "string", + "description": "The domain's URL.\n" + }, + "vpcId": { + "type": "string", + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.\n" + } + }, + "required": [ + "arn", + "authMode", + "defaultUserSettings", + "domainName", + "homeEfsFileSystemId", + "singleSignOnManagedApplicationInstanceId", + "subnetIds", + "url", + "vpcId" + ], + "inputProperties": { + "appNetworkAccessType": { + "type": "string", + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" + }, + "authMode": { + "type": "string", + "description": "The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`.\n" + }, + "defaultUserSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings", + "description": "The default user settings. See Default User Settings below.\n" + }, + "domainName": { + "type": "string", + "description": "The domain name.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain.\n" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The VPC subnets that Studio uses for communication.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "vpcId": { + "type": "string", + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.\n" + } + }, + "requiredInputs": [ + "authMode", + "defaultUserSettings", + "domainName", + "subnetIds", + "vpcId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Domain resources.\n", + "properties": { + "appNetworkAccessType": { + "type": "string", + "description": "Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`.\n" + }, + "arn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) assigned by AWS to this Domain.\n" + }, + "authMode": { + "type": "string", + "description": "The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`.\n" + }, + "defaultUserSettings": { + "$ref": "#/types/aws:sagemaker/DomainDefaultUserSettings:DomainDefaultUserSettings", + "description": "The default user settings. See Default User Settings below.\n" + }, + "domainName": { + "type": "string", + "description": "The domain name.\n" + }, + "homeEfsFileSystemId": { + "type": "string", + "description": "The ID of the Amazon Elastic File System (EFS) managed by this Domain.\n" + }, + "kmsKeyId": { + "type": "string", + "description": "The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain.\n" + }, + "singleSignOnManagedApplicationInstanceId": { + "type": "string", + "description": "The SSO managed application instance ID.\n" + }, + "subnetIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The VPC subnets that Studio uses for communication.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "url": { + "type": "string", + "description": "The domain's URL.\n" + }, + "vpcId": { + "type": "string", + "description": "The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.\n" + } + }, + "type": "object" + } + }, "aws:sagemaker/endpoint:Endpoint": { "description": "Provides a SageMaker Endpoint resource.\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 endpoint = new aws.sagemaker.Endpoint(\"endpoint\", {\n endpointConfigName: aws_sagemaker_endpoint_configuration.ec.name,\n tags: {\n Name: \"foo\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nendpoint = aws.sagemaker.Endpoint(\"endpoint\",\n endpoint_config_name=aws_sagemaker_endpoint_configuration[\"ec\"][\"name\"],\n tags={\n \"Name\": \"foo\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var endpoint = new Aws.Sagemaker.Endpoint(\"endpoint\", new Aws.Sagemaker.EndpointArgs\n {\n EndpointConfigName = aws_sagemaker_endpoint_configuration.Ec.Name,\n Tags = \n {\n { \"Name\", \"foo\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := sagemaker.NewEndpoint(ctx, \"endpoint\", \u0026sagemaker.EndpointArgs{\n\t\t\tEndpointConfigName: pulumi.Any(aws_sagemaker_endpoint_configuration.Ec.Name),\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Name\": pulumi.String(\"foo\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nEndpoints can be imported using the `name`, e.g.\n\n```sh\n $ pulumi import aws:sagemaker/endpoint:Endpoint test_endpoint my-endpoint\n```\n\n ", "properties": { @@ -222428,6 +223839,105 @@ "type": "object" } }, + "aws:ssoadmin/accountAssignment:AccountAssignment": { + "description": "Provides a Single Sign-On (SSO) Account Assignment resource\n\n\n## Import\n\nSSO Account Assignments can be imported using the `principal_id`, `principal_type`, `target_id`, `target_type`, `permission_set_arn`, `instance_arn` separated by commas (`,`) e.g.\n\n```sh\n $ pulumi import aws:ssoadmin/accountAssignment:AccountAssignment example f81d4fae-7dec-11d0-a765-00a0c91e6bf6,GROUP,1234567890,AWS_ACCOUNT,arn:aws:sso:::permissionSet/ssoins-0123456789abcdef/ps-0123456789abcdef,arn:aws:sso:::instance/ssoins-0123456789abcdef\n```\n\n ", + "properties": { + "instanceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SSO Instance.\n" + }, + "permissionSetArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to.\n" + }, + "principalId": { + "type": "string", + "description": "An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`).\n" + }, + "principalType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`.\n" + }, + "targetId": { + "type": "string", + "description": "An AWS account identifier, typically a 10-12 digit string.\n" + }, + "targetType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`.\n" + } + }, + "required": [ + "instanceArn", + "permissionSetArn", + "principalId", + "principalType", + "targetId" + ], + "inputProperties": { + "instanceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SSO Instance.\n" + }, + "permissionSetArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to.\n" + }, + "principalId": { + "type": "string", + "description": "An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`).\n" + }, + "principalType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`.\n" + }, + "targetId": { + "type": "string", + "description": "An AWS account identifier, typically a 10-12 digit string.\n" + }, + "targetType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`.\n" + } + }, + "requiredInputs": [ + "instanceArn", + "permissionSetArn", + "principalId", + "principalType", + "targetId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering AccountAssignment resources.\n", + "properties": { + "instanceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the SSO Instance.\n" + }, + "permissionSetArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to.\n" + }, + "principalId": { + "type": "string", + "description": "An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`).\n" + }, + "principalType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`.\n" + }, + "targetId": { + "type": "string", + "description": "An AWS account identifier, typically a 10-12 digit string.\n" + }, + "targetType": { + "type": "string", + "description": "The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`.\n" + } + }, + "type": "object" + } + }, "aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment": { "description": "Provides an IAM managed policy for a Single Sign-On (SSO) Permission Set resource\n\n\u003e **NOTE:** Creating this resource will automatically [Provision the Permission Set](https://docs.aws.amazon.com/singlesignon/latest/APIReference/API_ProvisionPermissionSet.html) to apply the corresponding updates to all assigned accounts.\n\n\n## Import\n\nSSO Managed Policy Attachments can be imported using the `managed_policy_arn`, `permission_set_arn`, and `instance_arn` separated by a comma (`,`) e.g.\n\n```sh\n $ pulumi import aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment example arn:aws:iam::aws:policy/AlexaForBusinessDeviceSetup,arn:aws:sso:::permissionSet/ssoins-2938j0x8920sbj72/ps-80383020jr9302rk,arn:aws:sso:::instance/ssoins-2938j0x8920sbj72\n```\n\n ", "properties": { @@ -227333,7 +228843,7 @@ } }, "aws:workspaces/directory:Directory": { - "description": "Provides a WorkSpaces directory in AWS WorkSpaces Service.\n\n\u003e **NOTE:** AWS WorkSpaces service requires [`workspaces_DefaultRole`](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role) IAM role to operate normally.\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 workspaces = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"workspaces.amazonaws.com\"],\n }],\n }],\n});\nconst workspacesDefault = new aws.iam.Role(\"workspacesDefault\", {assumeRolePolicy: workspaces.then(workspaces =\u003e workspaces.json)});\nconst workspacesDefaultServiceAccess = new aws.iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\", {\n role: workspacesDefault.name,\n policyArn: \"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\",\n});\nconst workspacesDefaultSelfServiceAccess = new aws.iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\", {\n role: workspacesDefault.name,\n policyArn: \"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\",\n});\nconst exampleVpc = new aws.ec2.Vpc(\"exampleVpc\", {cidrBlock: \"10.0.0.0/16\"});\nconst exampleC = new aws.ec2.Subnet(\"exampleC\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1c\",\n cidrBlock: \"10.0.2.0/24\",\n});\nconst exampleD = new aws.ec2.Subnet(\"exampleD\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1d\",\n cidrBlock: \"10.0.3.0/24\",\n});\nconst exampleDirectory = new aws.workspaces.Directory(\"exampleDirectory\", {\n directoryId: exampleDirectoryservice / directoryDirectory.id,\n subnetIds: [\n exampleC.id,\n exampleD.id,\n ],\n tags: {\n Example: true,\n },\n selfServicePermissions: {\n changeComputeType: true,\n increaseVolumeSize: true,\n rebuildWorkspace: true,\n restartWorkspace: true,\n switchRunningMode: true,\n },\n workspaceCreationProperties: {\n customSecurityGroupId: aws_security_group.example.id,\n defaultOu: \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enableInternetAccess: true,\n enableMaintenanceMode: true,\n userEnabledAsLocalAdministrator: true,\n },\n}, {\n dependsOn: [\n workspacesDefaultServiceAccess,\n workspacesDefaultSelfServiceAccess,\n ],\n});\nconst exampleA = new aws.ec2.Subnet(\"exampleA\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1a\",\n cidrBlock: \"10.0.0.0/24\",\n});\nconst exampleB = new aws.ec2.Subnet(\"exampleB\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1b\",\n cidrBlock: \"10.0.1.0/24\",\n});\nconst exampleDirectoryservice_directoryDirectory = new aws.directoryservice.Directory(\"exampleDirectoryservice/directoryDirectory\", {\n name: \"corp.example.com\",\n password: \"#S1ncerely\",\n size: \"Small\",\n vpcSettings: {\n vpcId: exampleVpc.id,\n subnetIds: [\n exampleA.id,\n exampleB.id,\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nworkspaces = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"workspaces.amazonaws.com\"],\n )],\n)])\nworkspaces_default = aws.iam.Role(\"workspacesDefault\", assume_role_policy=workspaces.json)\nworkspaces_default_service_access = aws.iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\",\n role=workspaces_default.name,\n policy_arn=\"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\")\nworkspaces_default_self_service_access = aws.iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\",\n role=workspaces_default.name,\n policy_arn=\"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\")\nexample_vpc = aws.ec2.Vpc(\"exampleVpc\", cidr_block=\"10.0.0.0/16\")\nexample_c = aws.ec2.Subnet(\"exampleC\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1c\",\n cidr_block=\"10.0.2.0/24\")\nexample_d = aws.ec2.Subnet(\"exampleD\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1d\",\n cidr_block=\"10.0.3.0/24\")\nexample_directory = aws.workspaces.Directory(\"exampleDirectory\",\n directory_id=example_directoryservice / directory_directory[\"id\"],\n subnet_ids=[\n example_c.id,\n example_d.id,\n ],\n tags={\n \"Example\": \"true\",\n },\n self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs(\n change_compute_type=True,\n increase_volume_size=True,\n rebuild_workspace=True,\n restart_workspace=True,\n switch_running_mode=True,\n ),\n workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs(\n custom_security_group_id=aws_security_group[\"example\"][\"id\"],\n default_ou=\"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enable_internet_access=True,\n enable_maintenance_mode=True,\n user_enabled_as_local_administrator=True,\n ),\n opts=pulumi.ResourceOptions(depends_on=[\n workspaces_default_service_access,\n workspaces_default_self_service_access,\n ]))\nexample_a = aws.ec2.Subnet(\"exampleA\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1a\",\n cidr_block=\"10.0.0.0/24\")\nexample_b = aws.ec2.Subnet(\"exampleB\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1b\",\n cidr_block=\"10.0.1.0/24\")\nexample_directoryservice_directory_directory = aws.directoryservice.Directory(\"exampleDirectoryservice/directoryDirectory\",\n name=\"corp.example.com\",\n password=\"#S1ncerely\",\n size=\"Small\",\n vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs(\n vpc_id=example_vpc.id,\n subnet_ids=[\n example_a.id,\n example_b.id,\n ],\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var workspaces = Output.Create(Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs\n {\n Statements = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs\n {\n Actions = \n {\n \"sts:AssumeRole\",\n },\n Principals = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs\n {\n Type = \"Service\",\n Identifiers = \n {\n \"workspaces.amazonaws.com\",\n },\n },\n },\n },\n },\n }));\n var workspacesDefault = new Aws.Iam.Role(\"workspacesDefault\", new Aws.Iam.RoleArgs\n {\n AssumeRolePolicy = workspaces.Apply(workspaces =\u003e workspaces.Json),\n });\n var workspacesDefaultServiceAccess = new Aws.Iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\", new Aws.Iam.RolePolicyAttachmentArgs\n {\n Role = workspacesDefault.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\",\n });\n var workspacesDefaultSelfServiceAccess = new Aws.Iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\", new Aws.Iam.RolePolicyAttachmentArgs\n {\n Role = workspacesDefault.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\",\n });\n var exampleVpc = new Aws.Ec2.Vpc(\"exampleVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n var exampleC = new Aws.Ec2.Subnet(\"exampleC\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1c\",\n CidrBlock = \"10.0.2.0/24\",\n });\n var exampleD = new Aws.Ec2.Subnet(\"exampleD\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1d\",\n CidrBlock = \"10.0.3.0/24\",\n });\n var exampleDirectory = new Aws.Workspaces.Directory(\"exampleDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = exampleDirectoryservice / directoryDirectory.Id,\n SubnetIds = \n {\n exampleC.Id,\n exampleD.Id,\n },\n Tags = \n {\n { \"Example\", \"true\" },\n },\n SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs\n {\n ChangeComputeType = true,\n IncreaseVolumeSize = true,\n RebuildWorkspace = true,\n RestartWorkspace = true,\n SwitchRunningMode = true,\n },\n WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs\n {\n CustomSecurityGroupId = aws_security_group.Example.Id,\n DefaultOu = \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n EnableInternetAccess = true,\n EnableMaintenanceMode = true,\n UserEnabledAsLocalAdministrator = true,\n },\n }, new CustomResourceOptions\n {\n DependsOn = \n {\n workspacesDefaultServiceAccess,\n workspacesDefaultSelfServiceAccess,\n },\n });\n var exampleA = new Aws.Ec2.Subnet(\"exampleA\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1a\",\n CidrBlock = \"10.0.0.0/24\",\n });\n var exampleB = new Aws.Ec2.Subnet(\"exampleB\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1b\",\n CidrBlock = \"10.0.1.0/24\",\n });\n var exampleDirectoryservice_directoryDirectory = new Aws.DirectoryService.Directory(\"exampleDirectoryservice/directoryDirectory\", new Aws.DirectoryService.DirectoryArgs\n {\n Name = \"corp.example.com\",\n Password = \"#S1ncerely\",\n Size = \"Small\",\n VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs\n {\n VpcId = exampleVpc.Id,\n SubnetIds = \n {\n exampleA.Id,\n exampleB.Id,\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/directoryservice\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tworkspaces, 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\"workspaces.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\tworkspacesDefault, err := iam.NewRole(ctx, \"workspacesDefault\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(workspaces.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspacesDefaultServiceAccess, err := iam.NewRolePolicyAttachment(ctx, \"workspacesDefaultServiceAccess\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: workspacesDefault.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspacesDefaultSelfServiceAccess, err := iam.NewRolePolicyAttachment(ctx, \"workspacesDefaultSelfServiceAccess\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: workspacesDefault.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := ec2.NewVpc(ctx, \"exampleVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleC, err := ec2.NewSubnet(ctx, \"exampleC\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1c\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleD, err := ec2.NewSubnet(ctx, \"exampleD\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1d\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"exampleDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: pulumi.String(exampleDirectoryservice / directoryDirectory.Id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleC.ID(),\n\t\t\t\texampleD.ID(),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Example\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tSelfServicePermissions: \u0026workspaces.DirectorySelfServicePermissionsArgs{\n\t\t\t\tChangeComputeType: pulumi.Bool(true),\n\t\t\t\tIncreaseVolumeSize: pulumi.Bool(true),\n\t\t\t\tRebuildWorkspace: pulumi.Bool(true),\n\t\t\t\tRestartWorkspace: pulumi.Bool(true),\n\t\t\t\tSwitchRunningMode: pulumi.Bool(true),\n\t\t\t},\n\t\t\tWorkspaceCreationProperties: \u0026workspaces.DirectoryWorkspaceCreationPropertiesArgs{\n\t\t\t\tCustomSecurityGroupId: pulumi.Any(aws_security_group.Example.Id),\n\t\t\t\tDefaultOu: pulumi.String(\"OU=AWS,DC=Workgroup,DC=Example,DC=com\"),\n\t\t\t\tEnableInternetAccess: pulumi.Bool(true),\n\t\t\t\tEnableMaintenanceMode: pulumi.Bool(true),\n\t\t\t\tUserEnabledAsLocalAdministrator: pulumi.Bool(true),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tworkspacesDefaultServiceAccess,\n\t\t\tworkspacesDefaultSelfServiceAccess,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleA, err := ec2.NewSubnet(ctx, \"exampleA\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleB, err := ec2.NewSubnet(ctx, \"exampleB\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1b\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = directoryservice.NewDirectory(ctx, \"exampleDirectoryservice_directoryDirectory\", \u0026directoryservice.DirectoryArgs{\n\t\t\tName: pulumi.String(\"corp.example.com\"),\n\t\t\tPassword: pulumi.String(\"#S1ncerely\"),\n\t\t\tSize: pulumi.String(\"Small\"),\n\t\t\tVpcSettings: \u0026directoryservice.DirectoryVpcSettingsArgs{\n\t\t\t\tVpcId: exampleVpc.ID(),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleA.ID(),\n\t\t\t\t\texampleB.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### IP Groups\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleIpGroup = new aws.workspaces.IpGroup(\"exampleIpGroup\", {});\nconst exampleDirectory = new aws.workspaces.Directory(\"exampleDirectory\", {\n directoryId: aws_directory_service_directory.example.id,\n ipGroupIds: [exampleIpGroup.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_ip_group = aws.workspaces.IpGroup(\"exampleIpGroup\")\nexample_directory = aws.workspaces.Directory(\"exampleDirectory\",\n directory_id=aws_directory_service_directory[\"example\"][\"id\"],\n ip_group_ids=[example_ip_group.id])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleIpGroup = new Aws.Workspaces.IpGroup(\"exampleIpGroup\", new Aws.Workspaces.IpGroupArgs\n {\n });\n var exampleDirectory = new Aws.Workspaces.Directory(\"exampleDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = aws_directory_service_directory.Example.Id,\n IpGroupIds = \n {\n exampleIpGroup.Id,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleIpGroup, err := workspaces.NewIpGroup(ctx, \"exampleIpGroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"exampleDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: pulumi.Any(aws_directory_service_directory.Example.Id),\n\t\t\tIpGroupIds: pulumi.StringArray{\n\t\t\t\texampleIpGroup.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWorkspaces directory can be imported using the directory ID, e.g.\n\n```sh\n $ pulumi import aws:workspaces/directory:Directory main d-4444444444\n```\n\n ", + "description": "Provides a WorkSpaces directory in AWS WorkSpaces Service.\n\n\u003e **NOTE:** AWS WorkSpaces service requires [`workspaces_DefaultRole`](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role) IAM role to operate normally.\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 workspaces = aws.iam.getPolicyDocument({\n statements: [{\n actions: [\"sts:AssumeRole\"],\n principals: [{\n type: \"Service\",\n identifiers: [\"workspaces.amazonaws.com\"],\n }],\n }],\n});\nconst workspacesDefault = new aws.iam.Role(\"workspacesDefault\", {assumeRolePolicy: workspaces.then(workspaces =\u003e workspaces.json)});\nconst workspacesDefaultServiceAccess = new aws.iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\", {\n role: workspacesDefault.name,\n policyArn: \"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\",\n});\nconst workspacesDefaultSelfServiceAccess = new aws.iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\", {\n role: workspacesDefault.name,\n policyArn: \"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\",\n});\nconst exampleVpc = new aws.ec2.Vpc(\"exampleVpc\", {cidrBlock: \"10.0.0.0/16\"});\nconst exampleC = new aws.ec2.Subnet(\"exampleC\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1c\",\n cidrBlock: \"10.0.2.0/24\",\n});\nconst exampleD = new aws.ec2.Subnet(\"exampleD\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1d\",\n cidrBlock: \"10.0.3.0/24\",\n});\nconst exampleDirectory = new aws.workspaces.Directory(\"exampleDirectory\", {\n directoryId: exampleDirectoryservice / directoryDirectory.id,\n subnetIds: [\n exampleC.id,\n exampleD.id,\n ],\n tags: {\n Example: true,\n },\n selfServicePermissions: {\n changeComputeType: true,\n increaseVolumeSize: true,\n rebuildWorkspace: true,\n restartWorkspace: true,\n switchRunningMode: true,\n },\n workspaceAccessProperties: {\n deviceTypeAndroid: \"ALLOW\",\n deviceTypeChromeos: \"ALLOW\",\n deviceTypeIos: \"ALLOW\",\n deviceTypeOsx: \"ALLOW\",\n deviceTypeWeb: \"DENY\",\n deviceTypeWindows: \"DENY\",\n deviceTypeZeroclient: \"DENY\",\n },\n workspaceCreationProperties: {\n customSecurityGroupId: aws_security_group.example.id,\n defaultOu: \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enableInternetAccess: true,\n enableMaintenanceMode: true,\n userEnabledAsLocalAdministrator: true,\n },\n}, {\n dependsOn: [\n workspacesDefaultServiceAccess,\n workspacesDefaultSelfServiceAccess,\n ],\n});\nconst exampleA = new aws.ec2.Subnet(\"exampleA\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1a\",\n cidrBlock: \"10.0.0.0/24\",\n});\nconst exampleB = new aws.ec2.Subnet(\"exampleB\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1b\",\n cidrBlock: \"10.0.1.0/24\",\n});\nconst exampleDirectoryservice_directoryDirectory = new aws.directoryservice.Directory(\"exampleDirectoryservice/directoryDirectory\", {\n name: \"corp.example.com\",\n password: \"#S1ncerely\",\n size: \"Small\",\n vpcSettings: {\n vpcId: exampleVpc.id,\n subnetIds: [\n exampleA.id,\n exampleB.id,\n ],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nworkspaces = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"sts:AssumeRole\"],\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"workspaces.amazonaws.com\"],\n )],\n)])\nworkspaces_default = aws.iam.Role(\"workspacesDefault\", assume_role_policy=workspaces.json)\nworkspaces_default_service_access = aws.iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\",\n role=workspaces_default.name,\n policy_arn=\"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\")\nworkspaces_default_self_service_access = aws.iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\",\n role=workspaces_default.name,\n policy_arn=\"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\")\nexample_vpc = aws.ec2.Vpc(\"exampleVpc\", cidr_block=\"10.0.0.0/16\")\nexample_c = aws.ec2.Subnet(\"exampleC\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1c\",\n cidr_block=\"10.0.2.0/24\")\nexample_d = aws.ec2.Subnet(\"exampleD\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1d\",\n cidr_block=\"10.0.3.0/24\")\nexample_directory = aws.workspaces.Directory(\"exampleDirectory\",\n directory_id=example_directoryservice / directory_directory[\"id\"],\n subnet_ids=[\n example_c.id,\n example_d.id,\n ],\n tags={\n \"Example\": \"true\",\n },\n self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs(\n change_compute_type=True,\n increase_volume_size=True,\n rebuild_workspace=True,\n restart_workspace=True,\n switch_running_mode=True,\n ),\n workspace_access_properties=aws.workspaces.DirectoryWorkspaceAccessPropertiesArgs(\n device_type_android=\"ALLOW\",\n device_type_chromeos=\"ALLOW\",\n device_type_ios=\"ALLOW\",\n device_type_osx=\"ALLOW\",\n device_type_web=\"DENY\",\n device_type_windows=\"DENY\",\n device_type_zeroclient=\"DENY\",\n ),\n workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs(\n custom_security_group_id=aws_security_group[\"example\"][\"id\"],\n default_ou=\"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enable_internet_access=True,\n enable_maintenance_mode=True,\n user_enabled_as_local_administrator=True,\n ),\n opts=pulumi.ResourceOptions(depends_on=[\n workspaces_default_service_access,\n workspaces_default_self_service_access,\n ]))\nexample_a = aws.ec2.Subnet(\"exampleA\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1a\",\n cidr_block=\"10.0.0.0/24\")\nexample_b = aws.ec2.Subnet(\"exampleB\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1b\",\n cidr_block=\"10.0.1.0/24\")\nexample_directoryservice_directory_directory = aws.directoryservice.Directory(\"exampleDirectoryservice/directoryDirectory\",\n name=\"corp.example.com\",\n password=\"#S1ncerely\",\n size=\"Small\",\n vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs(\n vpc_id=example_vpc.id,\n subnet_ids=[\n example_a.id,\n example_b.id,\n ],\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var workspaces = Output.Create(Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs\n {\n Statements = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs\n {\n Actions = \n {\n \"sts:AssumeRole\",\n },\n Principals = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs\n {\n Type = \"Service\",\n Identifiers = \n {\n \"workspaces.amazonaws.com\",\n },\n },\n },\n },\n },\n }));\n var workspacesDefault = new Aws.Iam.Role(\"workspacesDefault\", new Aws.Iam.RoleArgs\n {\n AssumeRolePolicy = workspaces.Apply(workspaces =\u003e workspaces.Json),\n });\n var workspacesDefaultServiceAccess = new Aws.Iam.RolePolicyAttachment(\"workspacesDefaultServiceAccess\", new Aws.Iam.RolePolicyAttachmentArgs\n {\n Role = workspacesDefault.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\",\n });\n var workspacesDefaultSelfServiceAccess = new Aws.Iam.RolePolicyAttachment(\"workspacesDefaultSelfServiceAccess\", new Aws.Iam.RolePolicyAttachmentArgs\n {\n Role = workspacesDefault.Name,\n PolicyArn = \"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\",\n });\n var exampleVpc = new Aws.Ec2.Vpc(\"exampleVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n var exampleC = new Aws.Ec2.Subnet(\"exampleC\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1c\",\n CidrBlock = \"10.0.2.0/24\",\n });\n var exampleD = new Aws.Ec2.Subnet(\"exampleD\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1d\",\n CidrBlock = \"10.0.3.0/24\",\n });\n var exampleDirectory = new Aws.Workspaces.Directory(\"exampleDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = exampleDirectoryservice / directoryDirectory.Id,\n SubnetIds = \n {\n exampleC.Id,\n exampleD.Id,\n },\n Tags = \n {\n { \"Example\", \"true\" },\n },\n SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs\n {\n ChangeComputeType = true,\n IncreaseVolumeSize = true,\n RebuildWorkspace = true,\n RestartWorkspace = true,\n SwitchRunningMode = true,\n },\n WorkspaceAccessProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceAccessPropertiesArgs\n {\n DeviceTypeAndroid = \"ALLOW\",\n DeviceTypeChromeos = \"ALLOW\",\n DeviceTypeIos = \"ALLOW\",\n DeviceTypeOsx = \"ALLOW\",\n DeviceTypeWeb = \"DENY\",\n DeviceTypeWindows = \"DENY\",\n DeviceTypeZeroclient = \"DENY\",\n },\n WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs\n {\n CustomSecurityGroupId = aws_security_group.Example.Id,\n DefaultOu = \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n EnableInternetAccess = true,\n EnableMaintenanceMode = true,\n UserEnabledAsLocalAdministrator = true,\n },\n }, new CustomResourceOptions\n {\n DependsOn = \n {\n workspacesDefaultServiceAccess,\n workspacesDefaultSelfServiceAccess,\n },\n });\n var exampleA = new Aws.Ec2.Subnet(\"exampleA\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1a\",\n CidrBlock = \"10.0.0.0/24\",\n });\n var exampleB = new Aws.Ec2.Subnet(\"exampleB\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1b\",\n CidrBlock = \"10.0.1.0/24\",\n });\n var exampleDirectoryservice_directoryDirectory = new Aws.DirectoryService.Directory(\"exampleDirectoryservice/directoryDirectory\", new Aws.DirectoryService.DirectoryArgs\n {\n Name = \"corp.example.com\",\n Password = \"#S1ncerely\",\n Size = \"Small\",\n VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs\n {\n VpcId = exampleVpc.Id,\n SubnetIds = \n {\n exampleA.Id,\n exampleB.Id,\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/directoryservice\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tworkspaces, 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\"workspaces.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\tworkspacesDefault, err := iam.NewRole(ctx, \"workspacesDefault\", \u0026iam.RoleArgs{\n\t\t\tAssumeRolePolicy: pulumi.String(workspaces.Json),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspacesDefaultServiceAccess, err := iam.NewRolePolicyAttachment(ctx, \"workspacesDefaultServiceAccess\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: workspacesDefault.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonWorkSpacesServiceAccess\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tworkspacesDefaultSelfServiceAccess, err := iam.NewRolePolicyAttachment(ctx, \"workspacesDefaultSelfServiceAccess\", \u0026iam.RolePolicyAttachmentArgs{\n\t\t\tRole: workspacesDefault.Name,\n\t\t\tPolicyArn: pulumi.String(\"arn:aws:iam::aws:policy/AmazonWorkSpacesSelfServiceAccess\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVpc, err := ec2.NewVpc(ctx, \"exampleVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleC, err := ec2.NewSubnet(ctx, \"exampleC\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1c\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleD, err := ec2.NewSubnet(ctx, \"exampleD\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1d\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"exampleDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: pulumi.String(exampleDirectoryservice / directoryDirectory.Id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleC.ID(),\n\t\t\t\texampleD.ID(),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Example\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tSelfServicePermissions: \u0026workspaces.DirectorySelfServicePermissionsArgs{\n\t\t\t\tChangeComputeType: pulumi.Bool(true),\n\t\t\t\tIncreaseVolumeSize: pulumi.Bool(true),\n\t\t\t\tRebuildWorkspace: pulumi.Bool(true),\n\t\t\t\tRestartWorkspace: pulumi.Bool(true),\n\t\t\t\tSwitchRunningMode: pulumi.Bool(true),\n\t\t\t},\n\t\t\tWorkspaceAccessProperties: \u0026workspaces.DirectoryWorkspaceAccessPropertiesArgs{\n\t\t\t\tDeviceTypeAndroid: pulumi.String(\"ALLOW\"),\n\t\t\t\tDeviceTypeChromeos: pulumi.String(\"ALLOW\"),\n\t\t\t\tDeviceTypeIos: pulumi.String(\"ALLOW\"),\n\t\t\t\tDeviceTypeOsx: pulumi.String(\"ALLOW\"),\n\t\t\t\tDeviceTypeWeb: pulumi.String(\"DENY\"),\n\t\t\t\tDeviceTypeWindows: pulumi.String(\"DENY\"),\n\t\t\t\tDeviceTypeZeroclient: pulumi.String(\"DENY\"),\n\t\t\t},\n\t\t\tWorkspaceCreationProperties: \u0026workspaces.DirectoryWorkspaceCreationPropertiesArgs{\n\t\t\t\tCustomSecurityGroupId: pulumi.Any(aws_security_group.Example.Id),\n\t\t\t\tDefaultOu: pulumi.String(\"OU=AWS,DC=Workgroup,DC=Example,DC=com\"),\n\t\t\t\tEnableInternetAccess: pulumi.Bool(true),\n\t\t\t\tEnableMaintenanceMode: pulumi.Bool(true),\n\t\t\t\tUserEnabledAsLocalAdministrator: pulumi.Bool(true),\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tworkspacesDefaultServiceAccess,\n\t\t\tworkspacesDefaultSelfServiceAccess,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleA, err := ec2.NewSubnet(ctx, \"exampleA\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleB, err := ec2.NewSubnet(ctx, \"exampleB\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1b\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = directoryservice.NewDirectory(ctx, \"exampleDirectoryservice_directoryDirectory\", \u0026directoryservice.DirectoryArgs{\n\t\t\tName: pulumi.String(\"corp.example.com\"),\n\t\t\tPassword: pulumi.String(\"#S1ncerely\"),\n\t\t\tSize: pulumi.String(\"Small\"),\n\t\t\tVpcSettings: \u0026directoryservice.DirectoryVpcSettingsArgs{\n\t\t\t\tVpcId: exampleVpc.ID(),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleA.ID(),\n\t\t\t\t\texampleB.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### IP Groups\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleIpGroup = new aws.workspaces.IpGroup(\"exampleIpGroup\", {});\nconst exampleDirectory = new aws.workspaces.Directory(\"exampleDirectory\", {\n directoryId: aws_directory_service_directory.example.id,\n ipGroupIds: [exampleIpGroup.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_ip_group = aws.workspaces.IpGroup(\"exampleIpGroup\")\nexample_directory = aws.workspaces.Directory(\"exampleDirectory\",\n directory_id=aws_directory_service_directory[\"example\"][\"id\"],\n ip_group_ids=[example_ip_group.id])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleIpGroup = new Aws.Workspaces.IpGroup(\"exampleIpGroup\", new Aws.Workspaces.IpGroupArgs\n {\n });\n var exampleDirectory = new Aws.Workspaces.Directory(\"exampleDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = aws_directory_service_directory.Example.Id,\n IpGroupIds = \n {\n exampleIpGroup.Id,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleIpGroup, err := workspaces.NewIpGroup(ctx, \"exampleIpGroup\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"exampleDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: pulumi.Any(aws_directory_service_directory.Example.Id),\n\t\t\tIpGroupIds: pulumi.StringArray{\n\t\t\t\texampleIpGroup.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{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nWorkspaces directory can be imported using the directory ID, e.g.\n\n```sh\n $ pulumi import aws:workspaces/directory:Directory main d-4444444444\n```\n\n ", "properties": { "alias": { "type": "string", @@ -227395,6 +228905,10 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceAccessProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceAccessProperties:DirectoryWorkspaceAccessProperties", + "description": "Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.\n" + }, "workspaceCreationProperties": { "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" @@ -227416,6 +228930,7 @@ "registrationCode", "selfServicePermissions", "subnetIds", + "workspaceAccessProperties", "workspaceCreationProperties", "workspaceSecurityGroupId" ], @@ -227449,6 +228964,10 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceAccessProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceAccessProperties:DirectoryWorkspaceAccessProperties", + "description": "Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.\n" + }, "workspaceCreationProperties": { "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" @@ -227520,6 +229039,10 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceAccessProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceAccessProperties:DirectoryWorkspaceAccessProperties", + "description": "Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.\n" + }, "workspaceCreationProperties": { "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" @@ -228597,6 +230120,116 @@ ] } }, + "aws:apigateway/getDomainName:getDomainName": { + "description": "Use this data source to get the custom domain name for use with AWS API 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 example = pulumi.output(aws.apigateway.getDomainName({\n domainName: \"api.example.com\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.apigateway.get_domain_name(domain_name=\"api.example.com\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = Output.Create(Aws.ApiGateway.GetDomainName.InvokeAsync(new Aws.ApiGateway.GetDomainNameArgs\n {\n DomainName = \"api.example.com\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.LookupDomainName(ctx, \u0026apigateway.LookupDomainNameArgs{\n\t\t\tDomainName: \"api.example.com\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getDomainName.\n", + "properties": { + "domainName": { + "type": "string", + "description": "The fully-qualified domain name to look up. If no domain name is found, an error will be returned.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of tags for the resource.\n" + } + }, + "type": "object", + "required": [ + "domainName" + ] + }, + "outputs": { + "description": "A collection of values returned by getDomainName.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the found custom domain name.\n" + }, + "certificateArn": { + "type": "string", + "description": "The ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name.\n" + }, + "certificateName": { + "type": "string", + "description": "The name of the certificate that is used by edge-optimized endpoint for this domain name.\n" + }, + "certificateUploadDate": { + "type": "string", + "description": "The upload date associated with the domain certificate.\n" + }, + "cloudfrontDomainName": { + "type": "string", + "description": "The hostname created by Cloudfront to represent the distribution that implements this domain name mapping.\n" + }, + "cloudfrontZoneId": { + "type": "string", + "description": "For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution.\n" + }, + "domainName": { + "type": "string" + }, + "endpointConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/aws:apigateway/getDomainNameEndpointConfiguration:getDomainNameEndpointConfiguration" + }, + "description": "List of objects with the endpoint configuration of this domain name.\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "regionalCertificateArn": { + "type": "string", + "description": "The ARN for an AWS-managed certificate that is used for validating the regional domain name.\n" + }, + "regionalCertificateName": { + "type": "string", + "description": "The user-friendly name of the certificate that is used by regional endpoint for this domain name.\n" + }, + "regionalDomainName": { + "type": "string", + "description": "The hostname for the custom domain's regional endpoint.\n" + }, + "regionalZoneId": { + "type": "string", + "description": "The hosted zone ID that can be used to create a Route53 alias record for the regional endpoint.\n" + }, + "securityPolicy": { + "type": "string", + "description": "The security policy for the domain name.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key-value map of tags for the resource.\n" + } + }, + "type": "object", + "required": [ + "arn", + "certificateArn", + "certificateName", + "certificateUploadDate", + "cloudfrontDomainName", + "cloudfrontZoneId", + "domainName", + "endpointConfigurations", + "regionalCertificateArn", + "regionalCertificateName", + "regionalDomainName", + "regionalZoneId", + "securityPolicy", + "id" + ] + } + }, "aws:apigateway/getKey:getKey": { "description": "Use this data source to get the name and value of a pre-existing API Key, for\nexample to supply credentials for a dependency microservice.\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 myApiKey = pulumi.output(aws.apigateway.getKey({\n id: \"ru3mpjgse6\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmy_api_key = aws.apigateway.get_key(id=\"ru3mpjgse6\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var myApiKey = Output.Create(Aws.ApiGateway.GetKey.InvokeAsync(new Aws.ApiGateway.GetKeyArgs\n {\n Id = \"ru3mpjgse6\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := apigateway.GetKey(ctx, \u0026apigateway.GetKeyArgs{\n\t\t\tId: \"ru3mpjgse6\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -238611,6 +240244,128 @@ ] } }, + "aws:identitystore/getGroup:getGroup": { + "description": "Use this data source to get an Identity Store Group.\n", + "inputs": { + "description": "A collection of arguments for invoking getGroup.\n", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:identitystore/getGroupFilter:getGroupFilter" + }, + "description": "Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below.\n" + }, + "groupId": { + "type": "string", + "description": "The identifier for a group in the Identity Store.\n" + }, + "identityStoreId": { + "type": "string", + "description": "The Identity Store ID associated with the Single Sign-On Instance.\n" + } + }, + "type": "object", + "required": [ + "filters", + "identityStoreId" + ] + }, + "outputs": { + "description": "A collection of values returned by getGroup.\n", + "properties": { + "displayName": { + "type": "string", + "description": "The group's display name value.\n" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:identitystore/getGroupFilter:getGroupFilter" + } + }, + "groupId": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "identityStoreId": { + "type": "string" + } + }, + "type": "object", + "required": [ + "displayName", + "filters", + "groupId", + "identityStoreId", + "id" + ] + } + }, + "aws:identitystore/getUser:getUser": { + "description": "Use this data source to get an Identity Store User.\n", + "inputs": { + "description": "A collection of arguments for invoking getUser.\n", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:identitystore/getUserFilter:getUserFilter" + }, + "description": "Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below.\n" + }, + "identityStoreId": { + "type": "string", + "description": "The Identity Store ID associated with the Single Sign-On Instance.\n" + }, + "userId": { + "type": "string", + "description": "The identifier for a user in the Identity Store.\n" + } + }, + "type": "object", + "required": [ + "filters", + "identityStoreId" + ] + }, + "outputs": { + "description": "A collection of values returned by getUser.\n", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/types/aws:identitystore/getUserFilter:getUserFilter" + } + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "identityStoreId": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userName": { + "type": "string", + "description": "The user's user name value.\n" + } + }, + "type": "object", + "required": [ + "filters", + "identityStoreId", + "userId", + "userName", + "id" + ] + } + }, "aws:imagebuilder/getComponent:getComponent": { "description": "Provides details about an Image Builder Component.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = pulumi.output(aws.imagebuilder.getComponent({\n arn: \"arn:aws:imagebuilder:us-west-2:aws:component/amazon-cloudwatch-agent-linux/1.0.0\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.imagebuilder.get_component(arn=\"arn:aws:imagebuilder:us-west-2:aws:component/amazon-cloudwatch-agent-linux/1.0.0\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = Output.Create(Aws.ImageBuilder.GetComponent.InvokeAsync(new Aws.ImageBuilder.GetComponentArgs\n {\n Arn = \"arn:aws:imagebuilder:us-west-2:aws:component/amazon-cloudwatch-agent-linux/1.0.0\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/imagebuilder\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := imagebuilder.LookupComponent(ctx, \u0026imagebuilder.LookupComponentArgs{\n\t\t\tArn: \"arn:aws:imagebuilder:us-west-2:aws:component/amazon-cloudwatch-agent-linux/1.0.0\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -240075,12 +241830,17 @@ "partition": { "type": "string", "description": "Identifier of the current partition (e.g. `aws` in AWS Commercial, `aws-cn` in AWS China).\n" + }, + "reverseDnsPrefix": { + "type": "string", + "description": "Prefix of service names (e.g. `com.amazonaws` in AWS Commercial, `cn.com.amazonaws` in AWS China).\n" } }, "type": "object", "required": [ "dnsSuffix", "partition", + "reverseDnsPrefix", "id" ] } @@ -247182,10 +248942,6 @@ "type": "string" }, "description": "A map of tags assigned to the WorkSpaces directory.\n" - }, - "workspaceCreationProperties": { - "$ref": "#/types/aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties", - "description": "The default properties that are used for creating WorkSpaces. Defined below.\n" } }, "type": "object", @@ -247262,6 +249018,13 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceAccessProperties": { + "type": "array", + "items": { + "$ref": "#/types/aws:workspaces/getDirectoryWorkspaceAccessProperty:getDirectoryWorkspaceAccessProperty" + }, + "description": "(Optional) Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below.\n" + }, "workspaceCreationProperties": { "$ref": "#/types/aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties", "description": "The default properties that are used for creating WorkSpaces. Defined below.\n" @@ -247284,6 +249047,7 @@ "registrationCode", "selfServicePermissions", "subnetIds", + "workspaceAccessProperties", "workspaceCreationProperties", "workspaceSecurityGroupId", "id" @@ -247516,6 +249280,7 @@ "glue": "Glue", "guardduty": "GuardDuty", "iam": "Iam", + "identitystore": "IdentityStore", "imagebuilder": "ImageBuilder", "index": "index", "inspector": "Inspector", diff --git a/provider/go.mod b/provider/go.mod index 99bfb4c21f0..89b8e54df46 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -5,6 +5,7 @@ go 1.15 require ( github.com/hashicorp/aws-sdk-go-base v0.7.0 github.com/mitchellh/go-homedir v1.1.0 + github.com/pulumi/pulumi-terraform-bridge v1.8.4 github.com/pulumi/pulumi-terraform-bridge/v2 v2.17.1-0.20201219002337-a0c25bd3e147 github.com/pulumi/pulumi/pkg/v2 v2.16.2 github.com/pulumi/pulumi/sdk/v2 v2.16.2 @@ -15,5 +16,5 @@ replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20210108124814-c24243f79db6 + github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20210115192741-47ff991625c0 ) diff --git a/provider/go.sum b/provider/go.sum index 151486f1a95..4df9cdc2d8b 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -46,20 +46,29 @@ cloud.google.com/go/storage v1.9.0/go.mod h1:m+/etGaqZbylxaNT876QGXqEHp4PR2Rq5GM cloud.google.com/go/storage v1.10.0 h1:STgFzyU5/8miMl0//zKh2aQeTyeaUH3WN9bSUiJ09bA= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= contrib.go.opencensus.io/exporter/aws v0.0.0-20181029163544-2befc13012d0/go.mod h1:uu1P0UCM/6RbsMrgPa98ll8ZcHM858i/AD06a9aLRCA= +contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= contrib.go.opencensus.io/exporter/stackdriver v0.12.1/go.mod h1:iwB6wGarfphGGe/e5CWqyUk/cLzKnWsOKPVW3no6OTw= contrib.go.opencensus.io/integrations/ocsql v0.1.4/go.mod h1:8DsSdjz3F+APR+0z0WkU1aRorQCFfRxvqjUUPMbF3fE= contrib.go.opencensus.io/resource v0.1.1/go.mod h1:F361eGI91LCmW1I/Saf+rX0+OFcigGlFvXwEGEnkRLA= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/AlecAivazis/survey/v2 v2.0.5/go.mod h1:WYBhg6f0y/fNYUuesWQc0PKbJcEliGcYHB9sNT3Bg74= +github.com/Azure/azure-amqp-common-go v1.1.4/go.mod h1:FhZtXirFANw40UXI2ntweO+VOkfaw8s6vZxUiRhLYW8= +github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= github.com/Azure/azure-amqp-common-go/v3 v3.0.0/go.mod h1:SY08giD/XbhTz07tJdpw1SoxQXHPN30+DI3Z04SYqyg= github.com/Azure/azure-pipeline-go v0.2.1/go.mod h1:UGSo8XybXnIGZ3epmeBw7Jdz+HiUVpqIlpz/HKHylF4= github.com/Azure/azure-pipeline-go v0.2.2/go.mod h1:4rQ/NZncSvGqNkkOsNpOU1tgoNuIlp9AfUH5G1tvCHc= +github.com/Azure/azure-sdk-for-go v21.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v37.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0= github.com/Azure/azure-service-bus-go v0.10.1/go.mod h1:E/FOceuKAFUfpbIJDKWz/May6guE+eGibfGT6q+n1to= +github.com/Azure/azure-storage-blob-go v0.8.0/go.mod h1:lPI3aLPpuLTeUwh1sViKXFxwl2B6teiRqI0deQUvsw0= github.com/Azure/azure-storage-blob-go v0.9.0/go.mod h1:8UBPbiOhrMQ4pLPi3gA1tXnpjrS76UYE/fo5A40vf4g= github.com/Azure/go-amqp v0.12.6/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= github.com/Azure/go-amqp v0.12.7/go.mod h1:qApuH6OFTSKZFmCOxccvAv5rLizBQf4v8pRmG138DPo= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-autorest v12.4.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest v0.10.0/go.mod h1:/FALq9T/kS7b5J5qsQ+RSTUdAmGFqi0vUdVNNx8q630= @@ -86,6 +95,8 @@ github.com/GoogleCloudPlatform/cloudsql-proxy v0.0.0-20191009163259-e802c2cb94ae github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/Sirupsen/logrus v1.0.5/go.mod h1:rmk17hk6i8ZSAJkSDa7nOxamrG+SP4P0mm+DAvExv4U= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= @@ -99,6 +110,7 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 h1:kFOfPq6dUM1hTo4JG6LR5AXSUEsOjtdm0kw0FtQtMJA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apparentlymart/go-cidr v1.0.1 h1:NmIwLZ/KdsjIUlhf+/Np40atNXm/+lZ5txfTJ/SpF+U= github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= @@ -118,7 +130,9 @@ github.com/aws/aws-sdk-go v1.15.27/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZo github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.39/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.19.45/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.29.27/go.mod h1:1KvfttTE3SPKMpo8g2c6jL3ZKfXtFvKscTgahTma5Xg= github.com/aws/aws-sdk-go v1.31.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.31.13/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0= github.com/aws/aws-sdk-go v1.36.19 h1:zbJZKkxeDiYxUYFjymjWxPye+qa1G2gRVyhIzZrB9zA= @@ -151,9 +165,11 @@ github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd h1:qMd81Ts1T github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -168,6 +184,9 @@ github.com/djherbis/times v1.2.0 h1:xANXjsC/iBqbO00vkWlYwPWgBgEVU6m6AFYg0Pic+Mc= github.com/djherbis/times v1.2.0/go.mod h1:CGMZlo255K5r4Yw0b9RRfFQpM2y7uOmxg4jm9HsaVf8= github.com/docker/docker v0.0.0-20170504205632-89658bed64c2/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg= github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= @@ -180,6 +199,7 @@ github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568 h1:BHsljHzVlRcyQhjrss6TZTdY2VfCqZPbv5k3iBFa2ZQ= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fortytw2/leaktest v1.2.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 h1:Uc+IZ7gYqAf/rSGFplbWBSHaGolEQlNLgMgSE3ccnIQ= @@ -203,6 +223,8 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-test/deep v1.0.1/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= @@ -213,6 +235,7 @@ github.com/gofrs/flock v0.7.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14j github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6rR7UHz84= github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= @@ -248,6 +271,7 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -283,17 +307,22 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/wire v0.3.0/go.mod h1:i1DMg/Lu8Sz5yYl25iOdmc5CT5qusaa+zmRWs16741s= github.com/google/wire v0.4.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= github.com/googleapis/gax-go v2.0.2+incompatible h1:silFMLAnr330+NRuag/VjIGF7TLp/LBrV2CJKFLWEww= github.com/googleapis/gax-go v2.0.2+incompatible/go.mod h1:SFVmujtThgffbyetf+mdk2eWhX2bMyUtNHzFKcPA9HY= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5 h1:sjZBwGj9Jlw33ImPtvFviGYvseOtDM7hkSKB7+Tv3SM= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.8.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.2/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 h1:MJG/KsmcqMwFAkh8mTnAwhyKoB+sTAnY4CACC110tbU= github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= github.com/hashicorp/aws-sdk-go-base v0.7.0 h1:Umcq11kcoARameDgxPiYBbyltTZqO7GgBVSdq4pzX/w= @@ -515,11 +544,15 @@ github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= github.com/opentracing/basictracer-go v1.0.0 h1:YyUAhaEfjoWXclZVJ9sGoNct7j4TVk7lZWlQw5UXuoo= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-buffruneio v0.2.0/go.mod h1:JkE26KsDizTr40EUHkXVtNPvgGtbSNq5BcowyYOWdKo= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -548,12 +581,19 @@ github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/pulumi/pulumi-terraform-bridge v1.8.4 h1:pfDNoYxduzsSEWj3M7hRuDw9Ic0z+Siks7uCJulPsow= +github.com/pulumi/pulumi-terraform-bridge v1.8.4/go.mod h1:EGMJtAh9rdqiqO0B5P458iigWu7BAwLxqgUWvGs33Es= github.com/pulumi/pulumi-terraform-bridge/v2 v2.17.1-0.20201219002337-a0c25bd3e147 h1:3DL04s5KSGKVeW96H+QRoq1+j9dAnzce7TBa26dkHPM= github.com/pulumi/pulumi-terraform-bridge/v2 v2.17.1-0.20201219002337-a0c25bd3e147/go.mod h1:WNWmFEvaMWA1uiwdlmRN+eSKrgT6sL3kNS6z5ltbdbo= +github.com/pulumi/pulumi/pkg v0.0.0-20200325225746-80f1989600a3 h1:CUswHMz3r5GBJHeGL5p4NtAGwqoelFyv54KW1A1XQfk= +github.com/pulumi/pulumi/pkg v0.0.0-20200325225746-80f1989600a3/go.mod h1:iX8/aPGtI3VhJnIUqHoT2iy3/0wQJySIRMs9y2TBILw= github.com/pulumi/pulumi/pkg/v2 v2.15.1-0.20201202214525-260620430c4c h1:M4BMhdOt1le+7JtOhR7uOVrpvu9HnN9388AI/Je9/3Y= github.com/pulumi/pulumi/pkg/v2 v2.15.1-0.20201202214525-260620430c4c/go.mod h1:xLEDqsipr92IXfe8EJrl8bANoEUtwmBJGBE8X8PKmP0= github.com/pulumi/pulumi/pkg/v2 v2.16.2 h1:7/BYWaO9HQD4dWNtIOK+Bg91Nz5A2o1BqvkczR270u4= github.com/pulumi/pulumi/pkg/v2 v2.16.2/go.mod h1:bAbzFeU3gHu1diqcckqUqaFf5dP02BfJlP8dnHwm00k= +github.com/pulumi/pulumi/sdk v0.0.0-20200321193742-f095e64d0f8e/go.mod h1:ZCVEM4V8vr5IogqUhSu28+FEEn3bIjGYpEOSHRureO0= +github.com/pulumi/pulumi/sdk v0.0.0-20200325225746-80f1989600a3 h1:O7Kt01GMn4lP61yHLg97TIl2D7l8BoBp4eawjqwefxY= +github.com/pulumi/pulumi/sdk v0.0.0-20200325225746-80f1989600a3/go.mod h1:0jjygtqEwLnjNEL3zIn3ynjT/37ZJ42DZE6k2+2NAUM= github.com/pulumi/pulumi/sdk/v2 v2.2.1/go.mod h1:QNbWpL4gvf3X0lUFT7TXA2Jo1ff/Ti2l97AyFGYwvW4= github.com/pulumi/pulumi/sdk/v2 v2.2.1/go.mod h1:QNbWpL4gvf3X0lUFT7TXA2Jo1ff/Ti2l97AyFGYwvW4= github.com/pulumi/pulumi/sdk/v2 v2.15.1-0.20201202214525-260620430c4c h1:nYFMU38MKDY+CuU8LpIw6AaX/wwXMNzINqXvjw5MUtQ= @@ -564,16 +604,20 @@ github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e h1:Di github.com/pulumi/terraform-diff-reader v0.0.0-20201211191010-ad4715e9285e/go.mod h1:sZ9FUzGO+yM41hsQHs/yIcj/Y993qMdBxBU5mpDmAfQ= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e h1:jl43csgF3BSlNRmjo+TGgjW/uXk9h7+NoR3doKQ0BT4= github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20201218231525-9cca98608a5e/go.mod h1:JBItawj+j8Ssla5Ib6BC/W9VQkOucBfnX7VRtyx1vw8= -github.com/pulumi/terraform-provider-aws v1.38.1-0.20210108124814-c24243f79db6 h1:yb0jDi321jJGmuyhrKFpdWARv+aLGz11Vkdnjhx4Th4= -github.com/pulumi/terraform-provider-aws v1.38.1-0.20210108124814-c24243f79db6/go.mod h1:XL/qfDduMq4tUMYvmDnmq6pMLCfTTAAITnzLuSqhOeg= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20210115192741-47ff991625c0 h1:t1EMVUHDWnSFyVhJxlNz7zhta/utjAw3hPpBPDBcK0Y= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20210115192741-47ff991625c0/go.mod h1:XL/qfDduMq4tUMYvmDnmq6pMLCfTTAAITnzLuSqhOeg= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/reconquest/loreley v0.0.0-20160708080500-2ab6b7470a54/go.mod h1:1NF/j951kWm+ZnRXpOkBqweImgwhlzFVwTA4A0V7TEU= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 h1:G04eS0JkAIVZfaJLjla9dNxkJCPiKIGZlw9AfOhzOD0= github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94/go.mod h1:b18R55ulyQ/h3RaWyloPyER7fWQVZvimKKhnI5OfrJQ= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -592,6 +636,7 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.0.0 h1:6m/oheQuQ13N9ks4hubMG6BnvwOeaJrqSPLahSnczz8= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= @@ -618,14 +663,17 @@ github.com/terraform-providers/terraform-provider-http v1.2.0 h1:pOP/SNlLjB18Cyd github.com/terraform-providers/terraform-provider-http v1.2.0/go.mod h1:2Iot921OkLVSZr8FbIkvRN84ZV3w+oFKb7RlmPTQQAQ= github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6 h1:9VTskZOIRf2vKF3UL8TuWElry5pgUpV1tFSe/e/0m/E= github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6/go.mod h1:XDKHRm5ThF8YJjx001LtgelzsoaEcvnA7lVWz9EeX3g= +github.com/tidwall/pretty v0.0.0-20190325153808-1166b9ac2b65/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 h1:X9dsIWPuuEJlPX//UmRKophhOKCGXc46RVIGuttks68= github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= +github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/ulikunitz/xz v0.5.5 h1:pFrO0lVpTBXLpYw+pnLj6TbvHuyjXMfjGeCwSqCVwok= github.com/ulikunitz/xz v0.5.5/go.mod h1:2bypXElzHzzJZwzH67Y6wb67pO62Rzfn7BSiF4ABRW8= github.com/ulikunitz/xz v0.5.8 h1:ERv8V6GKqVi23rgu5cj9pVfVzJbOqAY2Ntl88O6c2nQ= @@ -637,6 +685,8 @@ github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaU github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/xanzy/ssh-agent v0.2.1 h1:TCbipTQL2JiiCprBWx9frJ2eJlCYT00NmctrHxVAr70= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= @@ -655,6 +705,7 @@ github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRK github.com/zclconf/go-cty-yaml v1.0.1 h1:up11wlgAaDvlAGENcFDnZgkn0qUJurso7k6EpURKNF8= github.com/zclconf/go-cty-yaml v1.0.1/go.mod h1:IP3Ylp0wQpYm50IHK8OZWKMu6sPJIUgKa8XhiVHura0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.mongodb.org/mongo-driver v1.0.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= @@ -669,9 +720,12 @@ go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +gocloud.dev v0.19.0/go.mod h1:SmKwiR8YwIMMJvQBKLsC3fHNyMwXLw3PMDO+VVteJMI= gocloud.dev v0.20.0/go.mod h1:+Y/RpSXrJthIOM8uFNzWp6MRu9pFPNFEEZrQMxpkfIc= +gocloud.dev/secrets/hashivault v0.19.0/go.mod h1:doHlds85r+VwAs0T46bhjLwboWUfgfo3ovqDA8azNWo= gocloud.dev/secrets/hashivault v0.20.0/go.mod h1:2nNlZ76i4JlT9qrPVKbINB01L8BGgv4wmq2Cqyz22dA= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181001203147-e3636079e1a4/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -727,6 +781,7 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -787,6 +842,7 @@ golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190221075227-b4e8571b14e0/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -799,6 +855,7 @@ golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -806,6 +863,7 @@ golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191112214154-59a1497f0cea/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -841,6 +899,7 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -896,6 +955,7 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IV golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.5.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -930,6 +990,7 @@ google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRn google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190508193815-b515fa19cec8/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190708153700-3bdd9d9f5532/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= @@ -948,6 +1009,7 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200317114155-1f3552e48f24/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200318110522-7735f76e9fa5/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200325114520-5b2d0af7952b/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -961,6 +1023,7 @@ google.golang.org/genproto v0.0.0-20200711021454-869866162049 h1:YFTFpQhgvrLrmxt google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -989,7 +1052,9 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +gopkg.in/AlecAivazis/survey.v1 v1.8.8/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo= gopkg.in/AlecAivazis/survey.v1 v1.8.9-0.20200217094205-6773bdf39b7f/go.mod h1:CaHjv79TCgAvXMSFJSVgonHXYWxnhzI3eoHtnX5UgUo= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1003,6 +1068,7 @@ gopkg.in/cheggaaa/pb.v1 v1.0.28 h1:n1tBJnnK2r7g9OW2btFH91V92STTUevLXYFb8gy9EMk= gopkg.in/cheggaaa/pb.v1 v1.0.28/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/src-d/go-billy.v4 v4.3.2 h1:0SQA1pRztfTFx2miS8sA97XvooFeNOmvUenF4o0EcVg= @@ -1024,6 +1090,7 @@ gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1033,6 +1100,9 @@ honnef.co/go/tools v0.0.1-2020.1.3 h1:sXmLre5bzIR6ypkjXCDI3jHPssRhc8KD/Ome589sc3 honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +pack.ag/amqp v0.8.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= +pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/provider/resources.go b/provider/resources.go index 928ffe3576b..2b67169ed2d 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -104,6 +104,7 @@ const ( glueMod = "Glue" // Glue guarddutyMod = "GuardDuty" // Guard Duty iamMod = "Iam" // Identity and Access Management (IAM) + identityStoreMod = "IdentityStore" // Identity Store imageBuilderMod = "ImageBuilder" // ImageBuilder inspectorMod = "Inspector" // Inspector iotMod = "Iot" // Internet of Things (IoT) @@ -663,6 +664,7 @@ func Provider() tfbridge.ProviderInfo { "aws_cloudwatch_log_resource_policy": {Tok: awsResource(cloudwatchMod, "LogResourcePolicy")}, "aws_cloudwatch_log_stream": {Tok: awsResource(cloudwatchMod, "LogStream")}, "aws_cloudwatch_event_bus": {Tok: awsResource(cloudwatchMod, "EventBus")}, + "aws_cloudwatch_composite_alarm": {Tok: awsResource(cloudwatchMod, "CompositeAlarm")}, "aws_cloudwatch_log_subscription_filter": { Tok: awsResource(cloudwatchMod, "LogSubscriptionFilter"), Fields: map[string]*tfbridge.SchemaInfo{ @@ -1940,6 +1942,7 @@ func Provider() tfbridge.ProviderInfo { }, }, "aws_route53_health_check": {Tok: awsResource(route53Mod, "HealthCheck")}, + "aws_route53_resolver_dnssec_config": {Tok: awsResource(route53Mod, "ResolverDnsSecConfig")}, "aws_route53_resolver_query_log_config": {Tok: awsResource(route53Mod, "ResolverQueryLogConfig")}, "aws_route53_resolver_query_log_config_association": { Tok: awsResource(route53Mod, "ResolverQueryLogConfigAssociation"), @@ -1951,6 +1954,7 @@ func Provider() tfbridge.ProviderInfo { "aws_sagemaker_notebook_instance": {Tok: awsResource(sagemakerMod, "NotebookInstance")}, "aws_sagemaker_code_repository": {Tok: awsResource(sagemakerMod, "CodeRepository")}, "aws_sagemaker_image": {Tok: awsResource(sagemakerMod, "Image")}, + "aws_sagemaker_domain": {Tok: awsResource(sagemakerMod, "Domain")}, "aws_sagemaker_notebook_instance_lifecycle_configuration": { Tok: awsResource(sagemakerMod, "NotebookInstanceLifecycleConfiguration"), }, @@ -2249,6 +2253,7 @@ func Provider() tfbridge.ProviderInfo { "aws_servicequotas_service_quota": {Tok: awsResource(servicequotasMod, "ServiceQuota")}, // FMS "aws_fms_admin_account": {Tok: awsResource(fmsMod, "AdminAccount")}, + "aws_fms_policy": {Tok: awsResource(fmsMod, "Policy")}, // QLDB "aws_qldb_ledger": {Tok: awsResource(qldbMod, "Ledger")}, // Workspaces @@ -2416,6 +2421,7 @@ func Provider() tfbridge.ProviderInfo { "aws_ssoadmin_managed_policy_attachment": {Tok: awsResource(ssoAdminMod, "ManagedPolicyAttachment")}, "aws_ssoadmin_permission_set": {Tok: awsResource(ssoAdminMod, "PermissionSet")}, "aws_ssoadmin_permission_set_inline_policy": {Tok: awsResource(ssoAdminMod, "PermissionSetInlinePolicy")}, + "aws_ssoadmin_account_assignment": {Tok: awsResource(ssoAdminMod, "AccountAssignment")}, }, ExtraTypes: map[string]schema.ComplexTypeSpec{ "aws:index/Region:Region": { @@ -3427,10 +3433,11 @@ func Provider() tfbridge.ProviderInfo { // AWS Private Certificate Authority "aws_acmpca_certificate_authority": {Tok: awsDataSource(acmpcaMod, "getCertificateAuthority")}, // API Gateway - "aws_api_gateway_api_key": {Tok: awsDataSource(apigatewayMod, "getKey")}, - "aws_api_gateway_resource": {Tok: awsDataSource(apigatewayMod, "getResource")}, - "aws_api_gateway_rest_api": {Tok: awsDataSource(apigatewayMod, "getRestApi")}, - "aws_api_gateway_vpc_link": {Tok: awsDataSource(apigatewayMod, "getVpcLink")}, + "aws_api_gateway_api_key": {Tok: awsDataSource(apigatewayMod, "getKey")}, + "aws_api_gateway_resource": {Tok: awsDataSource(apigatewayMod, "getResource")}, + "aws_api_gateway_rest_api": {Tok: awsDataSource(apigatewayMod, "getRestApi")}, + "aws_api_gateway_vpc_link": {Tok: awsDataSource(apigatewayMod, "getVpcLink")}, + "aws_api_gateway_domain_name": {Tok: awsDataSource(apigatewayMod, "getDomainName")}, // Autoscaling "aws_autoscaling_group": {Tok: awsDataSource(autoscalingMod, "getGroup")}, // Batch @@ -3651,6 +3658,9 @@ func Provider() tfbridge.ProviderInfo { "aws_iam_role": {Tok: awsDataSource(iamMod, "getRole")}, "aws_iam_server_certificate": {Tok: awsDataSource(iamMod, "getServerCertificate")}, "aws_iam_user": {Tok: awsDataSource(iamMod, "getUser")}, + // IdentityStore + "aws_identitystore_group": {Tok: awsDataSource(identityStoreMod, "getGroup")}, + "aws_identitystore_user": {Tok: awsDataSource(identityStoreMod, "getUser")}, // Inspector "aws_inspector_rules_packages": {Tok: awsDataSource(inspectorMod, "getRulesPackages")}, // Kinesis @@ -3706,8 +3716,15 @@ func Provider() tfbridge.ProviderInfo { // Transfer "aws_transfer_server": {Tok: awsDataSource(transferMod, "getServer")}, // Workspaces - "aws_workspaces_bundle": {Tok: awsDataSource(workspacesMod, "getBundle")}, - "aws_workspaces_directory": {Tok: awsDataSource(workspacesMod, "getDirectory")}, + "aws_workspaces_bundle": {Tok: awsDataSource(workspacesMod, "getBundle")}, + "aws_workspaces_directory": { + Tok: awsDataSource(workspacesMod, "getDirectory"), + Fields: map[string]*tfbridge.SchemaInfo{ + "workspace_creation_properties": { + MaxItemsOne: boolRef(true), + }, + }, + }, "aws_workspaces_image": {Tok: awsDataSource(workspacesMod, "getImage")}, "aws_workspaces_workspace": {Tok: awsDataSource(workspacesMod, "getWorkspace")}, // MSK diff --git a/sdk/dotnet/ApiGateway/DomainName.cs b/sdk/dotnet/ApiGateway/DomainName.cs index ea1202c50aa..4fb91fca8c2 100644 --- a/sdk/dotnet/ApiGateway/DomainName.cs +++ b/sdk/dotnet/ApiGateway/DomainName.cs @@ -294,6 +294,12 @@ public partial class DomainName : Pulumi.CustomResource [Output("endpointConfiguration")] public Output EndpointConfiguration { get; private set; } = null!; + /// + /// The mutual TLS authentication configuration for the domain name. Defined below. + /// + [Output("mutualTlsAuthentication")] + public Output MutualTlsAuthentication { get; private set; } = null!; + /// /// The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. /// @@ -427,6 +433,12 @@ public sealed class DomainNameArgs : Pulumi.ResourceArgs [Input("endpointConfiguration")] public Input? EndpointConfiguration { get; set; } + /// + /// The mutual TLS authentication configuration for the domain name. Defined below. + /// + [Input("mutualTlsAuthentication")] + public Input? MutualTlsAuthentication { get; set; } + /// /// The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. /// @@ -541,6 +553,12 @@ public sealed class DomainNameState : Pulumi.ResourceArgs [Input("endpointConfiguration")] public Input? EndpointConfiguration { get; set; } + /// + /// The mutual TLS authentication configuration for the domain name. Defined below. + /// + [Input("mutualTlsAuthentication")] + public Input? MutualTlsAuthentication { get; set; } + /// /// The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. /// diff --git a/sdk/dotnet/ApiGateway/GetDomainName.cs b/sdk/dotnet/ApiGateway/GetDomainName.cs new file mode 100644 index 00000000000..12bc0930141 --- /dev/null +++ b/sdk/dotnet/ApiGateway/GetDomainName.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.ApiGateway +{ + public static class GetDomainName + { + /// + /// Use this data source to get the custom domain name for use with AWS API Gateway. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = Output.Create(Aws.ApiGateway.GetDomainName.InvokeAsync(new Aws.ApiGateway.GetDomainNameArgs + /// { + /// DomainName = "api.example.com", + /// })); + /// } + /// + /// } + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetDomainNameArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("aws:apigateway/getDomainName:getDomainName", args ?? new GetDomainNameArgs(), options.WithVersion()); + } + + + public sealed class GetDomainNameArgs : Pulumi.InvokeArgs + { + /// + /// The fully-qualified domain name to look up. If no domain name is found, an error will be returned. + /// + [Input("domainName", required: true)] + public string DomainName { get; set; } = null!; + + [Input("tags")] + private Dictionary? _tags; + + /// + /// Key-value map of tags for the resource. + /// + public Dictionary Tags + { + get => _tags ?? (_tags = new Dictionary()); + set => _tags = value; + } + + public GetDomainNameArgs() + { + } + } + + + [OutputType] + public sealed class GetDomainNameResult + { + /// + /// The ARN of the found custom domain name. + /// + public readonly string Arn; + /// + /// The ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name. + /// + public readonly string CertificateArn; + /// + /// The name of the certificate that is used by edge-optimized endpoint for this domain name. + /// + public readonly string CertificateName; + /// + /// The upload date associated with the domain certificate. + /// + public readonly string CertificateUploadDate; + /// + /// The hostname created by Cloudfront to represent the distribution that implements this domain name mapping. + /// + public readonly string CloudfrontDomainName; + /// + /// For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution. + /// + public readonly string CloudfrontZoneId; + public readonly string DomainName; + /// + /// List of objects with the endpoint configuration of this domain name. + /// + public readonly ImmutableArray EndpointConfigurations; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + /// + /// The ARN for an AWS-managed certificate that is used for validating the regional domain name. + /// + public readonly string RegionalCertificateArn; + /// + /// The user-friendly name of the certificate that is used by regional endpoint for this domain name. + /// + public readonly string RegionalCertificateName; + /// + /// The hostname for the custom domain's regional endpoint. + /// + public readonly string RegionalDomainName; + /// + /// The hosted zone ID that can be used to create a Route53 alias record for the regional endpoint. + /// + public readonly string RegionalZoneId; + /// + /// The security policy for the domain name. + /// + public readonly string SecurityPolicy; + /// + /// Key-value map of tags for the resource. + /// + public readonly ImmutableDictionary? Tags; + + [OutputConstructor] + private GetDomainNameResult( + string arn, + + string certificateArn, + + string certificateName, + + string certificateUploadDate, + + string cloudfrontDomainName, + + string cloudfrontZoneId, + + string domainName, + + ImmutableArray endpointConfigurations, + + string id, + + string regionalCertificateArn, + + string regionalCertificateName, + + string regionalDomainName, + + string regionalZoneId, + + string securityPolicy, + + ImmutableDictionary? tags) + { + Arn = arn; + CertificateArn = certificateArn; + CertificateName = certificateName; + CertificateUploadDate = certificateUploadDate; + CloudfrontDomainName = cloudfrontDomainName; + CloudfrontZoneId = cloudfrontZoneId; + DomainName = domainName; + EndpointConfigurations = endpointConfigurations; + Id = id; + RegionalCertificateArn = regionalCertificateArn; + RegionalCertificateName = regionalCertificateName; + RegionalDomainName = regionalDomainName; + RegionalZoneId = regionalZoneId; + SecurityPolicy = securityPolicy; + Tags = tags; + } + } +} diff --git a/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationArgs.cs b/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationArgs.cs new file mode 100644 index 00000000000..977fcd82ab7 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationArgs.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.ApiGateway.Inputs +{ + + public sealed class DomainNameMutualTlsAuthenticationArgs : Pulumi.ResourceArgs + { + /// + /// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + /// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + /// + [Input("truststoreUri", required: true)] + public Input TruststoreUri { get; set; } = null!; + + /// + /// The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + /// + [Input("truststoreVersion")] + public Input? TruststoreVersion { get; set; } + + public DomainNameMutualTlsAuthenticationArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationGetArgs.cs b/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationGetArgs.cs new file mode 100644 index 00000000000..63a92ee2a4a --- /dev/null +++ b/sdk/dotnet/ApiGateway/Inputs/DomainNameMutualTlsAuthenticationGetArgs.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.ApiGateway.Inputs +{ + + public sealed class DomainNameMutualTlsAuthenticationGetArgs : Pulumi.ResourceArgs + { + /// + /// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + /// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + /// + [Input("truststoreUri", required: true)] + public Input TruststoreUri { get; set; } = null!; + + /// + /// The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + /// + [Input("truststoreVersion")] + public Input? TruststoreVersion { get; set; } + + public DomainNameMutualTlsAuthenticationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigArgs.cs b/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigArgs.cs new file mode 100644 index 00000000000..2b851f174f4 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigArgs.cs @@ -0,0 +1,25 @@ +// *** 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.ApiGateway.Inputs +{ + + public sealed class IntegrationTlsConfigArgs : Pulumi.ResourceArgs + { + /// + /// Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + /// + [Input("insecureSkipVerification")] + public Input? InsecureSkipVerification { get; set; } + + public IntegrationTlsConfigArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigGetArgs.cs b/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigGetArgs.cs new file mode 100644 index 00000000000..734d5076b80 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Inputs/IntegrationTlsConfigGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.ApiGateway.Inputs +{ + + public sealed class IntegrationTlsConfigGetArgs : Pulumi.ResourceArgs + { + /// + /// Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + /// + [Input("insecureSkipVerification")] + public Input? InsecureSkipVerification { get; set; } + + public IntegrationTlsConfigGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGateway/Integration.cs b/sdk/dotnet/ApiGateway/Integration.cs index bf9b0a2b340..338521aac4e 100644 --- a/sdk/dotnet/ApiGateway/Integration.cs +++ b/sdk/dotnet/ApiGateway/Integration.cs @@ -246,6 +246,12 @@ public partial class Integration : Pulumi.CustomResource [Output("timeoutMilliseconds")] public Output TimeoutMilliseconds { get; private set; } = null!; + /// + /// Configuration block specifying the TLS configuration for an integration. Defined below. + /// + [Output("tlsConfig")] + public Output TlsConfig { get; private set; } = null!; + /// /// The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. /// @@ -414,6 +420,12 @@ public InputMap RequestTemplates [Input("timeoutMilliseconds")] public Input? TimeoutMilliseconds { get; set; } + /// + /// Configuration block specifying the TLS configuration for an integration. Defined below. + /// + [Input("tlsConfig")] + public Input? TlsConfig { get; set; } + /// /// The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. /// @@ -543,6 +555,12 @@ public InputMap RequestTemplates [Input("timeoutMilliseconds")] public Input? TimeoutMilliseconds { get; set; } + /// + /// Configuration block specifying the TLS configuration for an integration. Defined below. + /// + [Input("tlsConfig")] + public Input? TlsConfig { get; set; } + /// /// The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. /// diff --git a/sdk/dotnet/ApiGateway/Method.cs b/sdk/dotnet/ApiGateway/Method.cs index 4ffe363e2e2..cb511aeb149 100644 --- a/sdk/dotnet/ApiGateway/Method.cs +++ b/sdk/dotnet/ApiGateway/Method.cs @@ -132,6 +132,12 @@ public partial class Method : Pulumi.CustomResource [Output("httpMethod")] public Output HttpMethod { get; private set; } = null!; + /// + /// The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + /// + [Output("operationName")] + public Output OperationName { get; private set; } = null!; + /// /// A map of the API models used for the request's content type /// where key is the content type (e.g. `application/json`) @@ -247,6 +253,12 @@ public InputList AuthorizationScopes [Input("httpMethod", required: true)] public Input HttpMethod { get; set; } = null!; + /// + /// The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + /// + [Input("operationName")] + public Input? OperationName { get; set; } + [Input("requestModels")] private InputMap? _requestModels; @@ -335,6 +347,12 @@ public InputList AuthorizationScopes [Input("httpMethod")] public Input? HttpMethod { get; set; } + /// + /// The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + /// + [Input("operationName")] + public Input? OperationName { get; set; } + [Input("requestModels")] private InputMap? _requestModels; diff --git a/sdk/dotnet/ApiGateway/MethodSettings.cs b/sdk/dotnet/ApiGateway/MethodSettings.cs index f9005028c29..7d9bae406f6 100644 --- a/sdk/dotnet/ApiGateway/MethodSettings.cs +++ b/sdk/dotnet/ApiGateway/MethodSettings.cs @@ -12,85 +12,6 @@ namespace Pulumi.Aws.ApiGateway /// /// Provides an API Gateway Method Settings, e.g. logging or monitoring. /// - /// ## Example Usage - /// - /// ```csharp - /// using Pulumi; - /// using Aws = Pulumi.Aws; - /// - /// class MyStack : Stack - /// { - /// public MyStack() - /// { - /// var testRestApi = new Aws.ApiGateway.RestApi("testRestApi", new Aws.ApiGateway.RestApiArgs - /// { - /// Description = "This is my API for demonstration purposes", - /// }); - /// var testResource = new Aws.ApiGateway.Resource("testResource", new Aws.ApiGateway.ResourceArgs - /// { - /// RestApi = testRestApi.Id, - /// ParentId = testRestApi.RootResourceId, - /// PathPart = "mytestresource", - /// }); - /// var testMethod = new Aws.ApiGateway.Method("testMethod", new Aws.ApiGateway.MethodArgs - /// { - /// RestApi = testRestApi.Id, - /// ResourceId = testResource.Id, - /// HttpMethod = "GET", - /// Authorization = "NONE", - /// }); - /// var testIntegration = new Aws.ApiGateway.Integration("testIntegration", new Aws.ApiGateway.IntegrationArgs - /// { - /// RestApi = testRestApi.Id, - /// ResourceId = testResource.Id, - /// HttpMethod = testMethod.HttpMethod, - /// Type = "MOCK", - /// RequestTemplates = - /// { - /// { "application/xml", @"{ - /// ""body"" : $input.json('$') - /// } - /// " }, - /// }, - /// }); - /// var testDeployment = new Aws.ApiGateway.Deployment("testDeployment", new Aws.ApiGateway.DeploymentArgs - /// { - /// RestApi = testRestApi.Id, - /// StageName = "dev", - /// }, new CustomResourceOptions - /// { - /// DependsOn = - /// { - /// testIntegration, - /// }, - /// }); - /// var testStage = new Aws.ApiGateway.Stage("testStage", new Aws.ApiGateway.StageArgs - /// { - /// StageName = "prod", - /// RestApi = testRestApi.Id, - /// Deployment = testDeployment.Id, - /// }); - /// var methodSettings = new Aws.ApiGateway.MethodSettings("methodSettings", new Aws.ApiGateway.MethodSettingsArgs - /// { - /// RestApi = testRestApi.Id, - /// StageName = testStage.StageName, - /// MethodPath = Output.Tuple(testResource.PathPart, testMethod.HttpMethod).Apply(values => - /// { - /// var pathPart = values.Item1; - /// var httpMethod = values.Item2; - /// return $"{pathPart}/{httpMethod}"; - /// }), - /// Settings = new Aws.ApiGateway.Inputs.MethodSettingsSettingsArgs - /// { - /// MetricsEnabled = true, - /// LoggingLevel = "INFO", - /// }, - /// }); - /// } - /// - /// } - /// ``` - /// /// ## Import /// /// `aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g. diff --git a/sdk/dotnet/ApiGateway/Outputs/DomainNameMutualTlsAuthentication.cs b/sdk/dotnet/ApiGateway/Outputs/DomainNameMutualTlsAuthentication.cs new file mode 100644 index 00000000000..42f2b11e8f6 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Outputs/DomainNameMutualTlsAuthentication.cs @@ -0,0 +1,36 @@ +// *** 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.ApiGateway.Outputs +{ + + [OutputType] + public sealed class DomainNameMutualTlsAuthentication + { + /// + /// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + /// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + /// + public readonly string TruststoreUri; + /// + /// The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + /// + public readonly string? TruststoreVersion; + + [OutputConstructor] + private DomainNameMutualTlsAuthentication( + string truststoreUri, + + string? truststoreVersion) + { + TruststoreUri = truststoreUri; + TruststoreVersion = truststoreVersion; + } + } +} diff --git a/sdk/dotnet/ApiGateway/Outputs/GetDomainNameEndpointConfigurationResult.cs b/sdk/dotnet/ApiGateway/Outputs/GetDomainNameEndpointConfigurationResult.cs new file mode 100644 index 00000000000..7544c684913 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Outputs/GetDomainNameEndpointConfigurationResult.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.ApiGateway.Outputs +{ + + [OutputType] + public sealed class GetDomainNameEndpointConfigurationResult + { + /// + /// List of endpoint types. + /// + public readonly ImmutableArray Types; + + [OutputConstructor] + private GetDomainNameEndpointConfigurationResult(ImmutableArray types) + { + Types = types; + } + } +} diff --git a/sdk/dotnet/ApiGateway/Outputs/IntegrationTlsConfig.cs b/sdk/dotnet/ApiGateway/Outputs/IntegrationTlsConfig.cs new file mode 100644 index 00000000000..50fe36f89d9 --- /dev/null +++ b/sdk/dotnet/ApiGateway/Outputs/IntegrationTlsConfig.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.ApiGateway.Outputs +{ + + [OutputType] + public sealed class IntegrationTlsConfig + { + /// + /// Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + /// + public readonly bool? InsecureSkipVerification; + + [OutputConstructor] + private IntegrationTlsConfig(bool? insecureSkipVerification) + { + InsecureSkipVerification = insecureSkipVerification; + } + } +} diff --git a/sdk/dotnet/ApiGateway/Response.cs b/sdk/dotnet/ApiGateway/Response.cs index 2b9f9e7ef71..9de5a5ff748 100644 --- a/sdk/dotnet/ApiGateway/Response.cs +++ b/sdk/dotnet/ApiGateway/Response.cs @@ -32,7 +32,7 @@ namespace Pulumi.Aws.ApiGateway /// ResponseType = "UNAUTHORIZED", /// ResponseTemplates = /// { - /// { "application/json", "{'message':$context.error.messageString}" }, + /// { "application/json", "{\"message\":$context.error.messageString}" }, /// }, /// ResponseParameters = /// { diff --git a/sdk/dotnet/ApiGateway/RestApi.cs b/sdk/dotnet/ApiGateway/RestApi.cs index 849db6faa17..bc84c8ce835 100644 --- a/sdk/dotnet/ApiGateway/RestApi.cs +++ b/sdk/dotnet/ApiGateway/RestApi.cs @@ -102,6 +102,12 @@ public partial class RestApi : Pulumi.CustomResource [Output("description")] public Output Description { get; private set; } = null!; + /// + /// Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + /// + [Output("disableExecuteApiEndpoint")] + public Output DisableExecuteApiEndpoint { get; private set; } = null!; + /// /// Nested argument defining API endpoint configuration including endpoint type. Defined below. /// @@ -128,6 +134,12 @@ public partial class RestApi : Pulumi.CustomResource [Output("name")] public Output Name { get; private set; } = null!; + /// + /// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + /// + [Output("parameters")] + public Output?> Parameters { get; private set; } = null!; + /// /// JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. /// @@ -222,6 +234,12 @@ public InputList BinaryMediaTypes [Input("description")] public Input? Description { get; set; } + /// + /// Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + /// + [Input("disableExecuteApiEndpoint")] + public Input? DisableExecuteApiEndpoint { get; set; } + /// /// Nested argument defining API endpoint configuration including endpoint type. Defined below. /// @@ -240,6 +258,18 @@ public InputList BinaryMediaTypes [Input("name")] public Input? Name { get; set; } + [Input("parameters")] + private InputMap? _parameters; + + /// + /// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + /// + public InputMap Parameters + { + get => _parameters ?? (_parameters = new InputMap()); + set => _parameters = value; + } + /// /// JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. /// @@ -307,6 +337,12 @@ public InputList BinaryMediaTypes [Input("description")] public Input? Description { get; set; } + /// + /// Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + /// + [Input("disableExecuteApiEndpoint")] + public Input? DisableExecuteApiEndpoint { get; set; } + /// /// Nested argument defining API endpoint configuration including endpoint type. Defined below. /// @@ -333,6 +369,18 @@ public InputList BinaryMediaTypes [Input("name")] public Input? Name { get; set; } + [Input("parameters")] + private InputMap? _parameters; + + /// + /// Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + /// + public InputMap Parameters + { + get => _parameters ?? (_parameters = new InputMap()); + set => _parameters = value; + } + /// /// JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. /// diff --git a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.cs new file mode 100644 index 00000000000..5379edaccba --- /dev/null +++ b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterArgs.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.ApiGatewayV2.Inputs +{ + + public sealed class IntegrationResponseParameterArgs : Pulumi.ResourceArgs + { + [Input("mappings", required: true)] + private InputMap? _mappings; + + /// + /// A 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. + /// 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 + { + get => _mappings ?? (_mappings = new InputMap()); + set => _mappings = value; + } + + /// + /// The HTTP status code in the range 200-599. + /// + [Input("statusCode", required: true)] + public Input StatusCode { get; set; } = null!; + + public IntegrationResponseParameterArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.cs new file mode 100644 index 00000000000..3136bb5b80b --- /dev/null +++ b/sdk/dotnet/ApiGatewayV2/Inputs/IntegrationResponseParameterGetArgs.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.ApiGatewayV2.Inputs +{ + + public sealed class IntegrationResponseParameterGetArgs : Pulumi.ResourceArgs + { + [Input("mappings", required: true)] + private InputMap? _mappings; + + /// + /// A 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. + /// 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 + { + get => _mappings ?? (_mappings = new InputMap()); + set => _mappings = value; + } + + /// + /// The HTTP status code in the range 200-599. + /// + [Input("statusCode", required: true)] + public Input StatusCode { get; set; } = null!; + + public IntegrationResponseParameterGetArgs() + { + } + } +} diff --git a/sdk/dotnet/ApiGatewayV2/Integration.cs b/sdk/dotnet/ApiGatewayV2/Integration.cs index ee88ee0a12c..d802c8e122d 100644 --- a/sdk/dotnet/ApiGatewayV2/Integration.cs +++ b/sdk/dotnet/ApiGatewayV2/Integration.cs @@ -186,18 +186,26 @@ public partial class Integration : Pulumi.CustomResource public Output PayloadFormatVersion { get; private set; } = null!; /// - /// A key-value map specifying request parameters that are passed from the method request to the backend. - /// Supported only for WebSocket APIs. + /// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + /// For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + /// For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + /// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. /// [Output("requestParameters")] public Output?> RequestParameters { get; private set; } = null!; /// - /// A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + /// A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. /// [Output("requestTemplates")] public Output?> RequestTemplates { get; private set; } = null!; + /// + /// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + /// + [Output("responseParameters")] + public Output> ResponseParameters { get; private set; } = null!; + /// /// The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. /// @@ -338,8 +346,10 @@ public sealed class IntegrationArgs : Pulumi.ResourceArgs private InputMap? _requestParameters; /// - /// A key-value map specifying request parameters that are passed from the method request to the backend. - /// Supported only for WebSocket APIs. + /// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + /// For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + /// For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + /// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. /// public InputMap RequestParameters { @@ -351,7 +361,7 @@ public InputMap RequestParameters private InputMap? _requestTemplates; /// - /// A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + /// A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. /// public InputMap RequestTemplates { @@ -359,6 +369,18 @@ public InputMap RequestTemplates set => _requestTemplates = value; } + [Input("responseParameters")] + private InputList? _responseParameters; + + /// + /// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + /// + public InputList ResponseParameters + { + get => _responseParameters ?? (_responseParameters = new InputList()); + set => _responseParameters = value; + } + /// /// The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. /// @@ -466,8 +488,10 @@ public sealed class IntegrationState : Pulumi.ResourceArgs private InputMap? _requestParameters; /// - /// A key-value map specifying request parameters that are passed from the method request to the backend. - /// Supported only for WebSocket APIs. + /// For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + /// For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + /// For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + /// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. /// public InputMap RequestParameters { @@ -479,7 +503,7 @@ public InputMap RequestParameters private InputMap? _requestTemplates; /// - /// A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + /// A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. /// public InputMap RequestTemplates { @@ -487,6 +511,18 @@ public InputMap RequestTemplates set => _requestTemplates = value; } + [Input("responseParameters")] + private InputList? _responseParameters; + + /// + /// Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + /// + public InputList ResponseParameters + { + get => _responseParameters ?? (_responseParameters = new InputList()); + set => _responseParameters = value; + } + /// /// The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. /// diff --git a/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs b/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs new file mode 100644 index 00000000000..27dd19c6057 --- /dev/null +++ b/sdk/dotnet/ApiGatewayV2/Outputs/IntegrationResponseParameter.cs @@ -0,0 +1,36 @@ +// *** 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.ApiGatewayV2.Outputs +{ + + [OutputType] + public sealed class IntegrationResponseParameter + { + /// + /// A 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. + /// 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; + /// + /// The HTTP status code in the range 200-599. + /// + public readonly string StatusCode; + + [OutputConstructor] + private IntegrationResponseParameter( + ImmutableDictionary mappings, + + string statusCode) + { + Mappings = mappings; + StatusCode = statusCode; + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteArgs.cs index 5a04a162a18..a18ed6fb51e 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteArgs.cs @@ -21,8 +21,8 @@ public sealed class RouteSpecGrpcRouteArgs : Pulumi.ResourceArgs /// /// The criteria for determining an gRPC request match. /// - [Input("match", required: true)] - public Input Match { get; set; } = null!; + [Input("match")] + public Input? Match { get; set; } /// /// The retry policy. diff --git a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteGetArgs.cs index bcff160d1a3..55d7e356f0e 100644 --- a/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteGetArgs.cs +++ b/sdk/dotnet/AppMesh/Inputs/RouteSpecGrpcRouteGetArgs.cs @@ -21,8 +21,8 @@ public sealed class RouteSpecGrpcRouteGetArgs : Pulumi.ResourceArgs /// /// The criteria for determining an gRPC request match. /// - [Input("match", required: true)] - public Input Match { get; set; } = null!; + [Input("match")] + public Input? Match { get; set; } /// /// The retry policy. diff --git a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRoute.cs b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRoute.cs index f6e7706c34c..9d2e4865fa7 100644 --- a/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRoute.cs +++ b/sdk/dotnet/AppMesh/Outputs/RouteSpecGrpcRoute.cs @@ -20,7 +20,7 @@ public sealed class RouteSpecGrpcRoute /// /// The criteria for determining an gRPC request match. /// - public readonly Outputs.RouteSpecGrpcRouteMatch Match; + public readonly Outputs.RouteSpecGrpcRouteMatch? Match; /// /// The retry policy. /// @@ -34,7 +34,7 @@ public sealed class RouteSpecGrpcRoute private RouteSpecGrpcRoute( Outputs.RouteSpecGrpcRouteAction action, - Outputs.RouteSpecGrpcRouteMatch match, + Outputs.RouteSpecGrpcRouteMatch? match, Outputs.RouteSpecGrpcRouteRetryPolicy? retryPolicy, diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesArgs.cs index 240785c869b..0a011b20ccd 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupInstanceRefreshPreferencesArgs : Pulumi.ResourceArgs { + /// + /// The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + /// [Input("instanceWarmup")] public Input? InstanceWarmup { get; set; } diff --git a/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesGetArgs.cs b/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesGetArgs.cs index 33f4170f379..752092b9cef 100644 --- a/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesGetArgs.cs +++ b/sdk/dotnet/AutoScaling/Inputs/GroupInstanceRefreshPreferencesGetArgs.cs @@ -12,6 +12,9 @@ namespace Pulumi.Aws.AutoScaling.Inputs public sealed class GroupInstanceRefreshPreferencesGetArgs : Pulumi.ResourceArgs { + /// + /// The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + /// [Input("instanceWarmup")] public Input? InstanceWarmup { get; set; } diff --git a/sdk/dotnet/AutoScaling/Outputs/GroupInstanceRefreshPreferences.cs b/sdk/dotnet/AutoScaling/Outputs/GroupInstanceRefreshPreferences.cs index ff1e710fd4e..d39a31fe639 100644 --- a/sdk/dotnet/AutoScaling/Outputs/GroupInstanceRefreshPreferences.cs +++ b/sdk/dotnet/AutoScaling/Outputs/GroupInstanceRefreshPreferences.cs @@ -13,6 +13,9 @@ namespace Pulumi.Aws.AutoScaling.Outputs [OutputType] public sealed class GroupInstanceRefreshPreferences { + /// + /// The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + /// public readonly string? InstanceWarmup; /// /// The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. diff --git a/sdk/dotnet/CloudWatch/CompositeAlarm.cs b/sdk/dotnet/CloudWatch/CompositeAlarm.cs new file mode 100644 index 00000000000..f9d1787367e --- /dev/null +++ b/sdk/dotnet/CloudWatch/CompositeAlarm.cs @@ -0,0 +1,285 @@ +// *** 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.CloudWatch +{ + /// + /// ## Import + /// + /// Use the `alarm_name` to import a CloudWatch Composite Alarm. For example + /// + /// ```sh + /// $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm + /// ``` + /// + [AwsResourceType("aws:cloudwatch/compositeAlarm:CompositeAlarm")] + public partial class CompositeAlarm : Pulumi.CustomResource + { + /// + /// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + /// + [Output("actionsEnabled")] + public Output ActionsEnabled { get; private set; } = null!; + + /// + /// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + [Output("alarmActions")] + public Output> AlarmActions { get; private set; } = null!; + + /// + /// The description for the composite alarm. + /// + [Output("alarmDescription")] + public Output AlarmDescription { get; private set; } = null!; + + /// + /// The name for the composite alarm. This name must be unique within the region. + /// + [Output("alarmName")] + public Output AlarmName { get; private set; } = null!; + + /// + /// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + /// + [Output("alarmRule")] + public Output AlarmRule { get; private set; } = null!; + + /// + /// The ARN of the composite alarm. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + [Output("insufficientDataActions")] + public Output> InsufficientDataActions { get; private set; } = null!; + + /// + /// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + [Output("okActions")] + public Output> OkActions { get; private set; } = null!; + + /// + /// A map of tags to associate with the alarm. Up to 50 tags are allowed. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + + /// + /// Create a CompositeAlarm 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 CompositeAlarm(string name, CompositeAlarmArgs args, CustomResourceOptions? options = null) + : base("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, args ?? new CompositeAlarmArgs(), MakeResourceOptions(options, "")) + { + } + + private CompositeAlarm(string name, Input id, CompositeAlarmState? state = null, CustomResourceOptions? options = null) + : base("aws:cloudwatch/compositeAlarm:CompositeAlarm", 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 CompositeAlarm 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 CompositeAlarm Get(string name, Input id, CompositeAlarmState? state = null, CustomResourceOptions? options = null) + { + return new CompositeAlarm(name, id, state, options); + } + } + + public sealed class CompositeAlarmArgs : Pulumi.ResourceArgs + { + /// + /// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + /// + [Input("actionsEnabled")] + public Input? ActionsEnabled { get; set; } + + [Input("alarmActions")] + private InputList? _alarmActions; + + /// + /// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList AlarmActions + { + get => _alarmActions ?? (_alarmActions = new InputList()); + set => _alarmActions = value; + } + + /// + /// The description for the composite alarm. + /// + [Input("alarmDescription")] + public Input? AlarmDescription { get; set; } + + /// + /// The name for the composite alarm. This name must be unique within the region. + /// + [Input("alarmName", required: true)] + public Input AlarmName { get; set; } = null!; + + /// + /// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + /// + [Input("alarmRule", required: true)] + public Input AlarmRule { get; set; } = null!; + + [Input("insufficientDataActions")] + private InputList? _insufficientDataActions; + + /// + /// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList InsufficientDataActions + { + get => _insufficientDataActions ?? (_insufficientDataActions = new InputList()); + set => _insufficientDataActions = value; + } + + [Input("okActions")] + private InputList? _okActions; + + /// + /// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList OkActions + { + get => _okActions ?? (_okActions = new InputList()); + set => _okActions = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to associate with the alarm. Up to 50 tags are allowed. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public CompositeAlarmArgs() + { + } + } + + public sealed class CompositeAlarmState : Pulumi.ResourceArgs + { + /// + /// Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + /// + [Input("actionsEnabled")] + public Input? ActionsEnabled { get; set; } + + [Input("alarmActions")] + private InputList? _alarmActions; + + /// + /// The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList AlarmActions + { + get => _alarmActions ?? (_alarmActions = new InputList()); + set => _alarmActions = value; + } + + /// + /// The description for the composite alarm. + /// + [Input("alarmDescription")] + public Input? AlarmDescription { get; set; } + + /// + /// The name for the composite alarm. This name must be unique within the region. + /// + [Input("alarmName")] + public Input? AlarmName { get; set; } + + /// + /// An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + /// + [Input("alarmRule")] + public Input? AlarmRule { get; set; } + + /// + /// The ARN of the composite alarm. + /// + [Input("arn")] + public Input? Arn { get; set; } + + [Input("insufficientDataActions")] + private InputList? _insufficientDataActions; + + /// + /// The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList InsufficientDataActions + { + get => _insufficientDataActions ?? (_insufficientDataActions = new InputList()); + set => _insufficientDataActions = value; + } + + [Input("okActions")] + private InputList? _okActions; + + /// + /// The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + /// + public InputList OkActions + { + get => _okActions ?? (_okActions = new InputList()); + set => _okActions = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to associate with the alarm. Up to 50 tags are allowed. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public CompositeAlarmState() + { + } + } +} diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs index eeb229fcdf9..1dc0e1761ce 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionArgs.cs @@ -73,7 +73,7 @@ public InputList OutputArtifacts public Input Owner { get; set; } = null!; /// - /// The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + /// The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. /// [Input("provider", required: true)] public Input Provider { get; set; } = null!; diff --git a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs index ff1c0f0b0d8..17c5b3bfece 100644 --- a/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs +++ b/sdk/dotnet/CodePipeline/Inputs/PipelineStageActionGetArgs.cs @@ -73,7 +73,7 @@ public InputList OutputArtifacts public Input Owner { get; set; } = null!; /// - /// The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + /// The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. /// [Input("provider", required: true)] public Input Provider { get; set; } = null!; diff --git a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs index 9dc5a42a6f9..a9f3e0c8ad1 100644 --- a/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs +++ b/sdk/dotnet/CodePipeline/Outputs/PipelineStageAction.cs @@ -42,7 +42,7 @@ public sealed class PipelineStageAction /// public readonly string Owner; /// - /// The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + /// The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. /// public readonly string Provider; /// diff --git a/sdk/dotnet/CodePipeline/Pipeline.cs b/sdk/dotnet/CodePipeline/Pipeline.cs index c741c828dcb..5475988e1ba 100644 --- a/sdk/dotnet/CodePipeline/Pipeline.cs +++ b/sdk/dotnet/CodePipeline/Pipeline.cs @@ -22,6 +22,10 @@ namespace Pulumi.Aws.CodePipeline /// { /// public MyStack() /// { + /// var example = new Aws.CodeStarConnections.Connection("example", new Aws.CodeStarConnections.ConnectionArgs + /// { + /// ProviderType = "GitHub", + /// }); /// var codepipelineBucket = new Aws.S3.Bucket("codepipelineBucket", new Aws.S3.BucketArgs /// { /// Acl = "private", @@ -70,8 +74,8 @@ namespace Pulumi.Aws.CodePipeline /// { /// Name = "Source", /// Category = "Source", - /// Owner = "ThirdParty", - /// Provider = "GitHub", + /// Owner = "AWS", + /// Provider = "CodeStarSourceConnection", /// Version = "1", /// OutputArtifacts = /// { @@ -79,10 +83,9 @@ namespace Pulumi.Aws.CodePipeline /// }, /// Configuration = /// { - /// { "Owner", "my-organization" }, - /// { "Repo", "test" }, - /// { "Branch", "master" }, - /// { "OAuthToken", @var.Github_token }, + /// { "ConnectionArn", example.Arn }, + /// { "FullRepositoryId", "my-organization/example" }, + /// { "BranchName", "main" }, /// }, /// }, /// }, diff --git a/sdk/dotnet/CodeStarConnections/Connection.cs b/sdk/dotnet/CodeStarConnections/Connection.cs index fb89fd96429..acd29240916 100644 --- a/sdk/dotnet/CodeStarConnections/Connection.cs +++ b/sdk/dotnet/CodeStarConnections/Connection.cs @@ -52,10 +52,9 @@ namespace Pulumi.Aws.CodeStarConnections /// }, /// Configuration = /// { - /// { "Owner", "my-organization" }, /// { "ConnectionArn", exampleConnection.Arn }, - /// { "Repo", "foo/test" }, - /// { "Branch", "master" }, + /// { "FullRepositoryId", "my-organization/test" }, + /// { "BranchName", "main" }, /// }, /// }, /// }, diff --git a/sdk/dotnet/Dms/Inputs/EndpointS3SettingsArgs.cs b/sdk/dotnet/Dms/Inputs/EndpointS3SettingsArgs.cs index b2ad1bf8906..457a40e77ad 100644 --- a/sdk/dotnet/Dms/Inputs/EndpointS3SettingsArgs.cs +++ b/sdk/dotnet/Dms/Inputs/EndpointS3SettingsArgs.cs @@ -42,6 +42,12 @@ public sealed class EndpointS3SettingsArgs : Pulumi.ResourceArgs [Input("csvRowDelimiter")] public Input? CsvRowDelimiter { get; set; } + /// + /// Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + /// + [Input("datePartitionEnabled")] + public Input? DatePartitionEnabled { get; set; } + /// /// JSON document that describes how AWS DMS should interpret the data. /// diff --git a/sdk/dotnet/Dms/Inputs/EndpointS3SettingsGetArgs.cs b/sdk/dotnet/Dms/Inputs/EndpointS3SettingsGetArgs.cs index b3ca16ba797..37c959f2f54 100644 --- a/sdk/dotnet/Dms/Inputs/EndpointS3SettingsGetArgs.cs +++ b/sdk/dotnet/Dms/Inputs/EndpointS3SettingsGetArgs.cs @@ -42,6 +42,12 @@ public sealed class EndpointS3SettingsGetArgs : Pulumi.ResourceArgs [Input("csvRowDelimiter")] public Input? CsvRowDelimiter { get; set; } + /// + /// Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + /// + [Input("datePartitionEnabled")] + public Input? DatePartitionEnabled { get; set; } + /// /// JSON document that describes how AWS DMS should interpret the data. /// diff --git a/sdk/dotnet/Dms/Outputs/EndpointS3Settings.cs b/sdk/dotnet/Dms/Outputs/EndpointS3Settings.cs index 36a71ba21db..b092ed69711 100644 --- a/sdk/dotnet/Dms/Outputs/EndpointS3Settings.cs +++ b/sdk/dotnet/Dms/Outputs/EndpointS3Settings.cs @@ -34,6 +34,10 @@ public sealed class EndpointS3Settings /// public readonly string? CsvRowDelimiter; /// + /// Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + /// + public readonly bool? DatePartitionEnabled; + /// /// JSON document that describes how AWS DMS should interpret the data. /// public readonly string? ExternalTableDefinition; @@ -54,6 +58,8 @@ private EndpointS3Settings( string? csvRowDelimiter, + bool? datePartitionEnabled, + string? externalTableDefinition, string? serviceAccessRoleArn) @@ -63,6 +69,7 @@ private EndpointS3Settings( CompressionType = compressionType; CsvDelimiter = csvDelimiter; CsvRowDelimiter = csvRowDelimiter; + DatePartitionEnabled = datePartitionEnabled; ExternalTableDefinition = externalTableDefinition; ServiceAccessRoleArn = serviceAccessRoleArn; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationArgs.cs index 8ac065fcac8..313168ba17c 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceCreditSpecificationArgs : Pulumi.ResourceArgs { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// [Input("cpuCredits")] public Input? CpuCredits { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationGetArgs.cs index 2b31f15d2ab..011c70b5d06 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceCreditSpecificationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceCreditSpecificationGetArgs : Pulumi.ResourceArgs { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// [Input("cpuCredits")] public Input? CpuCredits { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceArgs.cs index 3e0efbf1249..d282dea6be6 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceArgs.cs @@ -13,30 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceEbsBlockDeviceArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName", required: true)] public Input DeviceName { get; set; } = null!; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -48,28 +43,43 @@ public sealed class InstanceEbsBlockDeviceArgs : Pulumi.ResourceArgs public Input? KmsKeyId { get; set; } /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// [Input("snapshotId")] public Input? SnapshotId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// [Input("volumeId")] public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceGetArgs.cs index 17b240c63f3..a316df53f68 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEbsBlockDeviceGetArgs.cs @@ -13,30 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceEbsBlockDeviceGetArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName", required: true)] public Input DeviceName { get; set; } = null!; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -48,28 +43,43 @@ public sealed class InstanceEbsBlockDeviceGetArgs : Pulumi.ResourceArgs public Input? KmsKeyId { get; set; } /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// [Input("snapshotId")] public Input? SnapshotId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// [Input("volumeId")] public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsArgs.cs index 51f9859eb7e..49d614c1e2c 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceEnclaveOptionsArgs : Pulumi.ResourceArgs { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsGetArgs.cs index 0532bd49184..b0e8af23749 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEnclaveOptionsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceEnclaveOptionsGetArgs : Pulumi.ResourceArgs { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceArgs.cs index 1a1e05414ba..29fda742b90 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceArgs.cs @@ -25,9 +25,7 @@ public sealed class InstanceEphemeralBlockDeviceArgs : Pulumi.ResourceArgs public Input? NoDevice { get; set; } /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// [Input("virtualName")] public Input? VirtualName { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceGetArgs.cs index 841680481da..db95462635c 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceEphemeralBlockDeviceGetArgs.cs @@ -25,9 +25,7 @@ public sealed class InstanceEphemeralBlockDeviceGetArgs : Pulumi.ResourceArgs public Input? NoDevice { get; set; } /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// [Input("virtualName")] public Input? VirtualName { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsArgs.cs index 3dcb4fa25bd..30702dcf9e1 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceMetadataOptionsArgs : Pulumi.ResourceArgs { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// [Input("httpEndpoint")] public Input? HttpEndpoint { get; set; } /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// [Input("httpPutResponseHopLimit")] public Input? HttpPutResponseHopLimit { get; set; } /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// [Input("httpTokens")] public Input? HttpTokens { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsGetArgs.cs index 844d21ce72a..2f67b4ec793 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceMetadataOptionsGetArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceMetadataOptionsGetArgs : Pulumi.ResourceArgs { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// [Input("httpEndpoint")] public Input? HttpEndpoint { get; set; } /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// [Input("httpPutResponseHopLimit")] public Input? HttpPutResponseHopLimit { get; set; } /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// [Input("httpTokens")] public Input? HttpTokens { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceArgs.cs index e6701d2ba22..81da1feb446 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceArgs.cs @@ -19,13 +19,13 @@ public sealed class InstanceNetworkInterfaceArgs : Pulumi.ResourceArgs public Input? DeleteOnTermination { get; set; } /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// [Input("deviceIndex", required: true)] public Input DeviceIndex { get; set; } = null!; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// [Input("networkInterfaceId", required: true)] public Input NetworkInterfaceId { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceGetArgs.cs index 4befffd4709..debd793141f 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceNetworkInterfaceGetArgs.cs @@ -19,13 +19,13 @@ public sealed class InstanceNetworkInterfaceGetArgs : Pulumi.ResourceArgs public Input? DeleteOnTermination { get; set; } /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// [Input("deviceIndex", required: true)] public Input DeviceIndex { get; set; } = null!; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// [Input("networkInterfaceId", required: true)] public Input NetworkInterfaceId { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceArgs.cs index 5f5d8103a25..a6161f2cac2 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceArgs.cs @@ -13,27 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceRootBlockDeviceArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName")] public Input? DeviceName { get; set; } /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -44,23 +42,38 @@ public sealed class InstanceRootBlockDeviceArgs : Pulumi.ResourceArgs [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// [Input("volumeId")] public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceGetArgs.cs index dc7191ae78f..847115d1445 100644 --- a/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/InstanceRootBlockDeviceGetArgs.cs @@ -13,27 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class InstanceRootBlockDeviceGetArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName")] public Input? DeviceName { get; set; } /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -44,23 +42,38 @@ public sealed class InstanceRootBlockDeviceGetArgs : Pulumi.ResourceArgs [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// [Input("volumeId")] public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationArgs.cs index 0ebabb1958e..ec4cf21cddb 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestCreditSpecificationArgs : Pulumi.ResourceArgs { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// [Input("cpuCredits")] public Input? CpuCredits { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationGetArgs.cs index 3a8b95d3a20..d7444ce5fe7 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestCreditSpecificationGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestCreditSpecificationGetArgs : Pulumi.ResourceArgs { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// [Input("cpuCredits")] public Input? CpuCredits { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceArgs.cs index 0977c10e72c..36176cc3e98 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceArgs.cs @@ -13,30 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestEbsBlockDeviceArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName", required: true)] public Input DeviceName { get; set; } = null!; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -48,13 +43,25 @@ public sealed class SpotInstanceRequestEbsBlockDeviceArgs : Pulumi.ResourceArgs public Input? KmsKeyId { get; set; } /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// [Input("snapshotId")] public Input? SnapshotId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } @@ -63,13 +70,13 @@ public sealed class SpotInstanceRequestEbsBlockDeviceArgs : Pulumi.ResourceArgs public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceGetArgs.cs index 7ef3551d0cc..dadb9489e6f 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEbsBlockDeviceGetArgs.cs @@ -13,30 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestEbsBlockDeviceGetArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName", required: true)] public Input DeviceName { get; set; } = null!; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -48,13 +43,25 @@ public sealed class SpotInstanceRequestEbsBlockDeviceGetArgs : Pulumi.ResourceAr public Input? KmsKeyId { get; set; } /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// [Input("snapshotId")] public Input? SnapshotId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } @@ -63,13 +70,13 @@ public sealed class SpotInstanceRequestEbsBlockDeviceGetArgs : Pulumi.ResourceAr public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsArgs.cs index 4e63463d16f..5995f7a5ca5 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestEnclaveOptionsArgs : Pulumi.ResourceArgs { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsGetArgs.cs index b1bfa5dca75..eee41db4f52 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEnclaveOptionsGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestEnclaveOptionsGetArgs : Pulumi.ResourceArgs { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// [Input("enabled")] public Input? Enabled { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceArgs.cs index 0d9ce0e37f6..512a391be9a 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceArgs.cs @@ -25,9 +25,7 @@ public sealed class SpotInstanceRequestEphemeralBlockDeviceArgs : Pulumi.Resourc public Input? NoDevice { get; set; } /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// [Input("virtualName")] public Input? VirtualName { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceGetArgs.cs index 139a96a81b8..82990461d39 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestEphemeralBlockDeviceGetArgs.cs @@ -25,9 +25,7 @@ public sealed class SpotInstanceRequestEphemeralBlockDeviceGetArgs : Pulumi.Reso public Input? NoDevice { get; set; } /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// [Input("virtualName")] public Input? VirtualName { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsArgs.cs index 464451be337..c29087545f6 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestMetadataOptionsArgs : Pulumi.ResourceArgs { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// [Input("httpEndpoint")] public Input? HttpEndpoint { get; set; } /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// [Input("httpPutResponseHopLimit")] public Input? HttpPutResponseHopLimit { get; set; } /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// [Input("httpTokens")] public Input? HttpTokens { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsGetArgs.cs index 050e584cc5c..860dbbe71d4 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestMetadataOptionsGetArgs.cs @@ -13,19 +13,19 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestMetadataOptionsGetArgs : Pulumi.ResourceArgs { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// [Input("httpEndpoint")] public Input? HttpEndpoint { get; set; } /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// [Input("httpPutResponseHopLimit")] public Input? HttpPutResponseHopLimit { get; set; } /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// [Input("httpTokens")] public Input? HttpTokens { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceArgs.cs index 10a941e58ca..960bc6d4ee6 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceArgs.cs @@ -19,13 +19,13 @@ public sealed class SpotInstanceRequestNetworkInterfaceArgs : Pulumi.ResourceArg public Input? DeleteOnTermination { get; set; } /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// [Input("deviceIndex", required: true)] public Input DeviceIndex { get; set; } = null!; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// [Input("networkInterfaceId", required: true)] public Input NetworkInterfaceId { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceGetArgs.cs index d64ab0d2f86..98c2f0c88fc 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestNetworkInterfaceGetArgs.cs @@ -19,13 +19,13 @@ public sealed class SpotInstanceRequestNetworkInterfaceGetArgs : Pulumi.Resource public Input? DeleteOnTermination { get; set; } /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// [Input("deviceIndex", required: true)] public Input DeviceIndex { get; set; } = null!; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// [Input("networkInterfaceId", required: true)] public Input NetworkInterfaceId { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceArgs.cs index 34f0a6b5441..0ecb33b8516 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceArgs.cs @@ -13,27 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestRootBlockDeviceArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName")] public Input? DeviceName { get; set; } /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -44,8 +42,20 @@ public sealed class SpotInstanceRequestRootBlockDeviceArgs : Pulumi.ResourceArgs [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } @@ -54,13 +64,13 @@ public sealed class SpotInstanceRequestRootBlockDeviceArgs : Pulumi.ResourceArgs public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceGetArgs.cs b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceGetArgs.cs index cfa63279930..394d12a6215 100644 --- a/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceGetArgs.cs +++ b/sdk/dotnet/Ec2/Inputs/SpotInstanceRequestRootBlockDeviceGetArgs.cs @@ -13,27 +13,25 @@ namespace Pulumi.Aws.Ec2.Inputs public sealed class SpotInstanceRequestRootBlockDeviceGetArgs : Pulumi.ResourceArgs { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// [Input("deleteOnTermination")] public Input? DeleteOnTermination { get; set; } /// - /// The name of the device to mount. + /// Name of the device to mount. /// [Input("deviceName")] public Input? DeviceName { get; set; } /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// [Input("encrypted")] public Input? Encrypted { get; set; } /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// [Input("iops")] public Input? Iops { get; set; } @@ -44,8 +42,20 @@ public sealed class SpotInstanceRequestRootBlockDeviceGetArgs : Pulumi.ResourceA [Input("kmsKeyId")] public Input? KmsKeyId { get; set; } + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the device. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// [Input("throughput")] public Input? Throughput { get; set; } @@ -54,13 +64,13 @@ public sealed class SpotInstanceRequestRootBlockDeviceGetArgs : Pulumi.ResourceA public Input? VolumeId { get; set; } /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// [Input("volumeSize")] public Input? VolumeSize { get; set; } /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// [Input("volumeType")] public Input? VolumeType { get; set; } diff --git a/sdk/dotnet/Ec2/Instance.cs b/sdk/dotnet/Ec2/Instance.cs index cb34b1a75c0..5d5322f39af 100644 --- a/sdk/dotnet/Ec2/Instance.cs +++ b/sdk/dotnet/Ec2/Instance.cs @@ -10,10 +10,10 @@ namespace Pulumi.Aws.Ec2 { /// - /// Provides an EC2 instance resource. This allows instances to be created, updated, - /// and deleted. + /// Provides an EC2 instance resource. This allows instances to be created, updated, and deleted. /// /// ## Example Usage + /// ### Basic Example Using AMI Lookup /// /// ```csharp /// using Pulumi; @@ -63,6 +63,67 @@ namespace Pulumi.Aws.Ec2 /// /// } /// ``` + /// ### Network and Credit Specification Example + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var myVpc = new Aws.Ec2.Vpc("myVpc", new Aws.Ec2.VpcArgs + /// { + /// CidrBlock = "172.16.0.0/16", + /// Tags = + /// { + /// { "Name", "tf-example" }, + /// }, + /// }); + /// var mySubnet = new Aws.Ec2.Subnet("mySubnet", new Aws.Ec2.SubnetArgs + /// { + /// VpcId = myVpc.Id, + /// CidrBlock = "172.16.10.0/24", + /// AvailabilityZone = "us-west-2a", + /// Tags = + /// { + /// { "Name", "tf-example" }, + /// }, + /// }); + /// var fooNetworkInterface = new Aws.Ec2.NetworkInterface("fooNetworkInterface", new Aws.Ec2.NetworkInterfaceArgs + /// { + /// SubnetId = mySubnet.Id, + /// PrivateIps = + /// { + /// "172.16.10.100", + /// }, + /// Tags = + /// { + /// { "Name", "primary_network_interface" }, + /// }, + /// }); + /// var fooInstance = new Aws.Ec2.Instance("fooInstance", new Aws.Ec2.InstanceArgs + /// { + /// Ami = "ami-005e54dee72cc1d00", + /// InstanceType = "t2.micro", + /// NetworkInterfaces = + /// { + /// new Aws.Ec2.Inputs.InstanceNetworkInterfaceArgs + /// { + /// NetworkInterfaceId = fooNetworkInterface.Id, + /// DeviceIndex = 0, + /// }, + /// }, + /// CreditSpecification = new Aws.Ec2.Inputs.InstanceCreditSpecificationArgs + /// { + /// CpuCredits = "unlimited", + /// }, + /// }); + /// } + /// + /// } + /// ``` /// /// ## Import /// @@ -76,7 +137,7 @@ namespace Pulumi.Aws.Ec2 public partial class Instance : Pulumi.CustomResource { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Output("ami")] public Output Ami { get; private set; } = null!; @@ -88,21 +149,19 @@ public partial class Instance : Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Output("associatePublicIpAddress")] public Output AssociatePublicIpAddress { get; private set; } = null!; /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Output("availabilityZone")] public Output AvailabilityZone { get; private set; } = null!; /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Output("cpuCoreCount")] public Output CpuCoreCount { get; private set; } = null!; @@ -120,25 +179,19 @@ public partial class Instance : Pulumi.CustomResource public Output CreditSpecification { get; private set; } = null!; /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Output("disableApiTermination")] public Output DisableApiTermination { get; private set; } = null!; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// [Output("ebsBlockDevices")] public Output> EbsBlockDevices { get; private set; } = null!; /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Output("ebsOptimized")] public Output EbsOptimized { get; private set; } = null!; @@ -150,8 +203,7 @@ public partial class Instance : Pulumi.CustomResource public Output EnclaveOptions { get; private set; } = null!; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// [Output("ephemeralBlockDevices")] public Output> EphemeralBlockDevices { get; private set; } = null!; @@ -169,23 +221,19 @@ public partial class Instance : Pulumi.CustomResource public Output Hibernation { get; private set; } = null!; /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Output("hostId")] public Output HostId { get; private set; } = null!; /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Output("iamInstanceProfile")] public Output IamInstanceProfile { get; private set; } = null!; /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Output("instanceInitiatedShutdownBehavior")] public Output InstanceInitiatedShutdownBehavior { get; private set; } = null!; @@ -197,7 +245,7 @@ public partial class Instance : Pulumi.CustomResource public Output State { get; private set; } = null!; /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Output("instanceType")] public Output InstanceType { get; private set; } = null!; @@ -215,7 +263,7 @@ public partial class Instance : Pulumi.CustomResource public Output> Ipv6Addresses { get; private set; } = null!; /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Output("keyName")] public Output KeyName { get; private set; } = null!; @@ -245,17 +293,13 @@ public partial class Instance : Pulumi.CustomResource public Output OutpostArn { get; private set; } = null!; /// - /// Base-64 encoded encrypted password data for the instance. - /// Useful for getting the administrator password for instances running Microsoft Windows. - /// This attribute is only exported if `get_password_data` is true. - /// Note that this encrypted value will be stored in the state file, as with all exported attributes. - /// See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + /// Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. /// [Output("passwordData")] public Output PasswordData { get; private set; } = null!; /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Output("placementGroup")] public Output PlacementGroup { get; private set; } = null!; @@ -267,36 +311,31 @@ public partial class Instance : Pulumi.CustomResource public Output PrimaryNetworkInterfaceId { get; private set; } = null!; /// - /// The private DNS name assigned to the instance. Can only be - /// used inside the Amazon EC2, and only available if you've enabled DNS hostnames - /// for your VPC + /// The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. /// [Output("privateDns")] public Output PrivateDns { get; private set; } = null!; /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Output("privateIp")] public Output PrivateIp { get; private set; } = null!; /// - /// The public DNS name assigned to the instance. For EC2-VPC, this - /// is only available if you've enabled DNS hostnames for your VPC + /// The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. /// [Output("publicDns")] public Output PublicDns { get; private set; } = null!; /// - /// The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached. + /// The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached. /// [Output("publicIp")] public Output PublicIp { get; private set; } = null!; /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Output("rootBlockDevice")] public Output RootBlockDevice { get; private set; } = null!; @@ -314,32 +353,31 @@ public partial class Instance : Pulumi.CustomResource public Output> SecurityGroups { get; private set; } = null!; /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Output("sourceDestCheck")] public Output SourceDestCheck { get; private set; } = null!; /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Output("subnetId")] public Output SubnetId { get; private set; } = null!; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// [Output("tags")] public Output?> Tags { get; private set; } = null!; /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Output("tenancy")] public Output Tenancy { get; private set; } = null!; /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Output("userData")] public Output UserData { get; private set; } = null!; @@ -351,10 +389,10 @@ public partial class Instance : Pulumi.CustomResource public Output UserDataBase64 { get; private set; } = null!; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// [Output("volumeTags")] - public Output> VolumeTags { get; private set; } = null!; + public Output?> VolumeTags { get; private set; } = null!; /// /// A list of security group IDs to associate with. @@ -409,27 +447,25 @@ public static Instance Get(string name, Input id, InstanceState? state = public sealed class InstanceArgs : Pulumi.ResourceArgs { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Input("ami", required: true)] public Input Ami { get; set; } = null!; /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Input("associatePublicIpAddress")] public Input? AssociatePublicIpAddress { get; set; } /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Input("cpuCoreCount")] public Input? CpuCoreCount { get; set; } @@ -447,8 +483,7 @@ public sealed class InstanceArgs : Pulumi.ResourceArgs public Input? CreditSpecification { get; set; } /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Input("disableApiTermination")] public Input? DisableApiTermination { get; set; } @@ -457,8 +492,7 @@ public sealed class InstanceArgs : Pulumi.ResourceArgs private InputList? _ebsBlockDevices; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// public InputList EbsBlockDevices { @@ -467,11 +501,7 @@ public InputList EbsBlockDevices } /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Input("ebsOptimized")] public Input? EbsOptimized { get; set; } @@ -486,8 +516,7 @@ public InputList EbsBlockDevices private InputList? _ephemeralBlockDevices; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// public InputList EphemeralBlockDevices { @@ -508,29 +537,25 @@ public InputList EphemeralBlockDevices public Input? Hibernation { get; set; } /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Input("hostId")] public Input? HostId { get; set; } /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Input("iamInstanceProfile")] public Input? IamInstanceProfile { get; set; } /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Input("instanceInitiatedShutdownBehavior")] public Input? InstanceInitiatedShutdownBehavior { get; set; } /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Input("instanceType", required: true)] public InputUnion InstanceType { get; set; } = null!; @@ -554,7 +579,7 @@ public InputList Ipv6Addresses } /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Input("keyName")] public Input? KeyName { get; set; } @@ -584,21 +609,19 @@ public InputList NetworkInterfaces } /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Input("placementGroup")] public Input? PlacementGroup { get; set; } /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Input("privateIp")] public Input? PrivateIp { get; set; } /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Input("rootBlockDevice")] public Input? RootBlockDevice { get; set; } @@ -629,14 +652,13 @@ public InputList SecurityGroups } /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Input("sourceDestCheck")] public Input? SourceDestCheck { get; set; } /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Input("subnetId")] public Input? SubnetId { get; set; } @@ -645,7 +667,7 @@ public InputList SecurityGroups private InputMap? _tags; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// public InputMap Tags { @@ -654,13 +676,13 @@ public InputMap Tags } /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Input("tenancy")] public InputUnion? Tenancy { get; set; } /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Input("userData")] public Input? UserData { get; set; } @@ -675,7 +697,7 @@ public InputMap Tags private InputMap? _volumeTags; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// public InputMap VolumeTags { @@ -703,7 +725,7 @@ public InstanceArgs() public sealed class InstanceState : Pulumi.ResourceArgs { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Input("ami")] public Input? Ami { get; set; } @@ -715,21 +737,19 @@ public sealed class InstanceState : Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Input("associatePublicIpAddress")] public Input? AssociatePublicIpAddress { get; set; } /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Input("cpuCoreCount")] public Input? CpuCoreCount { get; set; } @@ -747,8 +767,7 @@ public sealed class InstanceState : Pulumi.ResourceArgs public Input? CreditSpecification { get; set; } /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Input("disableApiTermination")] public Input? DisableApiTermination { get; set; } @@ -757,8 +776,7 @@ public sealed class InstanceState : Pulumi.ResourceArgs private InputList? _ebsBlockDevices; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// public InputList EbsBlockDevices { @@ -767,11 +785,7 @@ public InputList EbsBlockDevices } /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Input("ebsOptimized")] public Input? EbsOptimized { get; set; } @@ -786,8 +800,7 @@ public InputList EbsBlockDevices private InputList? _ephemeralBlockDevices; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// public InputList EphemeralBlockDevices { @@ -808,23 +821,19 @@ public InputList EphemeralBlockDevic public Input? Hibernation { get; set; } /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Input("hostId")] public Input? HostId { get; set; } /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Input("iamInstanceProfile")] public Input? IamInstanceProfile { get; set; } /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Input("instanceInitiatedShutdownBehavior")] public Input? InstanceInitiatedShutdownBehavior { get; set; } @@ -836,7 +845,7 @@ public InputList EphemeralBlockDevic public Input? State { get; set; } /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Input("instanceType")] public InputUnion? InstanceType { get; set; } @@ -860,7 +869,7 @@ public InputList Ipv6Addresses } /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Input("keyName")] public Input? KeyName { get; set; } @@ -896,17 +905,13 @@ public InputList NetworkInterfaces public Input? OutpostArn { get; set; } /// - /// Base-64 encoded encrypted password data for the instance. - /// Useful for getting the administrator password for instances running Microsoft Windows. - /// This attribute is only exported if `get_password_data` is true. - /// Note that this encrypted value will be stored in the state file, as with all exported attributes. - /// See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + /// Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. /// [Input("passwordData")] public Input? PasswordData { get; set; } /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Input("placementGroup")] public Input? PlacementGroup { get; set; } @@ -918,36 +923,31 @@ public InputList NetworkInterfaces public Input? PrimaryNetworkInterfaceId { get; set; } /// - /// The private DNS name assigned to the instance. Can only be - /// used inside the Amazon EC2, and only available if you've enabled DNS hostnames - /// for your VPC + /// The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. /// [Input("privateDns")] public Input? PrivateDns { get; set; } /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Input("privateIp")] public Input? PrivateIp { get; set; } /// - /// The public DNS name assigned to the instance. For EC2-VPC, this - /// is only available if you've enabled DNS hostnames for your VPC + /// The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. /// [Input("publicDns")] public Input? PublicDns { get; set; } /// - /// The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached. + /// The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached. /// [Input("publicIp")] public Input? PublicIp { get; set; } /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Input("rootBlockDevice")] public Input? RootBlockDevice { get; set; } @@ -978,14 +978,13 @@ public InputList SecurityGroups } /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Input("sourceDestCheck")] public Input? SourceDestCheck { get; set; } /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Input("subnetId")] public Input? SubnetId { get; set; } @@ -994,7 +993,7 @@ public InputList SecurityGroups private InputMap? _tags; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// public InputMap Tags { @@ -1003,13 +1002,13 @@ public InputMap Tags } /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Input("tenancy")] public InputUnion? Tenancy { get; set; } /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Input("userData")] public Input? UserData { get; set; } @@ -1024,7 +1023,7 @@ public InputMap Tags private InputMap? _volumeTags; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// public InputMap VolumeTags { diff --git a/sdk/dotnet/Ec2/Outputs/GetInstanceEbsBlockDeviceResult.cs b/sdk/dotnet/Ec2/Outputs/GetInstanceEbsBlockDeviceResult.cs index 8b9069ef1f2..fefd20429b9 100644 --- a/sdk/dotnet/Ec2/Outputs/GetInstanceEbsBlockDeviceResult.cs +++ b/sdk/dotnet/Ec2/Outputs/GetInstanceEbsBlockDeviceResult.cs @@ -35,6 +35,10 @@ public sealed class GetInstanceEbsBlockDeviceResult /// public readonly string SnapshotId; /// + /// A map of tags assigned to the Instance. + /// + public readonly ImmutableDictionary Tags; + /// /// The throughput of the volume, in MiB/s. /// public readonly int Throughput; @@ -62,6 +66,8 @@ private GetInstanceEbsBlockDeviceResult( string snapshotId, + ImmutableDictionary tags, + int throughput, string volumeId, @@ -76,6 +82,7 @@ private GetInstanceEbsBlockDeviceResult( Iops = iops; KmsKeyId = kmsKeyId; SnapshotId = snapshotId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/Outputs/GetInstanceRootBlockDeviceResult.cs b/sdk/dotnet/Ec2/Outputs/GetInstanceRootBlockDeviceResult.cs index a55f9cc3367..a19f798d657 100644 --- a/sdk/dotnet/Ec2/Outputs/GetInstanceRootBlockDeviceResult.cs +++ b/sdk/dotnet/Ec2/Outputs/GetInstanceRootBlockDeviceResult.cs @@ -31,6 +31,10 @@ public sealed class GetInstanceRootBlockDeviceResult public readonly int Iops; public readonly string KmsKeyId; /// + /// A map of tags assigned to the Instance. + /// + public readonly ImmutableDictionary Tags; + /// /// The throughput of the volume, in MiB/s. /// public readonly int Throughput; @@ -56,6 +60,8 @@ private GetInstanceRootBlockDeviceResult( string kmsKeyId, + ImmutableDictionary tags, + int throughput, string volumeId, @@ -69,6 +75,7 @@ private GetInstanceRootBlockDeviceResult( Encrypted = encrypted; Iops = iops; KmsKeyId = kmsKeyId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceCreditSpecification.cs b/sdk/dotnet/Ec2/Outputs/InstanceCreditSpecification.cs index 80e086b42f0..80fa1d5af07 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceCreditSpecification.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceCreditSpecification.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class InstanceCreditSpecification { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// public readonly string? CpuCredits; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceEbsBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/InstanceEbsBlockDevice.cs index a1b5efc7806..eed2a418c83 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceEbsBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceEbsBlockDevice.cs @@ -14,24 +14,19 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class InstanceEbsBlockDevice { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// public readonly bool? DeleteOnTermination; /// - /// The name of the device to mount. + /// Name of the device to mount. /// public readonly string DeviceName; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// public readonly bool? Encrypted; /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// public readonly int? Iops; /// @@ -39,20 +34,27 @@ public sealed class InstanceEbsBlockDevice /// public readonly string? KmsKeyId; /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// public readonly string? SnapshotId; /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// A map of tags to assign to the device. + /// + public readonly ImmutableDictionary? Tags; + /// + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// public readonly int? Throughput; + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// public readonly string? VolumeId; /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// public readonly int? VolumeSize; /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// public readonly string? VolumeType; @@ -70,6 +72,8 @@ private InstanceEbsBlockDevice( string? snapshotId, + ImmutableDictionary? tags, + int? throughput, string? volumeId, @@ -84,6 +88,7 @@ private InstanceEbsBlockDevice( Iops = iops; KmsKeyId = kmsKeyId; SnapshotId = snapshotId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceEnclaveOptions.cs b/sdk/dotnet/Ec2/Outputs/InstanceEnclaveOptions.cs index cada68a49dc..9fbea225edd 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceEnclaveOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceEnclaveOptions.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class InstanceEnclaveOptions { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// public readonly bool? Enabled; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceEphemeralBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/InstanceEphemeralBlockDevice.cs index 4675063ae12..fd0baef8a4e 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceEphemeralBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceEphemeralBlockDevice.cs @@ -22,9 +22,7 @@ public sealed class InstanceEphemeralBlockDevice /// public readonly bool? NoDevice; /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// public readonly string? VirtualName; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceMetadataOptions.cs b/sdk/dotnet/Ec2/Outputs/InstanceMetadataOptions.cs index 0f6e56823a6..204e71ee902 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceMetadataOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceMetadataOptions.cs @@ -14,15 +14,15 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class InstanceMetadataOptions { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// public readonly string? HttpEndpoint; /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// public readonly int? HttpPutResponseHopLimit; /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// public readonly string? HttpTokens; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceNetworkInterface.cs b/sdk/dotnet/Ec2/Outputs/InstanceNetworkInterface.cs index 1652f0890a5..d3a04fa87c4 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceNetworkInterface.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceNetworkInterface.cs @@ -18,11 +18,11 @@ public sealed class InstanceNetworkInterface /// public readonly bool? DeleteOnTermination; /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// public readonly int DeviceIndex; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// public readonly string NetworkInterfaceId; diff --git a/sdk/dotnet/Ec2/Outputs/InstanceRootBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/InstanceRootBlockDevice.cs index 350b174aa4b..739b3930935 100644 --- a/sdk/dotnet/Ec2/Outputs/InstanceRootBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/InstanceRootBlockDevice.cs @@ -14,21 +14,19 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class InstanceRootBlockDevice { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// public readonly bool? DeleteOnTermination; /// - /// The name of the device to mount. + /// Name of the device to mount. /// public readonly string? DeviceName; /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// public readonly bool? Encrypted; /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// public readonly int? Iops; /// @@ -36,16 +34,23 @@ public sealed class InstanceRootBlockDevice /// public readonly string? KmsKeyId; /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// A map of tags to assign to the device. + /// + public readonly ImmutableDictionary? Tags; + /// + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// public readonly int? Throughput; + /// + /// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + /// public readonly string? VolumeId; /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// public readonly int? VolumeSize; /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// public readonly string? VolumeType; @@ -61,6 +66,8 @@ private InstanceRootBlockDevice( string? kmsKeyId, + ImmutableDictionary? tags, + int? throughput, string? volumeId, @@ -74,6 +81,7 @@ private InstanceRootBlockDevice( Encrypted = encrypted; Iops = iops; KmsKeyId = kmsKeyId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestCreditSpecification.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestCreditSpecification.cs index eecc8de758f..89043ab71c4 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestCreditSpecification.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestCreditSpecification.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotInstanceRequestCreditSpecification { /// - /// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + /// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. /// public readonly string? CpuCredits; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEbsBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEbsBlockDevice.cs index 983c9f7437f..33450a64ef2 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEbsBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEbsBlockDevice.cs @@ -14,24 +14,19 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotInstanceRequestEbsBlockDevice { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// public readonly bool? DeleteOnTermination; /// - /// The name of the device to mount. + /// Name of the device to mount. /// public readonly string DeviceName; /// - /// Enables [EBS - /// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - /// on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + /// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. /// public readonly bool? Encrypted; /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - /// Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// public readonly int? Iops; /// @@ -39,20 +34,24 @@ public sealed class SpotInstanceRequestEbsBlockDevice /// public readonly string? KmsKeyId; /// - /// The Snapshot ID to mount. + /// Snapshot ID to mount. /// public readonly string? SnapshotId; /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// A map of tags to assign to the device. + /// + public readonly ImmutableDictionary? Tags; + /// + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// public readonly int? Throughput; public readonly string? VolumeId; /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// public readonly int? VolumeSize; /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// public readonly string? VolumeType; @@ -70,6 +69,8 @@ private SpotInstanceRequestEbsBlockDevice( string? snapshotId, + ImmutableDictionary? tags, + int? throughput, string? volumeId, @@ -84,6 +85,7 @@ private SpotInstanceRequestEbsBlockDevice( Iops = iops; KmsKeyId = kmsKeyId; SnapshotId = snapshotId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEnclaveOptions.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEnclaveOptions.cs index 517f44c973f..576291fee90 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEnclaveOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEnclaveOptions.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotInstanceRequestEnclaveOptions { /// - /// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + /// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. /// public readonly bool? Enabled; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEphemeralBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEphemeralBlockDevice.cs index 9522668647b..7d2c37ed9cd 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEphemeralBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestEphemeralBlockDevice.cs @@ -22,9 +22,7 @@ public sealed class SpotInstanceRequestEphemeralBlockDevice /// public readonly bool? NoDevice; /// - /// The [Instance Store Device - /// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - /// (e.g. `"ephemeral0"`). + /// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). /// public readonly string? VirtualName; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestMetadataOptions.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestMetadataOptions.cs index dbdc2457612..c9c9efcad31 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestMetadataOptions.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestMetadataOptions.cs @@ -14,15 +14,15 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotInstanceRequestMetadataOptions { /// - /// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + /// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. /// public readonly string? HttpEndpoint; /// - /// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + /// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. /// public readonly int? HttpPutResponseHopLimit; /// - /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + /// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. /// public readonly string? HttpTokens; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestNetworkInterface.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestNetworkInterface.cs index fdf8891f094..eeb1a577b74 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestNetworkInterface.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestNetworkInterface.cs @@ -18,11 +18,11 @@ public sealed class SpotInstanceRequestNetworkInterface /// public readonly bool? DeleteOnTermination; /// - /// The integer index of the network interface attachment. Limited by instance type. + /// Integer index of the network interface attachment. Limited by instance type. /// public readonly int DeviceIndex; /// - /// The ID of the network interface to attach. + /// ID of the network interface to attach. /// public readonly string NetworkInterfaceId; diff --git a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestRootBlockDevice.cs b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestRootBlockDevice.cs index 8a84ef043e7..c9b6b8f8e71 100644 --- a/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestRootBlockDevice.cs +++ b/sdk/dotnet/Ec2/Outputs/SpotInstanceRequestRootBlockDevice.cs @@ -14,21 +14,19 @@ namespace Pulumi.Aws.Ec2.Outputs public sealed class SpotInstanceRequestRootBlockDevice { /// - /// Whether the volume should be destroyed - /// on instance termination (Default: `true`). + /// Whether the volume should be destroyed on instance termination. Defaults to `true`. /// public readonly bool? DeleteOnTermination; /// - /// The name of the device to mount. + /// Name of the device to mount. /// public readonly string? DeviceName; /// - /// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + /// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. /// public readonly bool? Encrypted; /// - /// The amount of provisioned - /// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + /// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. /// public readonly int? Iops; /// @@ -36,16 +34,20 @@ public sealed class SpotInstanceRequestRootBlockDevice /// public readonly string? KmsKeyId; /// - /// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + /// A map of tags to assign to the device. + /// + public readonly ImmutableDictionary? Tags; + /// + /// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. /// public readonly int? Throughput; public readonly string? VolumeId; /// - /// The size of the volume in gibibytes (GiB). + /// Size of the volume in gibibytes (GiB). /// public readonly int? VolumeSize; /// - /// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + /// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. /// public readonly string? VolumeType; @@ -61,6 +63,8 @@ private SpotInstanceRequestRootBlockDevice( string? kmsKeyId, + ImmutableDictionary? tags, + int? throughput, string? volumeId, @@ -74,6 +78,7 @@ private SpotInstanceRequestRootBlockDevice( Encrypted = encrypted; Iops = iops; KmsKeyId = kmsKeyId; + Tags = tags; Throughput = throughput; VolumeId = volumeId; VolumeSize = volumeSize; diff --git a/sdk/dotnet/Ec2/SpotInstanceRequest.cs b/sdk/dotnet/Ec2/SpotInstanceRequest.cs index 093e428e95f..163b52ba6f0 100644 --- a/sdk/dotnet/Ec2/SpotInstanceRequest.cs +++ b/sdk/dotnet/Ec2/SpotInstanceRequest.cs @@ -63,7 +63,7 @@ namespace Pulumi.Aws.Ec2 public partial class SpotInstanceRequest : Pulumi.CustomResource { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Output("ami")] public Output Ami { get; private set; } = null!; @@ -72,13 +72,13 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output Arn { get; private set; } = null!; /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Output("associatePublicIpAddress")] public Output AssociatePublicIpAddress { get; private set; } = null!; /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Output("availabilityZone")] public Output AvailabilityZone { get; private set; } = null!; @@ -92,9 +92,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output BlockDurationMinutes { get; private set; } = null!; /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Output("cpuCoreCount")] public Output CpuCoreCount { get; private set; } = null!; @@ -112,25 +110,19 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output CreditSpecification { get; private set; } = null!; /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Output("disableApiTermination")] public Output DisableApiTermination { get; private set; } = null!; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// [Output("ebsBlockDevices")] public Output> EbsBlockDevices { get; private set; } = null!; /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Output("ebsOptimized")] public Output EbsOptimized { get; private set; } = null!; @@ -142,8 +134,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output EnclaveOptions { get; private set; } = null!; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// [Output("ephemeralBlockDevices")] public Output> EphemeralBlockDevices { get; private set; } = null!; @@ -161,23 +152,19 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output Hibernation { get; private set; } = null!; /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Output("hostId")] public Output HostId { get; private set; } = null!; /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Output("iamInstanceProfile")] public Output IamInstanceProfile { get; private set; } = null!; /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Output("instanceInitiatedShutdownBehavior")] public Output InstanceInitiatedShutdownBehavior { get; private set; } = null!; @@ -192,7 +179,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output InstanceState { get; private set; } = null!; /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Output("instanceType")] public Output InstanceType { get; private set; } = null!; @@ -210,7 +197,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output> Ipv6Addresses { get; private set; } = null!; /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Output("keyName")] public Output KeyName { get; private set; } = null!; @@ -247,7 +234,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output PasswordData { get; private set; } = null!; /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Output("placementGroup")] public Output PlacementGroup { get; private set; } = null!; @@ -264,8 +251,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output PrivateDns { get; private set; } = null!; /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Output("privateIp")] public Output PrivateIp { get; private set; } = null!; @@ -284,8 +270,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output PublicIp { get; private set; } = null!; /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Output("rootBlockDevice")] public Output RootBlockDevice { get; private set; } = null!; @@ -303,8 +288,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output> SecurityGroups { get; private set; } = null!; /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Output("sourceDestCheck")] public Output SourceDestCheck { get; private set; } = null!; @@ -344,25 +328,25 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output SpotType { get; private set; } = null!; /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Output("subnetId")] public Output SubnetId { get; private set; } = null!; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// [Output("tags")] public Output?> Tags { get; private set; } = null!; /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Output("tenancy")] public Output Tenancy { get; private set; } = null!; /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Output("userData")] public Output UserData { get; private set; } = null!; @@ -386,7 +370,7 @@ public partial class SpotInstanceRequest : Pulumi.CustomResource public Output ValidUntil { get; private set; } = null!; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// [Output("volumeTags")] public Output?> VolumeTags { get; private set; } = null!; @@ -452,19 +436,19 @@ public static SpotInstanceRequest Get(string name, Input id, SpotInstanc public sealed class SpotInstanceRequestArgs : Pulumi.ResourceArgs { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Input("ami", required: true)] public Input Ami { get; set; } = null!; /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Input("associatePublicIpAddress")] public Input? AssociatePublicIpAddress { get; set; } /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } @@ -478,9 +462,7 @@ public sealed class SpotInstanceRequestArgs : Pulumi.ResourceArgs public Input? BlockDurationMinutes { get; set; } /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Input("cpuCoreCount")] public Input? CpuCoreCount { get; set; } @@ -498,8 +480,7 @@ public sealed class SpotInstanceRequestArgs : Pulumi.ResourceArgs public Input? CreditSpecification { get; set; } /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Input("disableApiTermination")] public Input? DisableApiTermination { get; set; } @@ -508,8 +489,7 @@ public sealed class SpotInstanceRequestArgs : Pulumi.ResourceArgs private InputList? _ebsBlockDevices; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// public InputList EbsBlockDevices { @@ -518,11 +498,7 @@ public InputList EbsBlockDevices } /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Input("ebsOptimized")] public Input? EbsOptimized { get; set; } @@ -537,8 +513,7 @@ public InputList EbsBlockDevices private InputList? _ephemeralBlockDevices; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// public InputList EphemeralBlockDevices { @@ -559,23 +534,19 @@ public InputList EphemeralBl public Input? Hibernation { get; set; } /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Input("hostId")] public Input? HostId { get; set; } /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Input("iamInstanceProfile")] public Input? IamInstanceProfile { get; set; } /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Input("instanceInitiatedShutdownBehavior")] public Input? InstanceInitiatedShutdownBehavior { get; set; } @@ -587,7 +558,7 @@ public InputList EphemeralBl public Input? InstanceInterruptionBehaviour { get; set; } /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Input("instanceType", required: true)] public Input InstanceType { get; set; } = null!; @@ -611,7 +582,7 @@ public InputList Ipv6Addresses } /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Input("keyName")] public Input? KeyName { get; set; } @@ -648,21 +619,19 @@ public InputList NetworkInterfac } /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Input("placementGroup")] public Input? PlacementGroup { get; set; } /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Input("privateIp")] public Input? PrivateIp { get; set; } /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Input("rootBlockDevice")] public Input? RootBlockDevice { get; set; } @@ -692,8 +661,7 @@ public InputList SecurityGroups } /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Input("sourceDestCheck")] public Input? SourceDestCheck { get; set; } @@ -712,7 +680,7 @@ public InputList SecurityGroups public Input? SpotType { get; set; } /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Input("subnetId")] public Input? SubnetId { get; set; } @@ -721,7 +689,7 @@ public InputList SecurityGroups private InputMap? _tags; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// public InputMap Tags { @@ -730,13 +698,13 @@ public InputMap Tags } /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Input("tenancy")] public Input? Tenancy { get; set; } /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Input("userData")] public Input? UserData { get; set; } @@ -763,7 +731,7 @@ public InputMap Tags private InputMap? _volumeTags; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// public InputMap VolumeTags { @@ -799,7 +767,7 @@ public SpotInstanceRequestArgs() public sealed class SpotInstanceRequestState : Pulumi.ResourceArgs { /// - /// The AMI to use for the instance. + /// AMI to use for the instance. /// [Input("ami")] public Input? Ami { get; set; } @@ -808,13 +776,13 @@ public sealed class SpotInstanceRequestState : Pulumi.ResourceArgs public Input? Arn { get; set; } /// - /// Associate a public ip address with an instance in a VPC. Boolean value. + /// Whether to associate a public IP address with an instance in a VPC. /// [Input("associatePublicIpAddress")] public Input? AssociatePublicIpAddress { get; set; } /// - /// The AZ to start the instance in. + /// AZ to start the instance in. /// [Input("availabilityZone")] public Input? AvailabilityZone { get; set; } @@ -828,9 +796,7 @@ public sealed class SpotInstanceRequestState : Pulumi.ResourceArgs public Input? BlockDurationMinutes { get; set; } /// - /// Sets the number of CPU cores for an instance. This option is - /// only supported on creation of instance type that support CPU Options - /// [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + /// Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. /// [Input("cpuCoreCount")] public Input? CpuCoreCount { get; set; } @@ -848,8 +814,7 @@ public sealed class SpotInstanceRequestState : Pulumi.ResourceArgs public Input? CreditSpecification { get; set; } /// - /// If true, enables [EC2 Instance - /// Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + /// If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). /// [Input("disableApiTermination")] public Input? DisableApiTermination { get; set; } @@ -858,8 +823,7 @@ public sealed class SpotInstanceRequestState : Pulumi.ResourceArgs private InputList? _ebsBlockDevices; /// - /// Additional EBS block devices to attach to the - /// instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + /// Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. /// public InputList EbsBlockDevices { @@ -868,11 +832,7 @@ public InputList EbsBlockDevice } /// - /// If true, the launched EC2 instance will be EBS-optimized. - /// Note that if this is not set on an instance type that is optimized by default then - /// this will show as disabled but if the instance type is optimized by default then - /// there is no need to set this and there is no effect to disabling it. - /// See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + /// If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. /// [Input("ebsOptimized")] public Input? EbsOptimized { get; set; } @@ -887,8 +847,7 @@ public InputList EbsBlockDevice private InputList? _ephemeralBlockDevices; /// - /// Customize Ephemeral (also known as - /// "Instance Store") volumes on the instance. See Block Devices below for details. + /// Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. /// public InputList EphemeralBlockDevices { @@ -909,23 +868,19 @@ public InputList Ephemera public Input? Hibernation { get; set; } /// - /// The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + /// ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. /// [Input("hostId")] public Input? HostId { get; set; } /// - /// The IAM Instance Profile to - /// launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + /// IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. /// [Input("iamInstanceProfile")] public Input? IamInstanceProfile { get; set; } /// - /// Shutdown behavior for the - /// instance. Amazon defaults this to `stop` for EBS-backed instances and - /// `terminate` for instance-store instances. Cannot be set on instance-store - /// instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + /// Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. /// [Input("instanceInitiatedShutdownBehavior")] public Input? InstanceInitiatedShutdownBehavior { get; set; } @@ -940,7 +895,7 @@ public InputList Ephemera public Input? InstanceState { get; set; } /// - /// The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + /// Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. /// [Input("instanceType")] public Input? InstanceType { get; set; } @@ -964,7 +919,7 @@ public InputList Ipv6Addresses } /// - /// The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + /// Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. /// [Input("keyName")] public Input? KeyName { get; set; } @@ -1007,7 +962,7 @@ public InputList NetworkInter public Input? PasswordData { get; set; } /// - /// The Placement Group to start the instance in. + /// Placement Group to start the instance in. /// [Input("placementGroup")] public Input? PlacementGroup { get; set; } @@ -1024,8 +979,7 @@ public InputList NetworkInter public Input? PrivateDns { get; set; } /// - /// Private IP address to associate with the - /// instance in a VPC. + /// Private IP address to associate with the instance in a VPC. /// [Input("privateIp")] public Input? PrivateIp { get; set; } @@ -1044,8 +998,7 @@ public InputList NetworkInter public Input? PublicIp { get; set; } /// - /// Customize details about the root block - /// device of the instance. See Block Devices below for details. + /// Customize details about the root block device of the instance. See Block Devices below for details. /// [Input("rootBlockDevice")] public Input? RootBlockDevice { get; set; } @@ -1075,8 +1028,7 @@ public InputList SecurityGroups } /// - /// Controls if traffic is routed to the instance when - /// the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + /// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. /// [Input("sourceDestCheck")] public Input? SourceDestCheck { get; set; } @@ -1116,7 +1068,7 @@ public InputList SecurityGroups public Input? SpotType { get; set; } /// - /// The VPC Subnet ID to launch in. + /// VPC Subnet ID to launch in. /// [Input("subnetId")] public Input? SubnetId { get; set; } @@ -1125,7 +1077,7 @@ public InputList SecurityGroups private InputMap? _tags; /// - /// A map of tags to assign to the resource. + /// A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. /// public InputMap Tags { @@ -1134,13 +1086,13 @@ public InputMap Tags } /// - /// The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + /// Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. /// [Input("tenancy")] public Input? Tenancy { get; set; } /// - /// The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + /// User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. /// [Input("userData")] public Input? UserData { get; set; } @@ -1167,7 +1119,7 @@ public InputMap Tags private InputMap? _volumeTags; /// - /// A map of tags to assign to the devices created by the instance at launch time. + /// A map of tags to assign, at instance-creation time, to root and EBS volumes. /// public InputMap VolumeTags { diff --git a/sdk/dotnet/ElastiCache/Cluster.cs b/sdk/dotnet/ElastiCache/Cluster.cs index 59bd87f6a62..6097e37590d 100644 --- a/sdk/dotnet/ElastiCache/Cluster.cs +++ b/sdk/dotnet/ElastiCache/Cluster.cs @@ -164,6 +164,12 @@ public partial class Cluster : Pulumi.CustomResource [Output("engineVersion")] public Output EngineVersion { get; private set; } = null!; + /// + /// The name of your final cluster snapshot. If omitted, no final snapshot will be made. + /// + [Output("finalSnapshotIdentifier")] + public Output FinalSnapshotIdentifier { get; private set; } = null!; + /// /// Specifies the weekly time range for when maintenance /// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -369,6 +375,12 @@ public sealed class ClusterArgs : Pulumi.ResourceArgs [Input("engineVersion")] public Input? EngineVersion { get; set; } + /// + /// The name of your final cluster snapshot. If omitted, no final snapshot will be made. + /// + [Input("finalSnapshotIdentifier")] + public Input? FinalSnapshotIdentifier { get; set; } + /// /// Specifies the weekly time range for when maintenance /// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -593,6 +605,12 @@ public InputList CacheNodes [Input("engineVersion")] public Input? EngineVersion { get; set; } + /// + /// The name of your final cluster snapshot. If omitted, no final snapshot will be made. + /// + [Input("finalSnapshotIdentifier")] + public Input? FinalSnapshotIdentifier { get; set; } + /// /// Specifies the weekly time range for when maintenance /// on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). diff --git a/sdk/dotnet/ElastiCache/ReplicationGroup.cs b/sdk/dotnet/ElastiCache/ReplicationGroup.cs index 5b5f7916369..a17f9bb40fe 100644 --- a/sdk/dotnet/ElastiCache/ReplicationGroup.cs +++ b/sdk/dotnet/ElastiCache/ReplicationGroup.cs @@ -187,7 +187,7 @@ public partial class ReplicationGroup : Pulumi.CustomResource public Output ClusterEnabled { get; private set; } = null!; /// - /// Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + /// Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. /// [Output("clusterMode")] public Output ClusterMode { get; private set; } = null!; @@ -210,6 +210,12 @@ public partial class ReplicationGroup : Pulumi.CustomResource [Output("engineVersion")] public Output EngineVersion { get; private set; } = null!; + /// + /// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + /// + [Output("finalSnapshotIdentifier")] + public Output FinalSnapshotIdentifier { get; private set; } = null!; + /// /// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. /// @@ -436,7 +442,7 @@ public InputList AvailabilityZones } /// - /// Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + /// Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. /// [Input("clusterMode")] public Input? ClusterMode { get; set; } @@ -453,6 +459,12 @@ public InputList AvailabilityZones [Input("engineVersion")] public Input? EngineVersion { get; set; } + /// + /// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + /// + [Input("finalSnapshotIdentifier")] + public Input? FinalSnapshotIdentifier { get; set; } + /// /// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. /// @@ -652,7 +664,7 @@ public InputList AvailabilityZones public Input? ClusterEnabled { get; set; } /// - /// Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + /// Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. /// [Input("clusterMode")] public Input? ClusterMode { get; set; } @@ -675,6 +687,12 @@ public InputList AvailabilityZones [Input("engineVersion")] public Input? EngineVersion { get; set; } + /// + /// The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + /// + [Input("finalSnapshotIdentifier")] + public Input? FinalSnapshotIdentifier { get; set; } + /// /// The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. /// diff --git a/sdk/dotnet/Fms/Inputs/PolicyExcludeMapArgs.cs b/sdk/dotnet/Fms/Inputs/PolicyExcludeMapArgs.cs new file mode 100644 index 00000000000..869edb12a9d --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicyExcludeMapArgs.cs @@ -0,0 +1,39 @@ +// *** 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.Fms.Inputs +{ + + public sealed class PolicyExcludeMapArgs : Pulumi.ResourceArgs + { + [Input("accounts")] + private InputList? _accounts; + + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public InputList Accounts + { + get => _accounts ?? (_accounts = new InputList()); + set => _accounts = value; + } + + [Input("orgunits")] + private InputList? _orgunits; + public InputList Orgunits + { + get => _orgunits ?? (_orgunits = new InputList()); + set => _orgunits = value; + } + + public PolicyExcludeMapArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Inputs/PolicyExcludeMapGetArgs.cs b/sdk/dotnet/Fms/Inputs/PolicyExcludeMapGetArgs.cs new file mode 100644 index 00000000000..15eed39f4d5 --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicyExcludeMapGetArgs.cs @@ -0,0 +1,39 @@ +// *** 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.Fms.Inputs +{ + + public sealed class PolicyExcludeMapGetArgs : Pulumi.ResourceArgs + { + [Input("accounts")] + private InputList? _accounts; + + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public InputList Accounts + { + get => _accounts ?? (_accounts = new InputList()); + set => _accounts = value; + } + + [Input("orgunits")] + private InputList? _orgunits; + public InputList Orgunits + { + get => _orgunits ?? (_orgunits = new InputList()); + set => _orgunits = value; + } + + public PolicyExcludeMapGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Inputs/PolicyIncludeMapArgs.cs b/sdk/dotnet/Fms/Inputs/PolicyIncludeMapArgs.cs new file mode 100644 index 00000000000..7e7cbb5f90d --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicyIncludeMapArgs.cs @@ -0,0 +1,39 @@ +// *** 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.Fms.Inputs +{ + + public sealed class PolicyIncludeMapArgs : Pulumi.ResourceArgs + { + [Input("accounts")] + private InputList? _accounts; + + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public InputList Accounts + { + get => _accounts ?? (_accounts = new InputList()); + set => _accounts = value; + } + + [Input("orgunits")] + private InputList? _orgunits; + public InputList Orgunits + { + get => _orgunits ?? (_orgunits = new InputList()); + set => _orgunits = value; + } + + public PolicyIncludeMapArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Inputs/PolicyIncludeMapGetArgs.cs b/sdk/dotnet/Fms/Inputs/PolicyIncludeMapGetArgs.cs new file mode 100644 index 00000000000..d7cb38bfbe9 --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicyIncludeMapGetArgs.cs @@ -0,0 +1,39 @@ +// *** 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.Fms.Inputs +{ + + public sealed class PolicyIncludeMapGetArgs : Pulumi.ResourceArgs + { + [Input("accounts")] + private InputList? _accounts; + + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public InputList Accounts + { + get => _accounts ?? (_accounts = new InputList()); + set => _accounts = value; + } + + [Input("orgunits")] + private InputList? _orgunits; + public InputList Orgunits + { + get => _orgunits ?? (_orgunits = new InputList()); + set => _orgunits = value; + } + + public PolicyIncludeMapGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataArgs.cs b/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataArgs.cs new file mode 100644 index 00000000000..b2ead9cd20f --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataArgs.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.Fms.Inputs +{ + + public sealed class PolicySecurityServicePolicyDataArgs : Pulumi.ResourceArgs + { + /// + /// Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + /// + [Input("managedServiceData")] + public Input? ManagedServiceData { get; set; } + + /// + /// valid values are `BLOCK` or `COUNT`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public PolicySecurityServicePolicyDataArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataGetArgs.cs b/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataGetArgs.cs new file mode 100644 index 00000000000..a37b9980e28 --- /dev/null +++ b/sdk/dotnet/Fms/Inputs/PolicySecurityServicePolicyDataGetArgs.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.Fms.Inputs +{ + + public sealed class PolicySecurityServicePolicyDataGetArgs : Pulumi.ResourceArgs + { + /// + /// Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + /// + [Input("managedServiceData")] + public Input? ManagedServiceData { get; set; } + + /// + /// valid values are `BLOCK` or `COUNT`. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public PolicySecurityServicePolicyDataGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Fms/Outputs/PolicyExcludeMap.cs b/sdk/dotnet/Fms/Outputs/PolicyExcludeMap.cs new file mode 100644 index 00000000000..dbe039b67cf --- /dev/null +++ b/sdk/dotnet/Fms/Outputs/PolicyExcludeMap.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.Fms.Outputs +{ + + [OutputType] + public sealed class PolicyExcludeMap + { + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public readonly ImmutableArray Accounts; + public readonly ImmutableArray Orgunits; + + [OutputConstructor] + private PolicyExcludeMap( + ImmutableArray accounts, + + ImmutableArray orgunits) + { + Accounts = accounts; + Orgunits = orgunits; + } + } +} diff --git a/sdk/dotnet/Fms/Outputs/PolicyIncludeMap.cs b/sdk/dotnet/Fms/Outputs/PolicyIncludeMap.cs new file mode 100644 index 00000000000..fe9e281850e --- /dev/null +++ b/sdk/dotnet/Fms/Outputs/PolicyIncludeMap.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.Fms.Outputs +{ + + [OutputType] + public sealed class PolicyIncludeMap + { + /// + /// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + /// + public readonly ImmutableArray Accounts; + public readonly ImmutableArray Orgunits; + + [OutputConstructor] + private PolicyIncludeMap( + ImmutableArray accounts, + + ImmutableArray orgunits) + { + Accounts = accounts; + Orgunits = orgunits; + } + } +} diff --git a/sdk/dotnet/Fms/Outputs/PolicySecurityServicePolicyData.cs b/sdk/dotnet/Fms/Outputs/PolicySecurityServicePolicyData.cs new file mode 100644 index 00000000000..ef3bd2bee80 --- /dev/null +++ b/sdk/dotnet/Fms/Outputs/PolicySecurityServicePolicyData.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.Fms.Outputs +{ + + [OutputType] + public sealed class PolicySecurityServicePolicyData + { + /// + /// Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + /// + public readonly string? ManagedServiceData; + /// + /// valid values are `BLOCK` or `COUNT`. + /// + public readonly string Type; + + [OutputConstructor] + private PolicySecurityServicePolicyData( + string? managedServiceData, + + string type) + { + ManagedServiceData = managedServiceData; + Type = type; + } + } +} diff --git a/sdk/dotnet/Fms/Policy.cs b/sdk/dotnet/Fms/Policy.cs new file mode 100644 index 00000000000..1e62ab903cf --- /dev/null +++ b/sdk/dotnet/Fms/Policy.cs @@ -0,0 +1,336 @@ +// *** 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.Fms +{ + /// + /// Provides a resource to create an AWS Firewall Manager policy. You need to be using AWS organizations and have enabled the Firewall Manager administrator account. + /// + /// ## Example Usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var test = new Aws.WafRegional.RuleGroup("test", new Aws.WafRegional.RuleGroupArgs + /// { + /// MetricName = "WAFRuleGroupExample", + /// }); + /// var example = new Aws.Fms.Policy("example", new Aws.Fms.PolicyArgs + /// { + /// ExcludeResourceTags = false, + /// RemediationEnabled = false, + /// ResourceTypeLists = + /// { + /// "AWS::ElasticLoadBalancingV2::LoadBalancer", + /// }, + /// SecurityServicePolicyData = new Aws.Fms.Inputs.PolicySecurityServicePolicyDataArgs + /// { + /// ManagedServiceData = test.Id.Apply(id => @$" {{ + /// ""type"": ""WAF"", + /// ""ruleGroups"": + /// [{{ + /// ""id"":""{id}"", + /// ""overrideAction"" : {{ + /// ""type"": ""COUNT"" + /// }} + /// }}], + /// ""defaultAction"": + /// {{ + /// ""type"": ""BLOCK"" + /// }}, + /// ""overrideCustomerWebACLAssociation"": false + /// }} + /// + /// "), + /// Type = "WAF", + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// Firewall Manager policies can be imported using the policy ID, e.g. + /// + /// ```sh + /// $ pulumi import aws:fms/policy:Policy example 5be49585-a7e3-4c49-dde1-a179fe4a619a + /// ``` + /// + [AwsResourceType("aws:fms/policy:Policy")] + public partial class Policy : Pulumi.CustomResource + { + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + /// + [Output("deleteAllPolicyResources")] + public Output DeleteAllPolicyResources { get; private set; } = null!; + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + /// + [Output("excludeMap")] + public Output ExcludeMap { get; private set; } = null!; + + /// + /// A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + /// + [Output("excludeResourceTags")] + public Output ExcludeResourceTags { get; private set; } = null!; + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + /// + [Output("includeMap")] + public Output IncludeMap { get; private set; } = null!; + + /// + /// The friendly name of the AWS Firewall Manager Policy. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// A unique identifier for each update to the policy. + /// + [Output("policyUpdateToken")] + public Output PolicyUpdateToken { get; private set; } = null!; + + /// + /// A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + /// + [Output("remediationEnabled")] + public Output RemediationEnabled { get; private set; } = null!; + + /// + /// A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + /// + [Output("resourceTags")] + public Output?> ResourceTags { get; private set; } = null!; + + /// + /// A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + /// + [Output("resourceTypeLists")] + public Output> ResourceTypeLists { get; private set; } = null!; + + /// + /// The objects to include in Security Service Policy Data. Documented below. + /// + [Output("securityServicePolicyData")] + public Output SecurityServicePolicyData { get; private set; } = null!; + + + /// + /// Create a Policy 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 Policy(string name, PolicyArgs args, CustomResourceOptions? options = null) + : base("aws:fms/policy:Policy", name, args ?? new PolicyArgs(), MakeResourceOptions(options, "")) + { + } + + private Policy(string name, Input id, PolicyState? state = null, CustomResourceOptions? options = null) + : base("aws:fms/policy:Policy", 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 Policy 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 Policy Get(string name, Input id, PolicyState? state = null, CustomResourceOptions? options = null) + { + return new Policy(name, id, state, options); + } + } + + public sealed class PolicyArgs : Pulumi.ResourceArgs + { + /// + /// If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + /// + [Input("deleteAllPolicyResources")] + public Input? DeleteAllPolicyResources { get; set; } + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + /// + [Input("excludeMap")] + public Input? ExcludeMap { get; set; } + + /// + /// A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + /// + [Input("excludeResourceTags", required: true)] + public Input ExcludeResourceTags { get; set; } = null!; + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + /// + [Input("includeMap")] + public Input? IncludeMap { get; set; } + + /// + /// The friendly name of the AWS Firewall Manager Policy. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + /// + [Input("remediationEnabled")] + public Input? RemediationEnabled { get; set; } + + [Input("resourceTags")] + private InputMap? _resourceTags; + + /// + /// A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + /// + public InputMap ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputMap()); + set => _resourceTags = value; + } + + [Input("resourceTypeLists", required: true)] + private InputList? _resourceTypeLists; + + /// + /// A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + /// + public InputList ResourceTypeLists + { + get => _resourceTypeLists ?? (_resourceTypeLists = new InputList()); + set => _resourceTypeLists = value; + } + + /// + /// The objects to include in Security Service Policy Data. Documented below. + /// + [Input("securityServicePolicyData", required: true)] + public Input SecurityServicePolicyData { get; set; } = null!; + + public PolicyArgs() + { + } + } + + public sealed class PolicyState : Pulumi.ResourceArgs + { + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + /// + [Input("deleteAllPolicyResources")] + public Input? DeleteAllPolicyResources { get; set; } + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + /// + [Input("excludeMap")] + public Input? ExcludeMap { get; set; } + + /// + /// A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + /// + [Input("excludeResourceTags")] + public Input? ExcludeResourceTags { get; set; } + + /// + /// A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + /// + [Input("includeMap")] + public Input? IncludeMap { get; set; } + + /// + /// The friendly name of the AWS Firewall Manager Policy. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// A unique identifier for each update to the policy. + /// + [Input("policyUpdateToken")] + public Input? PolicyUpdateToken { get; set; } + + /// + /// A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + /// + [Input("remediationEnabled")] + public Input? RemediationEnabled { get; set; } + + [Input("resourceTags")] + private InputMap? _resourceTags; + + /// + /// A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + /// + public InputMap ResourceTags + { + get => _resourceTags ?? (_resourceTags = new InputMap()); + set => _resourceTags = value; + } + + [Input("resourceTypeLists")] + private InputList? _resourceTypeLists; + + /// + /// A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + /// + public InputList ResourceTypeLists + { + get => _resourceTypeLists ?? (_resourceTypeLists = new InputList()); + set => _resourceTypeLists = value; + } + + /// + /// The objects to include in Security Service Policy Data. Documented below. + /// + [Input("securityServicePolicyData")] + public Input? SecurityServicePolicyData { get; set; } + + public PolicyState() + { + } + } +} diff --git a/sdk/dotnet/GetPartition.cs b/sdk/dotnet/GetPartition.cs index 0b2016ab9ca..1f5fd55b1e7 100644 --- a/sdk/dotnet/GetPartition.cs +++ b/sdk/dotnet/GetPartition.cs @@ -72,6 +72,10 @@ public sealed class GetPartitionResult /// Identifier of the current partition (e.g. `aws` in AWS Commercial, `aws-cn` in AWS China). /// public readonly string Partition; + /// + /// Prefix of service names (e.g. `com.amazonaws` in AWS Commercial, `cn.com.amazonaws` in AWS China). + /// + public readonly string ReverseDnsPrefix; [OutputConstructor] private GetPartitionResult( @@ -79,11 +83,14 @@ private GetPartitionResult( string id, - string partition) + string partition, + + string reverseDnsPrefix) { DnsSuffix = dnsSuffix; Id = id; Partition = partition; + ReverseDnsPrefix = reverseDnsPrefix; } } } diff --git a/sdk/dotnet/IdentityStore/GetGroup.cs b/sdk/dotnet/IdentityStore/GetGroup.cs new file mode 100644 index 00000000000..64642f1a183 --- /dev/null +++ b/sdk/dotnet/IdentityStore/GetGroup.cs @@ -0,0 +1,88 @@ +// *** 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.IdentityStore +{ + public static class GetGroup + { + /// + /// Use this data source to get an Identity Store Group. + /// + public static Task InvokeAsync(GetGroupArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("aws:identitystore/getGroup:getGroup", args ?? new GetGroupArgs(), options.WithVersion()); + } + + + public sealed class GetGroupArgs : Pulumi.InvokeArgs + { + [Input("filters", required: true)] + private List? _filters; + + /// + /// Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + /// + public List Filters + { + get => _filters ?? (_filters = new List()); + set => _filters = value; + } + + /// + /// The identifier for a group in the Identity Store. + /// + [Input("groupId")] + public string? GroupId { get; set; } + + /// + /// The Identity Store ID associated with the Single Sign-On Instance. + /// + [Input("identityStoreId", required: true)] + public string IdentityStoreId { get; set; } = null!; + + public GetGroupArgs() + { + } + } + + + [OutputType] + public sealed class GetGroupResult + { + /// + /// The group's display name value. + /// + public readonly string DisplayName; + public readonly ImmutableArray Filters; + public readonly string GroupId; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string IdentityStoreId; + + [OutputConstructor] + private GetGroupResult( + string displayName, + + ImmutableArray filters, + + string groupId, + + string id, + + string identityStoreId) + { + DisplayName = displayName; + Filters = filters; + GroupId = groupId; + Id = id; + IdentityStoreId = identityStoreId; + } + } +} diff --git a/sdk/dotnet/IdentityStore/GetUser.cs b/sdk/dotnet/IdentityStore/GetUser.cs new file mode 100644 index 00000000000..1cf0b0556c6 --- /dev/null +++ b/sdk/dotnet/IdentityStore/GetUser.cs @@ -0,0 +1,88 @@ +// *** 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.IdentityStore +{ + public static class GetUser + { + /// + /// Use this data source to get an Identity Store User. + /// + public static Task InvokeAsync(GetUserArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("aws:identitystore/getUser:getUser", args ?? new GetUserArgs(), options.WithVersion()); + } + + + public sealed class GetUserArgs : Pulumi.InvokeArgs + { + [Input("filters", required: true)] + private List? _filters; + + /// + /// Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + /// + public List Filters + { + get => _filters ?? (_filters = new List()); + set => _filters = value; + } + + /// + /// The Identity Store ID associated with the Single Sign-On Instance. + /// + [Input("identityStoreId", required: true)] + public string IdentityStoreId { get; set; } = null!; + + /// + /// The identifier for a user in the Identity Store. + /// + [Input("userId")] + public string? UserId { get; set; } + + public GetUserArgs() + { + } + } + + + [OutputType] + public sealed class GetUserResult + { + public readonly ImmutableArray Filters; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string IdentityStoreId; + public readonly string UserId; + /// + /// The user's user name value. + /// + public readonly string UserName; + + [OutputConstructor] + private GetUserResult( + ImmutableArray filters, + + string id, + + string identityStoreId, + + string userId, + + string userName) + { + Filters = filters; + Id = id; + IdentityStoreId = identityStoreId; + UserId = userId; + UserName = userName; + } + } +} diff --git a/sdk/dotnet/IdentityStore/Inputs/GetGroupFilterArgs.cs b/sdk/dotnet/IdentityStore/Inputs/GetGroupFilterArgs.cs new file mode 100644 index 00000000000..a8f32258cb2 --- /dev/null +++ b/sdk/dotnet/IdentityStore/Inputs/GetGroupFilterArgs.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.IdentityStore.Inputs +{ + + public sealed class GetGroupFilterArgs : Pulumi.InvokeArgs + { + /// + /// The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + /// + [Input("attributePath", required: true)] + public string AttributePath { get; set; } = null!; + + /// + /// The value for an attribute. + /// + [Input("attributeValue", required: true)] + public string AttributeValue { get; set; } = null!; + + public GetGroupFilterArgs() + { + } + } +} diff --git a/sdk/dotnet/IdentityStore/Inputs/GetUserFilterArgs.cs b/sdk/dotnet/IdentityStore/Inputs/GetUserFilterArgs.cs new file mode 100644 index 00000000000..6b20cdab02a --- /dev/null +++ b/sdk/dotnet/IdentityStore/Inputs/GetUserFilterArgs.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.IdentityStore.Inputs +{ + + public sealed class GetUserFilterArgs : Pulumi.InvokeArgs + { + /// + /// The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + /// + [Input("attributePath", required: true)] + public string AttributePath { get; set; } = null!; + + /// + /// The value for an attribute. + /// + [Input("attributeValue", required: true)] + public string AttributeValue { get; set; } = null!; + + public GetUserFilterArgs() + { + } + } +} diff --git a/sdk/dotnet/IdentityStore/Outputs/GetGroupFilterResult.cs b/sdk/dotnet/IdentityStore/Outputs/GetGroupFilterResult.cs new file mode 100644 index 00000000000..f98a3c645ec --- /dev/null +++ b/sdk/dotnet/IdentityStore/Outputs/GetGroupFilterResult.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.IdentityStore.Outputs +{ + + [OutputType] + public sealed class GetGroupFilterResult + { + /// + /// The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + /// + public readonly string AttributePath; + /// + /// The value for an attribute. + /// + public readonly string AttributeValue; + + [OutputConstructor] + private GetGroupFilterResult( + string attributePath, + + string attributeValue) + { + AttributePath = attributePath; + AttributeValue = attributeValue; + } + } +} diff --git a/sdk/dotnet/IdentityStore/Outputs/GetUserFilterResult.cs b/sdk/dotnet/IdentityStore/Outputs/GetUserFilterResult.cs new file mode 100644 index 00000000000..2705f5cc198 --- /dev/null +++ b/sdk/dotnet/IdentityStore/Outputs/GetUserFilterResult.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.IdentityStore.Outputs +{ + + [OutputType] + public sealed class GetUserFilterResult + { + /// + /// The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + /// + public readonly string AttributePath; + /// + /// The value for an attribute. + /// + public readonly string AttributeValue; + + [OutputConstructor] + private GetUserFilterResult( + string attributePath, + + string attributeValue) + { + AttributePath = attributePath; + AttributeValue = attributeValue; + } + } +} diff --git a/sdk/dotnet/IdentityStore/README.md b/sdk/dotnet/IdentityStore/README.md new file mode 100644 index 00000000000..9d868f18f20 --- /dev/null +++ b/sdk/dotnet/IdentityStore/README.md @@ -0,0 +1 @@ +A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources. diff --git a/sdk/dotnet/Rds/Instance.cs b/sdk/dotnet/Rds/Instance.cs index 08a7873f2bf..e7a10d7e29f 100644 --- a/sdk/dotnet/Rds/Instance.cs +++ b/sdk/dotnet/Rds/Instance.cs @@ -253,7 +253,7 @@ public partial class Instance : Pulumi.CustomResource /// /// The name of your final DB snapshot /// when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - /// set to `false`. + /// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. /// [Output("finalSnapshotIdentifier")] public Output FinalSnapshotIdentifier { get; private set; } = null!; @@ -724,7 +724,7 @@ public InputList EnabledCloudwatchLogsExports /// /// The name of your final DB snapshot /// when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - /// set to `false`. + /// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. /// [Input("finalSnapshotIdentifier")] public Input? FinalSnapshotIdentifier { get; set; } @@ -1164,7 +1164,7 @@ public InputList EnabledCloudwatchLogsExports /// /// The name of your final DB snapshot /// when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - /// set to `false`. + /// set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. /// [Input("finalSnapshotIdentifier")] public Input? FinalSnapshotIdentifier { get; set; } diff --git a/sdk/dotnet/Route53/ResolverDnsSecConfig.cs b/sdk/dotnet/Route53/ResolverDnsSecConfig.cs new file mode 100644 index 00000000000..e74a0a45405 --- /dev/null +++ b/sdk/dotnet/Route53/ResolverDnsSecConfig.cs @@ -0,0 +1,162 @@ +// *** 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.Route53 +{ + /// + /// Provides a Route 53 Resolver DNSSEC config resource. + /// + /// ## Example Usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var exampleVpc = new Aws.Ec2.Vpc("exampleVpc", new Aws.Ec2.VpcArgs + /// { + /// CidrBlock = "10.0.0.0/16", + /// EnableDnsSupport = true, + /// EnableDnsHostnames = true, + /// }); + /// var exampleResolverDnsSecConfig = new Aws.Route53.ResolverDnsSecConfig("exampleResolverDnsSecConfig", new Aws.Route53.ResolverDnsSecConfigArgs + /// { + /// ResourceId = exampleVpc.Id, + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// Route 53 Resolver DNSSEC configs can be imported using the Route 53 Resolver DNSSEC config ID, e.g. + /// + /// ```sh + /// $ pulumi import aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig example rdsc-be1866ecc1683e95 + /// ``` + /// + [AwsResourceType("aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig")] + public partial class ResolverDnsSecConfig : Pulumi.CustomResource + { + /// + /// The ARN for a configuration for DNSSEC validation. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + /// + [Output("ownerId")] + public Output OwnerId { get; private set; } = null!; + + /// + /// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + /// + [Output("resourceId")] + public Output ResourceId { get; private set; } = null!; + + /// + /// The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + /// + [Output("validationStatus")] + public Output ValidationStatus { get; private set; } = null!; + + + /// + /// Create a ResolverDnsSecConfig 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 ResolverDnsSecConfig(string name, ResolverDnsSecConfigArgs args, CustomResourceOptions? options = null) + : base("aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig", name, args ?? new ResolverDnsSecConfigArgs(), MakeResourceOptions(options, "")) + { + } + + private ResolverDnsSecConfig(string name, Input id, ResolverDnsSecConfigState? state = null, CustomResourceOptions? options = null) + : base("aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig", 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 ResolverDnsSecConfig 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 ResolverDnsSecConfig Get(string name, Input id, ResolverDnsSecConfigState? state = null, CustomResourceOptions? options = null) + { + return new ResolverDnsSecConfig(name, id, state, options); + } + } + + public sealed class ResolverDnsSecConfigArgs : Pulumi.ResourceArgs + { + /// + /// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + /// + [Input("resourceId", required: true)] + public Input ResourceId { get; set; } = null!; + + public ResolverDnsSecConfigArgs() + { + } + } + + public sealed class ResolverDnsSecConfigState : Pulumi.ResourceArgs + { + /// + /// The ARN for a configuration for DNSSEC validation. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + /// + [Input("ownerId")] + public Input? OwnerId { get; set; } + + /// + /// The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + /// + [Input("resourceId")] + public Input? ResourceId { get; set; } + + /// + /// The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + /// + [Input("validationStatus")] + public Input? ValidationStatus { get; set; } + + public ResolverDnsSecConfigState() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Domain.cs b/sdk/dotnet/Sagemaker/Domain.cs new file mode 100644 index 00000000000..2c276d2c7c7 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Domain.cs @@ -0,0 +1,358 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker +{ + /// + /// Provides a Sagemaker Domain resource. + /// + /// ## Example Usage + /// ### Basic usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var exampleDomain = new Aws.Sagemaker.Domain("exampleDomain", new Aws.Sagemaker.DomainArgs + /// { + /// DomainName = "example", + /// AuthMode = "IAM", + /// VpcId = aws_vpc.Test.Id, + /// SubnetIds = + /// { + /// aws_subnet.Test.Id, + /// }, + /// DefaultUserSettings = new Aws.Sagemaker.Inputs.DomainDefaultUserSettingsArgs + /// { + /// ExecutionRole = aws_iam_role.Test.Arn, + /// }, + /// }); + /// var examplePolicyDocument = Output.Create(Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs + /// { + /// Statements = + /// { + /// new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs + /// { + /// Actions = + /// { + /// "sts:AssumeRole", + /// }, + /// Principals = + /// { + /// new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs + /// { + /// Type = "Service", + /// Identifiers = + /// { + /// "sagemaker.amazonaws.com", + /// }, + /// }, + /// }, + /// }, + /// }, + /// })); + /// var exampleRole = new Aws.Iam.Role("exampleRole", new Aws.Iam.RoleArgs + /// { + /// Path = "/", + /// AssumeRolePolicy = examplePolicyDocument.Apply(examplePolicyDocument => examplePolicyDocument.Json), + /// }); + /// } + /// + /// } + /// ``` + /// + /// ## Import + /// + /// Sagemaker Code Domains can be imported using the `id`, e.g. + /// + /// ```sh + /// $ pulumi import aws:sagemaker/domain:Domain test_domain d-8jgsjtilstu8 + /// ``` + /// + [AwsResourceType("aws:sagemaker/domain:Domain")] + public partial class Domain : Pulumi.CustomResource + { + /// + /// Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + /// + [Output("appNetworkAccessType")] + public Output AppNetworkAccessType { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Domain. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + /// + [Output("authMode")] + public Output AuthMode { get; private set; } = null!; + + /// + /// The default user settings. See Default User Settings below. + /// + [Output("defaultUserSettings")] + public Output DefaultUserSettings { get; private set; } = null!; + + /// + /// The domain name. + /// + [Output("domainName")] + public Output DomainName { get; private set; } = null!; + + /// + /// The ID of the Amazon Elastic File System (EFS) managed by this Domain. + /// + [Output("homeEfsFileSystemId")] + public Output HomeEfsFileSystemId { get; private set; } = null!; + + /// + /// The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + /// + [Output("kmsKeyId")] + public Output KmsKeyId { get; private set; } = null!; + + /// + /// The SSO managed application instance ID. + /// + [Output("singleSignOnManagedApplicationInstanceId")] + public Output SingleSignOnManagedApplicationInstanceId { get; private set; } = null!; + + /// + /// The VPC subnets that Studio uses for communication. + /// + [Output("subnetIds")] + public Output> SubnetIds { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// The domain's URL. + /// + [Output("url")] + public Output Url { get; private set; } = null!; + + /// + /// The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + /// + [Output("vpcId")] + public Output VpcId { get; private set; } = null!; + + + /// + /// Create a Domain 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 Domain(string name, DomainArgs args, CustomResourceOptions? options = null) + : base("aws:sagemaker/domain:Domain", name, args ?? new DomainArgs(), MakeResourceOptions(options, "")) + { + } + + private Domain(string name, Input id, DomainState? state = null, CustomResourceOptions? options = null) + : base("aws:sagemaker/domain:Domain", 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 Domain 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 Domain Get(string name, Input id, DomainState? state = null, CustomResourceOptions? options = null) + { + return new Domain(name, id, state, options); + } + } + + public sealed class DomainArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + /// + [Input("appNetworkAccessType")] + public Input? AppNetworkAccessType { get; set; } + + /// + /// The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + /// + [Input("authMode", required: true)] + public Input AuthMode { get; set; } = null!; + + /// + /// The default user settings. See Default User Settings below. + /// + [Input("defaultUserSettings", required: true)] + public Input DefaultUserSettings { get; set; } = null!; + + /// + /// The domain name. + /// + [Input("domainName", required: true)] + public Input DomainName { get; set; } = null!; + + /// + /// The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + [Input("subnetIds", required: true)] + private InputList? _subnetIds; + + /// + /// The VPC subnets that Studio uses for communication. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + /// + [Input("vpcId", required: true)] + public Input VpcId { get; set; } = null!; + + public DomainArgs() + { + } + } + + public sealed class DomainState : Pulumi.ResourceArgs + { + /// + /// Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + /// + [Input("appNetworkAccessType")] + public Input? AppNetworkAccessType { get; set; } + + /// + /// The Amazon Resource Name (ARN) assigned by AWS to this Domain. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + /// + [Input("authMode")] + public Input? AuthMode { get; set; } + + /// + /// The default user settings. See Default User Settings below. + /// + [Input("defaultUserSettings")] + public Input? DefaultUserSettings { get; set; } + + /// + /// The domain name. + /// + [Input("domainName")] + public Input? DomainName { get; set; } + + /// + /// The ID of the Amazon Elastic File System (EFS) managed by this Domain. + /// + [Input("homeEfsFileSystemId")] + public Input? HomeEfsFileSystemId { get; set; } + + /// + /// The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + /// + [Input("kmsKeyId")] + public Input? KmsKeyId { get; set; } + + /// + /// The SSO managed application instance ID. + /// + [Input("singleSignOnManagedApplicationInstanceId")] + public Input? SingleSignOnManagedApplicationInstanceId { get; set; } + + [Input("subnetIds")] + private InputList? _subnetIds; + + /// + /// The VPC subnets that Studio uses for communication. + /// + public InputList SubnetIds + { + get => _subnetIds ?? (_subnetIds = new InputList()); + set => _subnetIds = value; + } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// The domain's URL. + /// + [Input("url")] + public Input? Url { get; set; } + + /// + /// The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + /// + [Input("vpcId")] + public Input? VpcId { get; set; } + + public DomainState() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs new file mode 100644 index 00000000000..98471f32e03 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsArgs : Pulumi.ResourceArgs + { + /// + /// The execution role ARN for the user. + /// + [Input("executionRole", required: true)] + public Input ExecutionRole { get; set; } = null!; + + /// + /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// + [Input("jupyterServerAppSettings")] + public Input? JupyterServerAppSettings { get; set; } + + /// + /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// + [Input("kernelGatewayAppSettings")] + public Input? KernelGatewayAppSettings { get; set; } + + [Input("securityGroups")] + private InputList? _securityGroups; + + /// + /// The security groups. + /// + public InputList SecurityGroups + { + get => _securityGroups ?? (_securityGroups = new InputList()); + set => _securityGroups = value; + } + + /// + /// The sharing settings. See Sharing Settings below. + /// + [Input("sharingSettings")] + public Input? SharingSettings { get; set; } + + /// + /// The TensorBoard app settings. See TensorBoard App Settings below. + /// + [Input("tensorBoardAppSettings")] + public Input? TensorBoardAppSettings { get; set; } + + public DomainDefaultUserSettingsArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs new file mode 100644 index 00000000000..6ce2262f8d3 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsGetArgs.cs @@ -0,0 +1,61 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsGetArgs : Pulumi.ResourceArgs + { + /// + /// The execution role ARN for the user. + /// + [Input("executionRole", required: true)] + public Input ExecutionRole { get; set; } = null!; + + /// + /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// + [Input("jupyterServerAppSettings")] + public Input? JupyterServerAppSettings { get; set; } + + /// + /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// + [Input("kernelGatewayAppSettings")] + public Input? KernelGatewayAppSettings { get; set; } + + [Input("securityGroups")] + private InputList? _securityGroups; + + /// + /// The security groups. + /// + public InputList SecurityGroups + { + get => _securityGroups ?? (_securityGroups = new InputList()); + set => _securityGroups = value; + } + + /// + /// The sharing settings. See Sharing Settings below. + /// + [Input("sharingSettings")] + public Input? SharingSettings { get; set; } + + /// + /// The TensorBoard app settings. See TensorBoard App Settings below. + /// + [Input("tensorBoardAppSettings")] + public Input? TensorBoardAppSettings { get; set; } + + public DomainDefaultUserSettingsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsArgs.cs new file mode 100644 index 00000000000..a3236dadd45 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterServerAppSettingsArgs : Pulumi.ResourceArgs + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsJupyterServerAppSettingsArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs.cs new file mode 100644 index 00000000000..5b2ebbb5aec --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecGetArgs.cs new file mode 100644 index 00000000000..ebea74e7861 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsGetArgs.cs new file mode 100644 index 00000000000..1be10afdae4 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsJupyterServerAppSettingsGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsJupyterServerAppSettingsGetArgs : Pulumi.ResourceArgs + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsJupyterServerAppSettingsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsArgs.cs new file mode 100644 index 00000000000..6d58dc637d1 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsArgs : Pulumi.ResourceArgs + { + [Input("customImages")] + private InputList? _customImages; + + /// + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// + public InputList CustomImages + { + get => _customImages ?? (_customImages = new InputList()); + set => _customImages = value; + } + + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsKernelGatewayAppSettingsArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs.cs new file mode 100644 index 00000000000..4a0536c0955 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs : Pulumi.ResourceArgs + { + /// + /// The name of the App Image Config. + /// + [Input("appImageConfigName", required: true)] + public Input AppImageConfigName { get; set; } = null!; + + /// + /// The name of the Custom Image. + /// + [Input("imageName", required: true)] + public Input ImageName { get; set; } = null!; + + /// + /// The version number of the Custom Image. + /// + [Input("imageVersionNumber")] + public Input? ImageVersionNumber { get; set; } + + public DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageGetArgs.cs new file mode 100644 index 00000000000..50f07c94287 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageGetArgs : Pulumi.ResourceArgs + { + /// + /// The name of the App Image Config. + /// + [Input("appImageConfigName", required: true)] + public Input AppImageConfigName { get; set; } = null!; + + /// + /// The name of the Custom Image. + /// + [Input("imageName", required: true)] + public Input ImageName { get; set; } = null!; + + /// + /// The version number of the Custom Image. + /// + [Input("imageVersionNumber")] + public Input? ImageVersionNumber { get; set; } + + public DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs.cs new file mode 100644 index 00000000000..d20c4fd2690 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecGetArgs.cs new file mode 100644 index 00000000000..22f4fb71648 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsGetArgs.cs new file mode 100644 index 00000000000..9a0dc4af864 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsKernelGatewayAppSettingsGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsGetArgs : Pulumi.ResourceArgs + { + [Input("customImages")] + private InputList? _customImages; + + /// + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// + public InputList CustomImages + { + get => _customImages ?? (_customImages = new InputList()); + set => _customImages = value; + } + + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsKernelGatewayAppSettingsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsArgs.cs new file mode 100644 index 00000000000..b3d1de0382a --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsSharingSettingsArgs : Pulumi.ResourceArgs + { + /// + /// Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + /// + [Input("notebookOutputOption")] + public Input? NotebookOutputOption { get; set; } + + /// + /// When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + /// + [Input("s3KmsKeyId")] + public Input? S3KmsKeyId { get; set; } + + /// + /// When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + /// + [Input("s3OutputPath")] + public Input? S3OutputPath { get; set; } + + public DomainDefaultUserSettingsSharingSettingsArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsGetArgs.cs new file mode 100644 index 00000000000..6cc16f4d307 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsSharingSettingsGetArgs.cs @@ -0,0 +1,37 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsSharingSettingsGetArgs : Pulumi.ResourceArgs + { + /// + /// Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + /// + [Input("notebookOutputOption")] + public Input? NotebookOutputOption { get; set; } + + /// + /// When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + /// + [Input("s3KmsKeyId")] + public Input? S3KmsKeyId { get; set; } + + /// + /// When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + /// + [Input("s3OutputPath")] + public Input? S3OutputPath { get; set; } + + public DomainDefaultUserSettingsSharingSettingsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsArgs.cs new file mode 100644 index 00000000000..648426797ce --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsTensorBoardAppSettingsArgs : Pulumi.ResourceArgs + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsTensorBoardAppSettingsArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs.cs new file mode 100644 index 00000000000..83d9bd1c06e --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecGetArgs.cs new file mode 100644 index 00000000000..25670cc9f40 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecGetArgs.cs @@ -0,0 +1,31 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The instance type. + /// + [Input("instanceType")] + public Input? InstanceType { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + [Input("sagemakerImageArn")] + public Input? SagemakerImageArn { get; set; } + + public DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsGetArgs.cs b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsGetArgs.cs new file mode 100644 index 00000000000..40586e9aa6d --- /dev/null +++ b/sdk/dotnet/Sagemaker/Inputs/DomainDefaultUserSettingsTensorBoardAppSettingsGetArgs.cs @@ -0,0 +1,25 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Inputs +{ + + public sealed class DomainDefaultUserSettingsTensorBoardAppSettingsGetArgs : Pulumi.ResourceArgs + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + [Input("defaultResourceSpec", required: true)] + public Input DefaultResourceSpec { get; set; } = null!; + + public DomainDefaultUserSettingsTensorBoardAppSettingsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs new file mode 100644 index 00000000000..44193ada53e --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettings.cs @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettings + { + /// + /// The execution role ARN for the user. + /// + public readonly string ExecutionRole; + /// + /// The Jupyter server's app settings. See Jupyter Server App Settings below. + /// + public readonly Outputs.DomainDefaultUserSettingsJupyterServerAppSettings? JupyterServerAppSettings; + /// + /// The kernel gateway app settings. See Kernel Gateway App Settings below. + /// + public readonly Outputs.DomainDefaultUserSettingsKernelGatewayAppSettings? KernelGatewayAppSettings; + /// + /// The security groups. + /// + public readonly ImmutableArray SecurityGroups; + /// + /// The sharing settings. See Sharing Settings below. + /// + public readonly Outputs.DomainDefaultUserSettingsSharingSettings? SharingSettings; + /// + /// The TensorBoard app settings. See TensorBoard App Settings below. + /// + public readonly Outputs.DomainDefaultUserSettingsTensorBoardAppSettings? TensorBoardAppSettings; + + [OutputConstructor] + private DomainDefaultUserSettings( + string executionRole, + + Outputs.DomainDefaultUserSettingsJupyterServerAppSettings? jupyterServerAppSettings, + + Outputs.DomainDefaultUserSettingsKernelGatewayAppSettings? kernelGatewayAppSettings, + + ImmutableArray securityGroups, + + Outputs.DomainDefaultUserSettingsSharingSettings? sharingSettings, + + Outputs.DomainDefaultUserSettingsTensorBoardAppSettings? tensorBoardAppSettings) + { + ExecutionRole = executionRole; + JupyterServerAppSettings = jupyterServerAppSettings; + KernelGatewayAppSettings = kernelGatewayAppSettings; + SecurityGroups = securityGroups; + SharingSettings = sharingSettings; + TensorBoardAppSettings = tensorBoardAppSettings; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettings.cs new file mode 100644 index 00000000000..465aef987e2 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsJupyterServerAppSettings + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + public readonly Outputs.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec DefaultResourceSpec; + + [OutputConstructor] + private DomainDefaultUserSettingsJupyterServerAppSettings(Outputs.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec defaultResourceSpec) + { + DefaultResourceSpec = defaultResourceSpec; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec.cs new file mode 100644 index 00000000000..866d663fe27 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec + { + /// + /// The instance type. + /// + public readonly string? InstanceType; + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + public readonly string? SagemakerImageArn; + + [OutputConstructor] + private DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec( + string? instanceType, + + string? sagemakerImageArn) + { + InstanceType = instanceType; + SagemakerImageArn = sagemakerImageArn; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettings.cs new file mode 100644 index 00000000000..98b57463c06 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettings.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettings + { + /// + /// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + /// + public readonly ImmutableArray CustomImages; + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + public readonly Outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec DefaultResourceSpec; + + [OutputConstructor] + private DomainDefaultUserSettingsKernelGatewayAppSettings( + ImmutableArray customImages, + + Outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec defaultResourceSpec) + { + CustomImages = customImages; + DefaultResourceSpec = defaultResourceSpec; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage.cs new file mode 100644 index 00000000000..c437271b7b8 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage + { + /// + /// The name of the App Image Config. + /// + public readonly string AppImageConfigName; + /// + /// The name of the Custom Image. + /// + public readonly string ImageName; + /// + /// The version number of the Custom Image. + /// + public readonly int? ImageVersionNumber; + + [OutputConstructor] + private DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage( + string appImageConfigName, + + string imageName, + + int? imageVersionNumber) + { + AppImageConfigName = appImageConfigName; + ImageName = imageName; + ImageVersionNumber = imageVersionNumber; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec.cs new file mode 100644 index 00000000000..71618cfffc6 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec + { + /// + /// The instance type. + /// + public readonly string? InstanceType; + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + public readonly string? SagemakerImageArn; + + [OutputConstructor] + private DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec( + string? instanceType, + + string? sagemakerImageArn) + { + InstanceType = instanceType; + SagemakerImageArn = sagemakerImageArn; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsSharingSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsSharingSettings.cs new file mode 100644 index 00000000000..c5dd61d478b --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsSharingSettings.cs @@ -0,0 +1,42 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsSharingSettings + { + /// + /// Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + /// + public readonly string? NotebookOutputOption; + /// + /// When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + /// + public readonly string? S3KmsKeyId; + /// + /// When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + /// + public readonly string? S3OutputPath; + + [OutputConstructor] + private DomainDefaultUserSettingsSharingSettings( + string? notebookOutputOption, + + string? s3KmsKeyId, + + string? s3OutputPath) + { + NotebookOutputOption = notebookOutputOption; + S3KmsKeyId = s3KmsKeyId; + S3OutputPath = s3OutputPath; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettings.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettings.cs new file mode 100644 index 00000000000..20775d553ce --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettings.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.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsTensorBoardAppSettings + { + /// + /// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + /// + public readonly Outputs.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec DefaultResourceSpec; + + [OutputConstructor] + private DomainDefaultUserSettingsTensorBoardAppSettings(Outputs.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec defaultResourceSpec) + { + DefaultResourceSpec = defaultResourceSpec; + } + } +} diff --git a/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec.cs b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec.cs new file mode 100644 index 00000000000..93b37534753 --- /dev/null +++ b/sdk/dotnet/Sagemaker/Outputs/DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec.cs @@ -0,0 +1,35 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Aws.Sagemaker.Outputs +{ + + [OutputType] + public sealed class DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec + { + /// + /// The instance type. + /// + public readonly string? InstanceType; + /// + /// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + /// + public readonly string? SagemakerImageArn; + + [OutputConstructor] + private DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec( + string? instanceType, + + string? sagemakerImageArn) + { + InstanceType = instanceType; + SagemakerImageArn = sagemakerImageArn; + } + } +} diff --git a/sdk/dotnet/SsoAdmin/AccountAssignment.cs b/sdk/dotnet/SsoAdmin/AccountAssignment.cs new file mode 100644 index 00000000000..51765d8065f --- /dev/null +++ b/sdk/dotnet/SsoAdmin/AccountAssignment.cs @@ -0,0 +1,191 @@ +// *** 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.SsoAdmin +{ + /// + /// Provides a Single Sign-On (SSO) Account Assignment resource + /// + /// ## Import + /// + /// SSO Account Assignments can be imported using the `principal_id`, `principal_type`, `target_id`, `target_type`, `permission_set_arn`, `instance_arn` separated by commas (`,`) e.g. + /// + /// ```sh + /// $ pulumi import aws:ssoadmin/accountAssignment:AccountAssignment example f81d4fae-7dec-11d0-a765-00a0c91e6bf6,GROUP,1234567890,AWS_ACCOUNT,arn:aws:sso:::permissionSet/ssoins-0123456789abcdef/ps-0123456789abcdef,arn:aws:sso:::instance/ssoins-0123456789abcdef + /// ``` + /// + [AwsResourceType("aws:ssoadmin/accountAssignment:AccountAssignment")] + public partial class AccountAssignment : Pulumi.CustomResource + { + /// + /// The Amazon Resource Name (ARN) of the SSO Instance. + /// + [Output("instanceArn")] + public Output InstanceArn { get; private set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + /// + [Output("permissionSetArn")] + public Output PermissionSetArn { get; private set; } = null!; + + /// + /// An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + /// + [Output("principalId")] + public Output PrincipalId { get; private set; } = null!; + + /// + /// The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + /// + [Output("principalType")] + public Output PrincipalType { get; private set; } = null!; + + /// + /// An AWS account identifier, typically a 10-12 digit string. + /// + [Output("targetId")] + public Output TargetId { get; private set; } = null!; + + /// + /// The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + /// + [Output("targetType")] + public Output TargetType { get; private set; } = null!; + + + /// + /// Create a AccountAssignment 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 AccountAssignment(string name, AccountAssignmentArgs args, CustomResourceOptions? options = null) + : base("aws:ssoadmin/accountAssignment:AccountAssignment", name, args ?? new AccountAssignmentArgs(), MakeResourceOptions(options, "")) + { + } + + private AccountAssignment(string name, Input id, AccountAssignmentState? state = null, CustomResourceOptions? options = null) + : base("aws:ssoadmin/accountAssignment:AccountAssignment", 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 AccountAssignment 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 AccountAssignment Get(string name, Input id, AccountAssignmentState? state = null, CustomResourceOptions? options = null) + { + return new AccountAssignment(name, id, state, options); + } + } + + public sealed class AccountAssignmentArgs : Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the SSO Instance. + /// + [Input("instanceArn", required: true)] + public Input InstanceArn { get; set; } = null!; + + /// + /// The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + /// + [Input("permissionSetArn", required: true)] + public Input PermissionSetArn { get; set; } = null!; + + /// + /// An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + /// + [Input("principalId", required: true)] + public Input PrincipalId { get; set; } = null!; + + /// + /// The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + /// + [Input("principalType", required: true)] + public Input PrincipalType { get; set; } = null!; + + /// + /// An AWS account identifier, typically a 10-12 digit string. + /// + [Input("targetId", required: true)] + public Input TargetId { get; set; } = null!; + + /// + /// The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + /// + [Input("targetType")] + public Input? TargetType { get; set; } + + public AccountAssignmentArgs() + { + } + } + + public sealed class AccountAssignmentState : Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) of the SSO Instance. + /// + [Input("instanceArn")] + public Input? InstanceArn { get; set; } + + /// + /// The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + /// + [Input("permissionSetArn")] + public Input? PermissionSetArn { get; set; } + + /// + /// An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + /// + [Input("principalId")] + public Input? PrincipalId { get; set; } + + /// + /// The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + /// + [Input("principalType")] + public Input? PrincipalType { get; set; } + + /// + /// An AWS account identifier, typically a 10-12 digit string. + /// + [Input("targetId")] + public Input? TargetId { get; set; } + + /// + /// The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + /// + [Input("targetType")] + public Input? TargetType { get; set; } + + public AccountAssignmentState() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Directory.cs b/sdk/dotnet/Workspaces/Directory.cs index 4aa6a937258..e056ac3ab22 100644 --- a/sdk/dotnet/Workspaces/Directory.cs +++ b/sdk/dotnet/Workspaces/Directory.cs @@ -98,6 +98,16 @@ namespace Pulumi.Aws.Workspaces /// RestartWorkspace = true, /// SwitchRunningMode = true, /// }, + /// WorkspaceAccessProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceAccessPropertiesArgs + /// { + /// DeviceTypeAndroid = "ALLOW", + /// DeviceTypeChromeos = "ALLOW", + /// DeviceTypeIos = "ALLOW", + /// DeviceTypeOsx = "ALLOW", + /// DeviceTypeWeb = "DENY", + /// DeviceTypeWindows = "DENY", + /// DeviceTypeZeroclient = "DENY", + /// }, /// WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs /// { /// CustomSecurityGroupId = aws_security_group.Example.Id, @@ -254,6 +264,12 @@ public partial class Directory : Pulumi.CustomResource [Output("tags")] public Output?> Tags { get; private set; } = null!; + /// + /// Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + /// + [Output("workspaceAccessProperties")] + public Output WorkspaceAccessProperties { get; private set; } = null!; + /// /// Default properties that are used for creating WorkSpaces. Defined below. /// @@ -360,6 +376,12 @@ public InputMap Tags set => _tags = value; } + /// + /// Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + /// + [Input("workspaceAccessProperties")] + public Input? WorkspaceAccessProperties { get; set; } + /// /// Default properties that are used for creating WorkSpaces. Defined below. /// @@ -469,6 +491,12 @@ public InputMap Tags set => _tags = value; } + /// + /// Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + /// + [Input("workspaceAccessProperties")] + public Input? WorkspaceAccessProperties { get; set; } + /// /// Default properties that are used for creating WorkSpaces. Defined below. /// diff --git a/sdk/dotnet/Workspaces/GetDirectory.cs b/sdk/dotnet/Workspaces/GetDirectory.cs index 6bbde6b05c4..149a6c6c0c0 100644 --- a/sdk/dotnet/Workspaces/GetDirectory.cs +++ b/sdk/dotnet/Workspaces/GetDirectory.cs @@ -62,12 +62,6 @@ public Dictionary Tags set => _tags = value; } - /// - /// The default properties that are used for creating WorkSpaces. Defined below. - /// - [Input("workspaceCreationProperties")] - public Inputs.GetDirectoryWorkspaceCreationPropertiesArgs? WorkspaceCreationProperties { get; set; } - public GetDirectoryArgs() { } @@ -127,6 +121,10 @@ public sealed class GetDirectoryResult /// public readonly ImmutableDictionary? Tags; /// + /// (Optional) Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + /// + public readonly ImmutableArray WorkspaceAccessProperties; + /// /// The default properties that are used for creating WorkSpaces. Defined below. /// public readonly Outputs.GetDirectoryWorkspaceCreationPropertiesResult WorkspaceCreationProperties; @@ -163,6 +161,8 @@ private GetDirectoryResult( ImmutableDictionary? tags, + ImmutableArray workspaceAccessProperties, + Outputs.GetDirectoryWorkspaceCreationPropertiesResult workspaceCreationProperties, string workspaceSecurityGroupId) @@ -180,6 +180,7 @@ private GetDirectoryResult( SelfServicePermissions = selfServicePermissions; SubnetIds = subnetIds; Tags = tags; + WorkspaceAccessProperties = workspaceAccessProperties; WorkspaceCreationProperties = workspaceCreationProperties; WorkspaceSecurityGroupId = workspaceSecurityGroupId; } diff --git a/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesArgs.cs b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesArgs.cs new file mode 100644 index 00000000000..6634f8912a3 --- /dev/null +++ b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesArgs.cs @@ -0,0 +1,61 @@ +// *** 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.Workspaces.Inputs +{ + + public sealed class DirectoryWorkspaceAccessPropertiesArgs : Pulumi.ResourceArgs + { + /// + /// Indicates whether users can use Android devices to access their WorkSpaces. + /// + [Input("deviceTypeAndroid")] + public Input? DeviceTypeAndroid { get; set; } + + /// + /// Indicates whether users can use Chromebooks to access their WorkSpaces. + /// + [Input("deviceTypeChromeos")] + public Input? DeviceTypeChromeos { get; set; } + + /// + /// Indicates whether users can use iOS devices to access their WorkSpaces. + /// + [Input("deviceTypeIos")] + public Input? DeviceTypeIos { get; set; } + + /// + /// Indicates whether users can use macOS clients to access their WorkSpaces. + /// + [Input("deviceTypeOsx")] + public Input? DeviceTypeOsx { get; set; } + + /// + /// Indicates whether users can access their WorkSpaces through a web browser. + /// + [Input("deviceTypeWeb")] + public Input? DeviceTypeWeb { get; set; } + + /// + /// Indicates whether users can use Windows clients to access their WorkSpaces. + /// + [Input("deviceTypeWindows")] + public Input? DeviceTypeWindows { get; set; } + + /// + /// Indicates whether users can use zero client devices to access their WorkSpaces. + /// + [Input("deviceTypeZeroclient")] + public Input? DeviceTypeZeroclient { get; set; } + + public DirectoryWorkspaceAccessPropertiesArgs() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesGetArgs.cs b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesGetArgs.cs new file mode 100644 index 00000000000..c2f6fdd3179 --- /dev/null +++ b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceAccessPropertiesGetArgs.cs @@ -0,0 +1,61 @@ +// *** 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.Workspaces.Inputs +{ + + public sealed class DirectoryWorkspaceAccessPropertiesGetArgs : Pulumi.ResourceArgs + { + /// + /// Indicates whether users can use Android devices to access their WorkSpaces. + /// + [Input("deviceTypeAndroid")] + public Input? DeviceTypeAndroid { get; set; } + + /// + /// Indicates whether users can use Chromebooks to access their WorkSpaces. + /// + [Input("deviceTypeChromeos")] + public Input? DeviceTypeChromeos { get; set; } + + /// + /// Indicates whether users can use iOS devices to access their WorkSpaces. + /// + [Input("deviceTypeIos")] + public Input? DeviceTypeIos { get; set; } + + /// + /// Indicates whether users can use macOS clients to access their WorkSpaces. + /// + [Input("deviceTypeOsx")] + public Input? DeviceTypeOsx { get; set; } + + /// + /// Indicates whether users can access their WorkSpaces through a web browser. + /// + [Input("deviceTypeWeb")] + public Input? DeviceTypeWeb { get; set; } + + /// + /// Indicates whether users can use Windows clients to access their WorkSpaces. + /// + [Input("deviceTypeWindows")] + public Input? DeviceTypeWindows { get; set; } + + /// + /// Indicates whether users can use zero client devices to access their WorkSpaces. + /// + [Input("deviceTypeZeroclient")] + public Input? DeviceTypeZeroclient { get; set; } + + public DirectoryWorkspaceAccessPropertiesGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs b/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs deleted file mode 100644 index b7aaeabfac3..00000000000 --- a/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs +++ /dev/null @@ -1,49 +0,0 @@ -// *** 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.Workspaces.Inputs -{ - - public sealed class GetDirectoryWorkspaceCreationPropertiesArgs : Pulumi.InvokeArgs - { - /// - /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. - /// - [Input("customSecurityGroupId", required: true)] - public string CustomSecurityGroupId { get; set; } = null!; - - /// - /// The default organizational unit (OU) for your WorkSpace directories. - /// - [Input("defaultOu")] - public string? DefaultOu { get; set; } - - /// - /// Indicates whether internet access is enabled for your WorkSpaces. - /// - [Input("enableInternetAccess")] - public bool? EnableInternetAccess { get; set; } - - /// - /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). - /// - [Input("enableMaintenanceMode")] - public bool? EnableMaintenanceMode { get; set; } - - /// - /// Indicates whether users are local administrators of their WorkSpaces. - /// - [Input("userEnabledAsLocalAdministrator")] - public bool? UserEnabledAsLocalAdministrator { get; set; } - - public GetDirectoryWorkspaceCreationPropertiesArgs() - { - } - } -} diff --git a/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceAccessProperties.cs b/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceAccessProperties.cs new file mode 100644 index 00000000000..372ca991470 --- /dev/null +++ b/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceAccessProperties.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.Workspaces.Outputs +{ + + [OutputType] + public sealed class DirectoryWorkspaceAccessProperties + { + /// + /// Indicates whether users can use Android devices to access their WorkSpaces. + /// + public readonly string? DeviceTypeAndroid; + /// + /// Indicates whether users can use Chromebooks to access their WorkSpaces. + /// + public readonly string? DeviceTypeChromeos; + /// + /// Indicates whether users can use iOS devices to access their WorkSpaces. + /// + public readonly string? DeviceTypeIos; + /// + /// Indicates whether users can use macOS clients to access their WorkSpaces. + /// + public readonly string? DeviceTypeOsx; + /// + /// Indicates whether users can access their WorkSpaces through a web browser. + /// + public readonly string? DeviceTypeWeb; + /// + /// Indicates whether users can use Windows clients to access their WorkSpaces. + /// + public readonly string? DeviceTypeWindows; + /// + /// Indicates whether users can use zero client devices to access their WorkSpaces. + /// + public readonly string? DeviceTypeZeroclient; + + [OutputConstructor] + private DirectoryWorkspaceAccessProperties( + string? deviceTypeAndroid, + + string? deviceTypeChromeos, + + string? deviceTypeIos, + + string? deviceTypeOsx, + + string? deviceTypeWeb, + + string? deviceTypeWindows, + + string? deviceTypeZeroclient) + { + DeviceTypeAndroid = deviceTypeAndroid; + DeviceTypeChromeos = deviceTypeChromeos; + DeviceTypeIos = deviceTypeIos; + DeviceTypeOsx = deviceTypeOsx; + DeviceTypeWeb = deviceTypeWeb; + DeviceTypeWindows = deviceTypeWindows; + DeviceTypeZeroclient = deviceTypeZeroclient; + } + } +} diff --git a/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceAccessPropertyResult.cs b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceAccessPropertyResult.cs new file mode 100644 index 00000000000..724ca2243c6 --- /dev/null +++ b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceAccessPropertyResult.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.Workspaces.Outputs +{ + + [OutputType] + public sealed class GetDirectoryWorkspaceAccessPropertyResult + { + /// + /// (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + /// + public readonly string DeviceTypeAndroid; + /// + /// (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + /// + public readonly string DeviceTypeChromeos; + /// + /// (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + /// + public readonly string DeviceTypeIos; + /// + /// (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + /// + public readonly string DeviceTypeOsx; + /// + /// (Optional) Indicates whether users can access their WorkSpaces through a web browser. + /// + public readonly string DeviceTypeWeb; + /// + /// (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + /// + public readonly string DeviceTypeWindows; + /// + /// (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + /// + public readonly string DeviceTypeZeroclient; + + [OutputConstructor] + private GetDirectoryWorkspaceAccessPropertyResult( + string deviceTypeAndroid, + + string deviceTypeChromeos, + + string deviceTypeIos, + + string deviceTypeOsx, + + string deviceTypeWeb, + + string deviceTypeWindows, + + string deviceTypeZeroclient) + { + DeviceTypeAndroid = deviceTypeAndroid; + DeviceTypeChromeos = deviceTypeChromeos; + DeviceTypeIos = deviceTypeIos; + DeviceTypeOsx = deviceTypeOsx; + DeviceTypeWeb = deviceTypeWeb; + DeviceTypeWindows = deviceTypeWindows; + DeviceTypeZeroclient = deviceTypeZeroclient; + } + } +} diff --git a/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs index af5854df346..55d131a95dd 100644 --- a/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs +++ b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs @@ -20,31 +20,31 @@ public sealed class GetDirectoryWorkspaceCreationPropertiesResult /// /// The default organizational unit (OU) for your WorkSpace directories. /// - public readonly string? DefaultOu; + public readonly string DefaultOu; /// /// Indicates whether internet access is enabled for your WorkSpaces. /// - public readonly bool? EnableInternetAccess; + public readonly bool EnableInternetAccess; /// /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). /// - public readonly bool? EnableMaintenanceMode; + public readonly bool EnableMaintenanceMode; /// /// Indicates whether users are local administrators of their WorkSpaces. /// - public readonly bool? UserEnabledAsLocalAdministrator; + public readonly bool UserEnabledAsLocalAdministrator; [OutputConstructor] private GetDirectoryWorkspaceCreationPropertiesResult( string customSecurityGroupId, - string? defaultOu, + string defaultOu, - bool? enableInternetAccess, + bool enableInternetAccess, - bool? enableMaintenanceMode, + bool enableMaintenanceMode, - bool? userEnabledAsLocalAdministrator) + bool userEnabledAsLocalAdministrator) { CustomSecurityGroupId = customSecurityGroupId; DefaultOu = defaultOu; diff --git a/sdk/go/aws/apigateway/domainName.go b/sdk/go/aws/apigateway/domainName.go index a1ecb2f34ee..32d65c0f8d2 100644 --- a/sdk/go/aws/apigateway/domainName.go +++ b/sdk/go/aws/apigateway/domainName.go @@ -167,6 +167,8 @@ type DomainName struct { DomainName pulumi.StringOutput `pulumi:"domainName"` // Configuration block defining API endpoint information including type. Defined below. EndpointConfiguration DomainNameEndpointConfigurationOutput `pulumi:"endpointConfiguration"` + // The mutual TLS authentication configuration for the domain name. Defined below. + MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrOutput `pulumi:"mutualTlsAuthentication"` // The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. RegionalCertificateArn pulumi.StringPtrOutput `pulumi:"regionalCertificateArn"` // The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and @@ -246,6 +248,8 @@ type domainNameState struct { DomainName *string `pulumi:"domainName"` // Configuration block defining API endpoint information including type. Defined below. EndpointConfiguration *DomainNameEndpointConfiguration `pulumi:"endpointConfiguration"` + // The mutual TLS authentication configuration for the domain name. Defined below. + MutualTlsAuthentication *DomainNameMutualTlsAuthentication `pulumi:"mutualTlsAuthentication"` // The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. RegionalCertificateArn *string `pulumi:"regionalCertificateArn"` // The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and @@ -294,6 +298,8 @@ type DomainNameState struct { DomainName pulumi.StringPtrInput // Configuration block defining API endpoint information including type. Defined below. EndpointConfiguration DomainNameEndpointConfigurationPtrInput + // The mutual TLS authentication configuration for the domain name. Defined below. + MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrInput // The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. RegionalCertificateArn pulumi.StringPtrInput // The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and @@ -336,6 +342,8 @@ type domainNameArgs struct { DomainName string `pulumi:"domainName"` // Configuration block defining API endpoint information including type. Defined below. EndpointConfiguration *DomainNameEndpointConfiguration `pulumi:"endpointConfiguration"` + // The mutual TLS authentication configuration for the domain name. Defined below. + MutualTlsAuthentication *DomainNameMutualTlsAuthentication `pulumi:"mutualTlsAuthentication"` // The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. RegionalCertificateArn *string `pulumi:"regionalCertificateArn"` // The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and @@ -371,6 +379,8 @@ type DomainNameArgs struct { DomainName pulumi.StringInput // Configuration block defining API endpoint information including type. Defined below. EndpointConfiguration DomainNameEndpointConfigurationPtrInput + // The mutual TLS authentication configuration for the domain name. Defined below. + MutualTlsAuthentication DomainNameMutualTlsAuthenticationPtrInput // The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. RegionalCertificateArn pulumi.StringPtrInput // The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and diff --git a/sdk/go/aws/apigateway/getDomainName.go b/sdk/go/aws/apigateway/getDomainName.go new file mode 100644 index 00000000000..eee7ce49158 --- /dev/null +++ b/sdk/go/aws/apigateway/getDomainName.go @@ -0,0 +1,82 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package apigateway + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Use this data source to get the custom domain name for use with AWS API Gateway. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := apigateway.LookupDomainName(ctx, &apigateway.LookupDomainNameArgs{ +// DomainName: "api.example.com", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +func LookupDomainName(ctx *pulumi.Context, args *LookupDomainNameArgs, opts ...pulumi.InvokeOption) (*LookupDomainNameResult, error) { + var rv LookupDomainNameResult + err := ctx.Invoke("aws:apigateway/getDomainName:getDomainName", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getDomainName. +type LookupDomainNameArgs struct { + // The fully-qualified domain name to look up. If no domain name is found, an error will be returned. + DomainName string `pulumi:"domainName"` + // Key-value map of tags for the resource. + Tags map[string]string `pulumi:"tags"` +} + +// A collection of values returned by getDomainName. +type LookupDomainNameResult struct { + // The ARN of the found custom domain name. + Arn string `pulumi:"arn"` + // The ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name. + CertificateArn string `pulumi:"certificateArn"` + // The name of the certificate that is used by edge-optimized endpoint for this domain name. + CertificateName string `pulumi:"certificateName"` + // The upload date associated with the domain certificate. + CertificateUploadDate string `pulumi:"certificateUploadDate"` + // The hostname created by Cloudfront to represent the distribution that implements this domain name mapping. + CloudfrontDomainName string `pulumi:"cloudfrontDomainName"` + // For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution. + CloudfrontZoneId string `pulumi:"cloudfrontZoneId"` + DomainName string `pulumi:"domainName"` + // List of objects with the endpoint configuration of this domain name. + EndpointConfigurations []GetDomainNameEndpointConfiguration `pulumi:"endpointConfigurations"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + // The ARN for an AWS-managed certificate that is used for validating the regional domain name. + RegionalCertificateArn string `pulumi:"regionalCertificateArn"` + // The user-friendly name of the certificate that is used by regional endpoint for this domain name. + RegionalCertificateName string `pulumi:"regionalCertificateName"` + // The hostname for the custom domain's regional endpoint. + RegionalDomainName string `pulumi:"regionalDomainName"` + // The hosted zone ID that can be used to create a Route53 alias record for the regional endpoint. + RegionalZoneId string `pulumi:"regionalZoneId"` + // The security policy for the domain name. + SecurityPolicy string `pulumi:"securityPolicy"` + // Key-value map of tags for the resource. + Tags map[string]string `pulumi:"tags"` +} diff --git a/sdk/go/aws/apigateway/integration.go b/sdk/go/aws/apigateway/integration.go index cdb4b3f0452..7816fda69d2 100644 --- a/sdk/go/aws/apigateway/integration.go +++ b/sdk/go/aws/apigateway/integration.go @@ -119,6 +119,8 @@ type Integration struct { RestApi pulumi.StringOutput `pulumi:"restApi"` // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. TimeoutMilliseconds pulumi.IntPtrOutput `pulumi:"timeoutMilliseconds"` + // Configuration block specifying the TLS configuration for an integration. Defined below. + TlsConfig IntegrationTlsConfigPtrOutput `pulumi:"tlsConfig"` // The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. Type pulumi.StringOutput `pulumi:"type"` // The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. @@ -202,6 +204,8 @@ type integrationState struct { RestApi *string `pulumi:"restApi"` // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` + // Configuration block specifying the TLS configuration for an integration. Defined below. + TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"` // The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. Type *string `pulumi:"type"` // The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. @@ -245,6 +249,8 @@ type IntegrationState struct { RestApi pulumi.StringPtrInput // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. TimeoutMilliseconds pulumi.IntPtrInput + // Configuration block specifying the TLS configuration for an integration. Defined below. + TlsConfig IntegrationTlsConfigPtrInput // The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. Type pulumi.StringPtrInput // The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. @@ -292,6 +298,8 @@ type integrationArgs struct { RestApi interface{} `pulumi:"restApi"` // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` + // Configuration block specifying the TLS configuration for an integration. Defined below. + TlsConfig *IntegrationTlsConfig `pulumi:"tlsConfig"` // The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. Type string `pulumi:"type"` // The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. @@ -336,6 +344,8 @@ type IntegrationArgs struct { RestApi pulumi.Input // Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. TimeoutMilliseconds pulumi.IntPtrInput + // Configuration block specifying the TLS configuration for an integration. Defined below. + TlsConfig IntegrationTlsConfigPtrInput // The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. Type pulumi.StringInput // The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. diff --git a/sdk/go/aws/apigateway/method.go b/sdk/go/aws/apigateway/method.go index 0594b3dba4c..3423ec086ed 100644 --- a/sdk/go/aws/apigateway/method.go +++ b/sdk/go/aws/apigateway/method.go @@ -139,6 +139,8 @@ type Method struct { AuthorizerId pulumi.StringPtrOutput `pulumi:"authorizerId"` // The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) HttpMethod pulumi.StringOutput `pulumi:"httpMethod"` + // The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + OperationName pulumi.StringPtrOutput `pulumi:"operationName"` // A map of the API models used for the request's content type // where key is the content type (e.g. `application/json`) // and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -205,6 +207,8 @@ type methodState struct { AuthorizerId *string `pulumi:"authorizerId"` // The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) HttpMethod *string `pulumi:"httpMethod"` + // The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + OperationName *string `pulumi:"operationName"` // A map of the API models used for the request's content type // where key is the content type (e.g. `application/json`) // and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -231,6 +235,8 @@ type MethodState struct { AuthorizerId pulumi.StringPtrInput // The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) HttpMethod pulumi.StringPtrInput + // The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + OperationName pulumi.StringPtrInput // A map of the API models used for the request's content type // where key is the content type (e.g. `application/json`) // and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -261,6 +267,8 @@ type methodArgs struct { AuthorizerId *string `pulumi:"authorizerId"` // The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) HttpMethod string `pulumi:"httpMethod"` + // The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + OperationName *string `pulumi:"operationName"` // A map of the API models used for the request's content type // where key is the content type (e.g. `application/json`) // and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -288,6 +296,8 @@ type MethodArgs struct { AuthorizerId pulumi.StringPtrInput // The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) HttpMethod pulumi.StringInput + // The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + OperationName pulumi.StringPtrInput // A map of the API models used for the request's content type // where key is the content type (e.g. `application/json`) // and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. diff --git a/sdk/go/aws/apigateway/methodSettings.go b/sdk/go/aws/apigateway/methodSettings.go index 9a7295f03f5..cbb424aa144 100644 --- a/sdk/go/aws/apigateway/methodSettings.go +++ b/sdk/go/aws/apigateway/methodSettings.go @@ -13,93 +13,6 @@ import ( // Provides an API Gateway Method Settings, e.g. logging or monitoring. // -// ## Example Usage -// -// ```go -// package main -// -// import ( -// "fmt" -// -// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/apigateway" -// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" -// ) -// -// func main() { -// pulumi.Run(func(ctx *pulumi.Context) error { -// testRestApi, err := apigateway.NewRestApi(ctx, "testRestApi", &apigateway.RestApiArgs{ -// Description: pulumi.String("This is my API for demonstration purposes"), -// }) -// if err != nil { -// return err -// } -// testResource, err := apigateway.NewResource(ctx, "testResource", &apigateway.ResourceArgs{ -// RestApi: testRestApi.ID(), -// ParentId: testRestApi.RootResourceId, -// PathPart: pulumi.String("mytestresource"), -// }) -// if err != nil { -// return err -// } -// testMethod, err := apigateway.NewMethod(ctx, "testMethod", &apigateway.MethodArgs{ -// RestApi: testRestApi.ID(), -// ResourceId: testResource.ID(), -// HttpMethod: pulumi.String("GET"), -// Authorization: pulumi.String("NONE"), -// }) -// if err != nil { -// return err -// } -// testIntegration, err := apigateway.NewIntegration(ctx, "testIntegration", &apigateway.IntegrationArgs{ -// RestApi: testRestApi.ID(), -// ResourceId: testResource.ID(), -// HttpMethod: testMethod.HttpMethod, -// Type: pulumi.String("MOCK"), -// RequestTemplates: pulumi.StringMap{ -// "application/xml": pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v", "{\n", " \"body\" : ", "$", "input.json('", "$", "')\n", "}\n")), -// }, -// }) -// if err != nil { -// return err -// } -// testDeployment, err := apigateway.NewDeployment(ctx, "testDeployment", &apigateway.DeploymentArgs{ -// RestApi: testRestApi.ID(), -// StageName: pulumi.String("dev"), -// }, pulumi.DependsOn([]pulumi.Resource{ -// testIntegration, -// })) -// if err != nil { -// return err -// } -// testStage, err := apigateway.NewStage(ctx, "testStage", &apigateway.StageArgs{ -// StageName: pulumi.String("prod"), -// RestApi: testRestApi.ID(), -// Deployment: testDeployment.ID(), -// }) -// if err != nil { -// return err -// } -// _, err = apigateway.NewMethodSettings(ctx, "methodSettings", &apigateway.MethodSettingsArgs{ -// RestApi: testRestApi.ID(), -// StageName: testStage.StageName, -// MethodPath: pulumi.All(testResource.PathPart, testMethod.HttpMethod).ApplyT(func(_args []interface{}) (string, error) { -// pathPart := _args[0].(string) -// httpMethod := _args[1].(string) -// return fmt.Sprintf("%v%v%v", pathPart, "/", httpMethod), nil -// }).(pulumi.StringOutput), -// Settings: &apigateway.MethodSettingsSettingsArgs{ -// MetricsEnabled: pulumi.Bool(true), -// LoggingLevel: pulumi.String("INFO"), -// }, -// }) -// if err != nil { -// return err -// } -// return nil -// }) -// } -// ``` -// // ## Import // // `aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g. diff --git a/sdk/go/aws/apigateway/pulumiTypes.go b/sdk/go/aws/apigateway/pulumiTypes.go index dc677102b11..6c3331651f5 100644 --- a/sdk/go/aws/apigateway/pulumiTypes.go +++ b/sdk/go/aws/apigateway/pulumiTypes.go @@ -498,6 +498,291 @@ func (o DomainNameEndpointConfigurationPtrOutput) Types() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } +type DomainNameMutualTlsAuthentication struct { + // An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + // The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + TruststoreUri string `pulumi:"truststoreUri"` + // The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + TruststoreVersion *string `pulumi:"truststoreVersion"` +} + +// DomainNameMutualTlsAuthenticationInput is an input type that accepts DomainNameMutualTlsAuthenticationArgs and DomainNameMutualTlsAuthenticationOutput values. +// You can construct a concrete instance of `DomainNameMutualTlsAuthenticationInput` via: +// +// DomainNameMutualTlsAuthenticationArgs{...} +type DomainNameMutualTlsAuthenticationInput interface { + pulumi.Input + + ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput + ToDomainNameMutualTlsAuthenticationOutputWithContext(context.Context) DomainNameMutualTlsAuthenticationOutput +} + +type DomainNameMutualTlsAuthenticationArgs struct { + // An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + // The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + TruststoreUri pulumi.StringInput `pulumi:"truststoreUri"` + // The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + TruststoreVersion pulumi.StringPtrInput `pulumi:"truststoreVersion"` +} + +func (DomainNameMutualTlsAuthenticationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainNameMutualTlsAuthentication)(nil)).Elem() +} + +func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput { + return i.ToDomainNameMutualTlsAuthenticationOutputWithContext(context.Background()) +} + +func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameMutualTlsAuthenticationOutput) +} + +func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput { + return i.ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(context.Background()) +} + +func (i DomainNameMutualTlsAuthenticationArgs) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameMutualTlsAuthenticationOutput).ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx) +} + +// DomainNameMutualTlsAuthenticationPtrInput is an input type that accepts DomainNameMutualTlsAuthenticationArgs, DomainNameMutualTlsAuthenticationPtr and DomainNameMutualTlsAuthenticationPtrOutput values. +// You can construct a concrete instance of `DomainNameMutualTlsAuthenticationPtrInput` via: +// +// DomainNameMutualTlsAuthenticationArgs{...} +// +// or: +// +// nil +type DomainNameMutualTlsAuthenticationPtrInput interface { + pulumi.Input + + ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput + ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(context.Context) DomainNameMutualTlsAuthenticationPtrOutput +} + +type domainNameMutualTlsAuthenticationPtrType DomainNameMutualTlsAuthenticationArgs + +func DomainNameMutualTlsAuthenticationPtr(v *DomainNameMutualTlsAuthenticationArgs) DomainNameMutualTlsAuthenticationPtrInput { + return (*domainNameMutualTlsAuthenticationPtrType)(v) +} + +func (*domainNameMutualTlsAuthenticationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainNameMutualTlsAuthentication)(nil)).Elem() +} + +func (i *domainNameMutualTlsAuthenticationPtrType) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput { + return i.ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(context.Background()) +} + +func (i *domainNameMutualTlsAuthenticationPtrType) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainNameMutualTlsAuthenticationPtrOutput) +} + +type DomainNameMutualTlsAuthenticationOutput struct{ *pulumi.OutputState } + +func (DomainNameMutualTlsAuthenticationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainNameMutualTlsAuthentication)(nil)).Elem() +} + +func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutput() DomainNameMutualTlsAuthenticationOutput { + return o +} + +func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationOutput { + return o +} + +func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput { + return o.ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(context.Background()) +} + +func (o DomainNameMutualTlsAuthenticationOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput { + return o.ApplyT(func(v DomainNameMutualTlsAuthentication) *DomainNameMutualTlsAuthentication { + return &v + }).(DomainNameMutualTlsAuthenticationPtrOutput) +} + +// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. +// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. +func (o DomainNameMutualTlsAuthenticationOutput) TruststoreUri() pulumi.StringOutput { + return o.ApplyT(func(v DomainNameMutualTlsAuthentication) string { return v.TruststoreUri }).(pulumi.StringOutput) +} + +// The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. +func (o DomainNameMutualTlsAuthenticationOutput) TruststoreVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainNameMutualTlsAuthentication) *string { return v.TruststoreVersion }).(pulumi.StringPtrOutput) +} + +type DomainNameMutualTlsAuthenticationPtrOutput struct{ *pulumi.OutputState } + +func (DomainNameMutualTlsAuthenticationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainNameMutualTlsAuthentication)(nil)).Elem() +} + +func (o DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutput() DomainNameMutualTlsAuthenticationPtrOutput { + return o +} + +func (o DomainNameMutualTlsAuthenticationPtrOutput) ToDomainNameMutualTlsAuthenticationPtrOutputWithContext(ctx context.Context) DomainNameMutualTlsAuthenticationPtrOutput { + return o +} + +func (o DomainNameMutualTlsAuthenticationPtrOutput) Elem() DomainNameMutualTlsAuthenticationOutput { + return o.ApplyT(func(v *DomainNameMutualTlsAuthentication) DomainNameMutualTlsAuthentication { return *v }).(DomainNameMutualTlsAuthenticationOutput) +} + +// An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. +// The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. +func (o DomainNameMutualTlsAuthenticationPtrOutput) TruststoreUri() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainNameMutualTlsAuthentication) *string { + if v == nil { + return nil + } + return &v.TruststoreUri + }).(pulumi.StringPtrOutput) +} + +// The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. +func (o DomainNameMutualTlsAuthenticationPtrOutput) TruststoreVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainNameMutualTlsAuthentication) *string { + if v == nil { + return nil + } + return v.TruststoreVersion + }).(pulumi.StringPtrOutput) +} + +type IntegrationTlsConfig struct { + // Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + InsecureSkipVerification *bool `pulumi:"insecureSkipVerification"` +} + +// IntegrationTlsConfigInput is an input type that accepts IntegrationTlsConfigArgs and IntegrationTlsConfigOutput values. +// You can construct a concrete instance of `IntegrationTlsConfigInput` via: +// +// IntegrationTlsConfigArgs{...} +type IntegrationTlsConfigInput interface { + pulumi.Input + + ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput + ToIntegrationTlsConfigOutputWithContext(context.Context) IntegrationTlsConfigOutput +} + +type IntegrationTlsConfigArgs struct { + // Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + InsecureSkipVerification pulumi.BoolPtrInput `pulumi:"insecureSkipVerification"` +} + +func (IntegrationTlsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IntegrationTlsConfig)(nil)).Elem() +} + +func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput { + return i.ToIntegrationTlsConfigOutputWithContext(context.Background()) +} + +func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigOutputWithContext(ctx context.Context) IntegrationTlsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(IntegrationTlsConfigOutput) +} + +func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput { + return i.ToIntegrationTlsConfigPtrOutputWithContext(context.Background()) +} + +func (i IntegrationTlsConfigArgs) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IntegrationTlsConfigOutput).ToIntegrationTlsConfigPtrOutputWithContext(ctx) +} + +// IntegrationTlsConfigPtrInput is an input type that accepts IntegrationTlsConfigArgs, IntegrationTlsConfigPtr and IntegrationTlsConfigPtrOutput values. +// You can construct a concrete instance of `IntegrationTlsConfigPtrInput` via: +// +// IntegrationTlsConfigArgs{...} +// +// or: +// +// nil +type IntegrationTlsConfigPtrInput interface { + pulumi.Input + + ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput + ToIntegrationTlsConfigPtrOutputWithContext(context.Context) IntegrationTlsConfigPtrOutput +} + +type integrationTlsConfigPtrType IntegrationTlsConfigArgs + +func IntegrationTlsConfigPtr(v *IntegrationTlsConfigArgs) IntegrationTlsConfigPtrInput { + return (*integrationTlsConfigPtrType)(v) +} + +func (*integrationTlsConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**IntegrationTlsConfig)(nil)).Elem() +} + +func (i *integrationTlsConfigPtrType) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput { + return i.ToIntegrationTlsConfigPtrOutputWithContext(context.Background()) +} + +func (i *integrationTlsConfigPtrType) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(IntegrationTlsConfigPtrOutput) +} + +type IntegrationTlsConfigOutput struct{ *pulumi.OutputState } + +func (IntegrationTlsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IntegrationTlsConfig)(nil)).Elem() +} + +func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutput() IntegrationTlsConfigOutput { + return o +} + +func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigOutputWithContext(ctx context.Context) IntegrationTlsConfigOutput { + return o +} + +func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput { + return o.ToIntegrationTlsConfigPtrOutputWithContext(context.Background()) +} + +func (o IntegrationTlsConfigOutput) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput { + return o.ApplyT(func(v IntegrationTlsConfig) *IntegrationTlsConfig { + return &v + }).(IntegrationTlsConfigPtrOutput) +} + +// Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. +func (o IntegrationTlsConfigOutput) InsecureSkipVerification() pulumi.BoolPtrOutput { + return o.ApplyT(func(v IntegrationTlsConfig) *bool { return v.InsecureSkipVerification }).(pulumi.BoolPtrOutput) +} + +type IntegrationTlsConfigPtrOutput struct{ *pulumi.OutputState } + +func (IntegrationTlsConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**IntegrationTlsConfig)(nil)).Elem() +} + +func (o IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutput() IntegrationTlsConfigPtrOutput { + return o +} + +func (o IntegrationTlsConfigPtrOutput) ToIntegrationTlsConfigPtrOutputWithContext(ctx context.Context) IntegrationTlsConfigPtrOutput { + return o +} + +func (o IntegrationTlsConfigPtrOutput) Elem() IntegrationTlsConfigOutput { + return o.ApplyT(func(v *IntegrationTlsConfig) IntegrationTlsConfig { return *v }).(IntegrationTlsConfigOutput) +} + +// Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. +func (o IntegrationTlsConfigPtrOutput) InsecureSkipVerification() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *IntegrationTlsConfig) *bool { + if v == nil { + return nil + } + return v.InsecureSkipVerification + }).(pulumi.BoolPtrOutput) +} + type MethodSettingsSettings struct { // Specifies whether the cached responses are encrypted. CacheDataEncrypted *bool `pulumi:"cacheDataEncrypted"` @@ -1529,6 +1814,103 @@ func (o UsagePlanThrottleSettingsPtrOutput) RateLimit() pulumi.Float64PtrOutput }).(pulumi.Float64PtrOutput) } +type GetDomainNameEndpointConfiguration struct { + // List of endpoint types. + Types []string `pulumi:"types"` +} + +// GetDomainNameEndpointConfigurationInput is an input type that accepts GetDomainNameEndpointConfigurationArgs and GetDomainNameEndpointConfigurationOutput values. +// You can construct a concrete instance of `GetDomainNameEndpointConfigurationInput` via: +// +// GetDomainNameEndpointConfigurationArgs{...} +type GetDomainNameEndpointConfigurationInput interface { + pulumi.Input + + ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput + ToGetDomainNameEndpointConfigurationOutputWithContext(context.Context) GetDomainNameEndpointConfigurationOutput +} + +type GetDomainNameEndpointConfigurationArgs struct { + // List of endpoint types. + Types pulumi.StringArrayInput `pulumi:"types"` +} + +func (GetDomainNameEndpointConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDomainNameEndpointConfiguration)(nil)).Elem() +} + +func (i GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput { + return i.ToGetDomainNameEndpointConfigurationOutputWithContext(context.Background()) +} + +func (i GetDomainNameEndpointConfigurationArgs) ToGetDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDomainNameEndpointConfigurationOutput) +} + +// GetDomainNameEndpointConfigurationArrayInput is an input type that accepts GetDomainNameEndpointConfigurationArray and GetDomainNameEndpointConfigurationArrayOutput values. +// You can construct a concrete instance of `GetDomainNameEndpointConfigurationArrayInput` via: +// +// GetDomainNameEndpointConfigurationArray{ GetDomainNameEndpointConfigurationArgs{...} } +type GetDomainNameEndpointConfigurationArrayInput interface { + pulumi.Input + + ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput + ToGetDomainNameEndpointConfigurationArrayOutputWithContext(context.Context) GetDomainNameEndpointConfigurationArrayOutput +} + +type GetDomainNameEndpointConfigurationArray []GetDomainNameEndpointConfigurationInput + +func (GetDomainNameEndpointConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDomainNameEndpointConfiguration)(nil)).Elem() +} + +func (i GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput { + return i.ToGetDomainNameEndpointConfigurationArrayOutputWithContext(context.Background()) +} + +func (i GetDomainNameEndpointConfigurationArray) ToGetDomainNameEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDomainNameEndpointConfigurationArrayOutput) +} + +type GetDomainNameEndpointConfigurationOutput struct{ *pulumi.OutputState } + +func (GetDomainNameEndpointConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDomainNameEndpointConfiguration)(nil)).Elem() +} + +func (o GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutput() GetDomainNameEndpointConfigurationOutput { + return o +} + +func (o GetDomainNameEndpointConfigurationOutput) ToGetDomainNameEndpointConfigurationOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationOutput { + return o +} + +// List of endpoint types. +func (o GetDomainNameEndpointConfigurationOutput) Types() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetDomainNameEndpointConfiguration) []string { return v.Types }).(pulumi.StringArrayOutput) +} + +type GetDomainNameEndpointConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (GetDomainNameEndpointConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDomainNameEndpointConfiguration)(nil)).Elem() +} + +func (o GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutput() GetDomainNameEndpointConfigurationArrayOutput { + return o +} + +func (o GetDomainNameEndpointConfigurationArrayOutput) ToGetDomainNameEndpointConfigurationArrayOutputWithContext(ctx context.Context) GetDomainNameEndpointConfigurationArrayOutput { + return o +} + +func (o GetDomainNameEndpointConfigurationArrayOutput) Index(i pulumi.IntInput) GetDomainNameEndpointConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDomainNameEndpointConfiguration { + return vs[0].([]GetDomainNameEndpointConfiguration)[vs[1].(int)] + }).(GetDomainNameEndpointConfigurationOutput) +} + type GetRestApiEndpointConfiguration struct { Types []string `pulumi:"types"` VpcEndpointIds []string `pulumi:"vpcEndpointIds"` @@ -1636,6 +2018,10 @@ func init() { pulumi.RegisterOutputType(DocumentationPartLocationPtrOutput{}) pulumi.RegisterOutputType(DomainNameEndpointConfigurationOutput{}) pulumi.RegisterOutputType(DomainNameEndpointConfigurationPtrOutput{}) + pulumi.RegisterOutputType(DomainNameMutualTlsAuthenticationOutput{}) + pulumi.RegisterOutputType(DomainNameMutualTlsAuthenticationPtrOutput{}) + pulumi.RegisterOutputType(IntegrationTlsConfigOutput{}) + pulumi.RegisterOutputType(IntegrationTlsConfigPtrOutput{}) pulumi.RegisterOutputType(MethodSettingsSettingsOutput{}) pulumi.RegisterOutputType(MethodSettingsSettingsPtrOutput{}) pulumi.RegisterOutputType(RestApiEndpointConfigurationOutput{}) @@ -1648,6 +2034,8 @@ func init() { pulumi.RegisterOutputType(UsagePlanQuotaSettingsPtrOutput{}) pulumi.RegisterOutputType(UsagePlanThrottleSettingsOutput{}) pulumi.RegisterOutputType(UsagePlanThrottleSettingsPtrOutput{}) + pulumi.RegisterOutputType(GetDomainNameEndpointConfigurationOutput{}) + pulumi.RegisterOutputType(GetDomainNameEndpointConfigurationArrayOutput{}) pulumi.RegisterOutputType(GetRestApiEndpointConfigurationOutput{}) pulumi.RegisterOutputType(GetRestApiEndpointConfigurationArrayOutput{}) } diff --git a/sdk/go/aws/apigateway/response.go b/sdk/go/aws/apigateway/response.go index c0878b028b7..a239f84c75d 100644 --- a/sdk/go/aws/apigateway/response.go +++ b/sdk/go/aws/apigateway/response.go @@ -36,7 +36,7 @@ import ( // StatusCode: pulumi.String("401"), // ResponseType: pulumi.String("UNAUTHORIZED"), // ResponseTemplates: pulumi.StringMap{ -// "application/json": pulumi.String(fmt.Sprintf("%v%v%v", "{'message':", "$", "context.error.messageString}")), +// "application/json": pulumi.String(fmt.Sprintf("%v%v%v", "{\"message\":", "$", "context.error.messageString}")), // }, // ResponseParameters: pulumi.StringMap{ // "gatewayresponse.header.Authorization": pulumi.String("'Basic'"), diff --git a/sdk/go/aws/apigateway/restApi.go b/sdk/go/aws/apigateway/restApi.go index 29be616cf38..53af919814e 100644 --- a/sdk/go/aws/apigateway/restApi.go +++ b/sdk/go/aws/apigateway/restApi.go @@ -84,6 +84,8 @@ type RestApi struct { CreatedDate pulumi.StringOutput `pulumi:"createdDate"` // The description of the REST API Description pulumi.StringPtrOutput `pulumi:"description"` + // Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + DisableExecuteApiEndpoint pulumi.BoolPtrOutput `pulumi:"disableExecuteApiEndpoint"` // Nested argument defining API endpoint configuration including endpoint type. Defined below. EndpointConfiguration RestApiEndpointConfigurationOutput `pulumi:"endpointConfiguration"` // The execution ARN part to be used in `lambdaPermission`'s `sourceArn` @@ -94,6 +96,8 @@ type RestApi struct { MinimumCompressionSize pulumi.IntPtrOutput `pulumi:"minimumCompressionSize"` // The name of the REST API Name pulumi.StringOutput `pulumi:"name"` + // Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + Parameters pulumi.StringMapOutput `pulumi:"parameters"` // JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. Policy pulumi.StringOutput `pulumi:"policy"` // The resource ID of the REST API's root @@ -143,6 +147,8 @@ type restApiState struct { CreatedDate *string `pulumi:"createdDate"` // The description of the REST API Description *string `pulumi:"description"` + // Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + DisableExecuteApiEndpoint *bool `pulumi:"disableExecuteApiEndpoint"` // Nested argument defining API endpoint configuration including endpoint type. Defined below. EndpointConfiguration *RestApiEndpointConfiguration `pulumi:"endpointConfiguration"` // The execution ARN part to be used in `lambdaPermission`'s `sourceArn` @@ -153,6 +159,8 @@ type restApiState struct { MinimumCompressionSize *int `pulumi:"minimumCompressionSize"` // The name of the REST API Name *string `pulumi:"name"` + // Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + Parameters map[string]string `pulumi:"parameters"` // JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. Policy *string `pulumi:"policy"` // The resource ID of the REST API's root @@ -174,6 +182,8 @@ type RestApiState struct { CreatedDate pulumi.StringPtrInput // The description of the REST API Description pulumi.StringPtrInput + // Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + DisableExecuteApiEndpoint pulumi.BoolPtrInput // Nested argument defining API endpoint configuration including endpoint type. Defined below. EndpointConfiguration RestApiEndpointConfigurationPtrInput // The execution ARN part to be used in `lambdaPermission`'s `sourceArn` @@ -184,6 +194,8 @@ type RestApiState struct { MinimumCompressionSize pulumi.IntPtrInput // The name of the REST API Name pulumi.StringPtrInput + // Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + Parameters pulumi.StringMapInput // JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. Policy pulumi.StringPtrInput // The resource ID of the REST API's root @@ -205,12 +217,16 @@ type restApiArgs struct { Body *string `pulumi:"body"` // The description of the REST API Description *string `pulumi:"description"` + // Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + DisableExecuteApiEndpoint *bool `pulumi:"disableExecuteApiEndpoint"` // Nested argument defining API endpoint configuration including endpoint type. Defined below. EndpointConfiguration *RestApiEndpointConfiguration `pulumi:"endpointConfiguration"` // Minimum response size to compress for the REST API. Integer between -1 and 10485760 (10MB). Setting a value greater than -1 will enable compression, -1 disables compression (default). MinimumCompressionSize *int `pulumi:"minimumCompressionSize"` // The name of the REST API Name *string `pulumi:"name"` + // Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + Parameters map[string]string `pulumi:"parameters"` // JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. Policy *string `pulumi:"policy"` // Key-value map of resource tags @@ -227,12 +243,16 @@ type RestApiArgs struct { Body pulumi.StringPtrInput // The description of the REST API Description pulumi.StringPtrInput + // Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + DisableExecuteApiEndpoint pulumi.BoolPtrInput // Nested argument defining API endpoint configuration including endpoint type. Defined below. EndpointConfiguration RestApiEndpointConfigurationPtrInput // Minimum response size to compress for the REST API. Integer between -1 and 10485760 (10MB). Setting a value greater than -1 will enable compression, -1 disables compression (default). MinimumCompressionSize pulumi.IntPtrInput // The name of the REST API Name pulumi.StringPtrInput + // Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + Parameters pulumi.StringMapInput // JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. Policy pulumi.StringPtrInput // Key-value map of resource tags diff --git a/sdk/go/aws/apigatewayv2/integration.go b/sdk/go/aws/apigatewayv2/integration.go index 78155d75dd5..750ecca11f4 100644 --- a/sdk/go/aws/apigatewayv2/integration.go +++ b/sdk/go/aws/apigatewayv2/integration.go @@ -110,11 +110,15 @@ type Integration struct { PassthroughBehavior pulumi.StringPtrOutput `pulumi:"passthroughBehavior"` // The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. PayloadFormatVersion pulumi.StringPtrOutput `pulumi:"payloadFormatVersion"` - // A key-value map specifying request parameters that are passed from the method request to the backend. - // Supported only for WebSocket APIs. + // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. RequestParameters pulumi.StringMapOutput `pulumi:"requestParameters"` - // A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + // A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. RequestTemplates pulumi.StringMapOutput `pulumi:"requestTemplates"` + // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + ResponseParameters IntegrationResponseParameterArrayOutput `pulumi:"responseParameters"` // The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. TemplateSelectionExpression pulumi.StringPtrOutput `pulumi:"templateSelectionExpression"` TimeoutMilliseconds pulumi.IntOutput `pulumi:"timeoutMilliseconds"` @@ -186,11 +190,15 @@ type integrationState struct { PassthroughBehavior *string `pulumi:"passthroughBehavior"` // The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. PayloadFormatVersion *string `pulumi:"payloadFormatVersion"` - // A key-value map specifying request parameters that are passed from the method request to the backend. - // Supported only for WebSocket APIs. + // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. RequestParameters map[string]string `pulumi:"requestParameters"` - // A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + // A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. RequestTemplates map[string]string `pulumi:"requestTemplates"` + // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + ResponseParameters []IntegrationResponseParameter `pulumi:"responseParameters"` // The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. TemplateSelectionExpression *string `pulumi:"templateSelectionExpression"` TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` @@ -228,11 +236,15 @@ type IntegrationState struct { PassthroughBehavior pulumi.StringPtrInput // The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. PayloadFormatVersion pulumi.StringPtrInput - // A key-value map specifying request parameters that are passed from the method request to the backend. - // Supported only for WebSocket APIs. + // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. RequestParameters pulumi.StringMapInput - // A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + // A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. RequestTemplates pulumi.StringMapInput + // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + ResponseParameters IntegrationResponseParameterArrayInput // The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. TemplateSelectionExpression pulumi.StringPtrInput TimeoutMilliseconds pulumi.IntPtrInput @@ -272,11 +284,15 @@ type integrationArgs struct { PassthroughBehavior *string `pulumi:"passthroughBehavior"` // The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. PayloadFormatVersion *string `pulumi:"payloadFormatVersion"` - // A key-value map specifying request parameters that are passed from the method request to the backend. - // Supported only for WebSocket APIs. + // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. RequestParameters map[string]string `pulumi:"requestParameters"` - // A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + // A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. RequestTemplates map[string]string `pulumi:"requestTemplates"` + // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + ResponseParameters []IntegrationResponseParameter `pulumi:"responseParameters"` // The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. TemplateSelectionExpression *string `pulumi:"templateSelectionExpression"` TimeoutMilliseconds *int `pulumi:"timeoutMilliseconds"` @@ -313,11 +329,15 @@ type IntegrationArgs struct { PassthroughBehavior pulumi.StringPtrInput // The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. PayloadFormatVersion pulumi.StringPtrInput - // A key-value map specifying request parameters that are passed from the method request to the backend. - // Supported only for WebSocket APIs. + // For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + // For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + // For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. RequestParameters pulumi.StringMapInput - // A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + // A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. RequestTemplates pulumi.StringMapInput + // Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + ResponseParameters IntegrationResponseParameterArrayInput // The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. TemplateSelectionExpression pulumi.StringPtrInput TimeoutMilliseconds pulumi.IntPtrInput diff --git a/sdk/go/aws/apigatewayv2/pulumiTypes.go b/sdk/go/aws/apigatewayv2/pulumiTypes.go index 3914823b5cf..3cbdb64fcb3 100644 --- a/sdk/go/aws/apigatewayv2/pulumiTypes.go +++ b/sdk/go/aws/apigatewayv2/pulumiTypes.go @@ -751,6 +751,115 @@ func (o DomainNameMutualTlsAuthenticationPtrOutput) TruststoreVersion() pulumi.S }).(pulumi.StringPtrOutput) } +type IntegrationResponseParameter struct { + // A 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. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + Mappings map[string]string `pulumi:"mappings"` + // The HTTP status code in the range 200-599. + StatusCode string `pulumi:"statusCode"` +} + +// IntegrationResponseParameterInput is an input type that accepts IntegrationResponseParameterArgs and IntegrationResponseParameterOutput values. +// You can construct a concrete instance of `IntegrationResponseParameterInput` via: +// +// IntegrationResponseParameterArgs{...} +type IntegrationResponseParameterInput interface { + pulumi.Input + + ToIntegrationResponseParameterOutput() IntegrationResponseParameterOutput + ToIntegrationResponseParameterOutputWithContext(context.Context) IntegrationResponseParameterOutput +} + +type IntegrationResponseParameterArgs struct { + // A 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. + // See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + Mappings pulumi.StringMapInput `pulumi:"mappings"` + // The HTTP status code in the range 200-599. + StatusCode pulumi.StringInput `pulumi:"statusCode"` +} + +func (IntegrationResponseParameterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*IntegrationResponseParameter)(nil)).Elem() +} + +func (i IntegrationResponseParameterArgs) ToIntegrationResponseParameterOutput() IntegrationResponseParameterOutput { + return i.ToIntegrationResponseParameterOutputWithContext(context.Background()) +} + +func (i IntegrationResponseParameterArgs) ToIntegrationResponseParameterOutputWithContext(ctx context.Context) IntegrationResponseParameterOutput { + return pulumi.ToOutputWithContext(ctx, i).(IntegrationResponseParameterOutput) +} + +// IntegrationResponseParameterArrayInput is an input type that accepts IntegrationResponseParameterArray and IntegrationResponseParameterArrayOutput values. +// You can construct a concrete instance of `IntegrationResponseParameterArrayInput` via: +// +// IntegrationResponseParameterArray{ IntegrationResponseParameterArgs{...} } +type IntegrationResponseParameterArrayInput interface { + pulumi.Input + + ToIntegrationResponseParameterArrayOutput() IntegrationResponseParameterArrayOutput + ToIntegrationResponseParameterArrayOutputWithContext(context.Context) IntegrationResponseParameterArrayOutput +} + +type IntegrationResponseParameterArray []IntegrationResponseParameterInput + +func (IntegrationResponseParameterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]IntegrationResponseParameter)(nil)).Elem() +} + +func (i IntegrationResponseParameterArray) ToIntegrationResponseParameterArrayOutput() IntegrationResponseParameterArrayOutput { + return i.ToIntegrationResponseParameterArrayOutputWithContext(context.Background()) +} + +func (i IntegrationResponseParameterArray) ToIntegrationResponseParameterArrayOutputWithContext(ctx context.Context) IntegrationResponseParameterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(IntegrationResponseParameterArrayOutput) +} + +type IntegrationResponseParameterOutput struct{ *pulumi.OutputState } + +func (IntegrationResponseParameterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*IntegrationResponseParameter)(nil)).Elem() +} + +func (o IntegrationResponseParameterOutput) ToIntegrationResponseParameterOutput() IntegrationResponseParameterOutput { + return o +} + +func (o IntegrationResponseParameterOutput) ToIntegrationResponseParameterOutputWithContext(ctx context.Context) IntegrationResponseParameterOutput { + return o +} + +// A 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. +// See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. +func (o IntegrationResponseParameterOutput) Mappings() pulumi.StringMapOutput { + return o.ApplyT(func(v IntegrationResponseParameter) map[string]string { return v.Mappings }).(pulumi.StringMapOutput) +} + +// The HTTP status code in the range 200-599. +func (o IntegrationResponseParameterOutput) StatusCode() pulumi.StringOutput { + return o.ApplyT(func(v IntegrationResponseParameter) string { return v.StatusCode }).(pulumi.StringOutput) +} + +type IntegrationResponseParameterArrayOutput struct{ *pulumi.OutputState } + +func (IntegrationResponseParameterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]IntegrationResponseParameter)(nil)).Elem() +} + +func (o IntegrationResponseParameterArrayOutput) ToIntegrationResponseParameterArrayOutput() IntegrationResponseParameterArrayOutput { + return o +} + +func (o IntegrationResponseParameterArrayOutput) ToIntegrationResponseParameterArrayOutputWithContext(ctx context.Context) IntegrationResponseParameterArrayOutput { + return o +} + +func (o IntegrationResponseParameterArrayOutput) Index(i pulumi.IntInput) IntegrationResponseParameterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) IntegrationResponseParameter { + return vs[0].([]IntegrationResponseParameter)[vs[1].(int)] + }).(IntegrationResponseParameterOutput) +} + type IntegrationTlsConfig struct { // If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. ServerNameToVerify *string `pulumi:"serverNameToVerify"` @@ -1404,6 +1513,8 @@ func init() { pulumi.RegisterOutputType(DomainNameDomainNameConfigurationPtrOutput{}) pulumi.RegisterOutputType(DomainNameMutualTlsAuthenticationOutput{}) pulumi.RegisterOutputType(DomainNameMutualTlsAuthenticationPtrOutput{}) + pulumi.RegisterOutputType(IntegrationResponseParameterOutput{}) + pulumi.RegisterOutputType(IntegrationResponseParameterArrayOutput{}) pulumi.RegisterOutputType(IntegrationTlsConfigOutput{}) pulumi.RegisterOutputType(IntegrationTlsConfigPtrOutput{}) pulumi.RegisterOutputType(StageAccessLogSettingsOutput{}) diff --git a/sdk/go/aws/appmesh/pulumiTypes.go b/sdk/go/aws/appmesh/pulumiTypes.go index 7a4f89c5269..02d4d1f1e1a 100644 --- a/sdk/go/aws/appmesh/pulumiTypes.go +++ b/sdk/go/aws/appmesh/pulumiTypes.go @@ -2694,7 +2694,7 @@ type RouteSpecGrpcRoute struct { // The action to take if a match is determined. Action RouteSpecGrpcRouteAction `pulumi:"action"` // The criteria for determining an gRPC request match. - Match RouteSpecGrpcRouteMatch `pulumi:"match"` + Match *RouteSpecGrpcRouteMatch `pulumi:"match"` // The retry policy. RetryPolicy *RouteSpecGrpcRouteRetryPolicy `pulumi:"retryPolicy"` // The types of timeouts. @@ -2716,7 +2716,7 @@ type RouteSpecGrpcRouteArgs struct { // The action to take if a match is determined. Action RouteSpecGrpcRouteActionInput `pulumi:"action"` // The criteria for determining an gRPC request match. - Match RouteSpecGrpcRouteMatchInput `pulumi:"match"` + Match RouteSpecGrpcRouteMatchPtrInput `pulumi:"match"` // The retry policy. RetryPolicy RouteSpecGrpcRouteRetryPolicyPtrInput `pulumi:"retryPolicy"` // The types of timeouts. @@ -2806,8 +2806,8 @@ func (o RouteSpecGrpcRouteOutput) Action() RouteSpecGrpcRouteActionOutput { } // The criteria for determining an gRPC request match. -func (o RouteSpecGrpcRouteOutput) Match() RouteSpecGrpcRouteMatchOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) RouteSpecGrpcRouteMatch { return v.Match }).(RouteSpecGrpcRouteMatchOutput) +func (o RouteSpecGrpcRouteOutput) Match() RouteSpecGrpcRouteMatchPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRouteMatch { return v.Match }).(RouteSpecGrpcRouteMatchPtrOutput) } // The retry policy. @@ -2854,7 +2854,7 @@ func (o RouteSpecGrpcRoutePtrOutput) Match() RouteSpecGrpcRouteMatchPtrOutput { if v == nil { return nil } - return &v.Match + return v.Match }).(RouteSpecGrpcRouteMatchPtrOutput) } diff --git a/sdk/go/aws/autoscaling/pulumiTypes.go b/sdk/go/aws/autoscaling/pulumiTypes.go index 79ef272d75e..a671080c356 100644 --- a/sdk/go/aws/autoscaling/pulumiTypes.go +++ b/sdk/go/aws/autoscaling/pulumiTypes.go @@ -313,6 +313,7 @@ func (o GroupInstanceRefreshPtrOutput) Triggers() pulumi.StringArrayOutput { } type GroupInstanceRefreshPreferences struct { + // The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. InstanceWarmup *string `pulumi:"instanceWarmup"` // The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. MinHealthyPercentage *int `pulumi:"minHealthyPercentage"` @@ -330,6 +331,7 @@ type GroupInstanceRefreshPreferencesInput interface { } type GroupInstanceRefreshPreferencesArgs struct { + // The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. InstanceWarmup pulumi.StringPtrInput `pulumi:"instanceWarmup"` // The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. MinHealthyPercentage pulumi.IntPtrInput `pulumi:"minHealthyPercentage"` @@ -411,6 +413,8 @@ func (o GroupInstanceRefreshPreferencesOutput) ToGroupInstanceRefreshPreferences return &v }).(GroupInstanceRefreshPreferencesPtrOutput) } + +// The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. func (o GroupInstanceRefreshPreferencesOutput) InstanceWarmup() pulumi.StringPtrOutput { return o.ApplyT(func(v GroupInstanceRefreshPreferences) *string { return v.InstanceWarmup }).(pulumi.StringPtrOutput) } @@ -438,6 +442,7 @@ func (o GroupInstanceRefreshPreferencesPtrOutput) Elem() GroupInstanceRefreshPre return o.ApplyT(func(v *GroupInstanceRefreshPreferences) GroupInstanceRefreshPreferences { return *v }).(GroupInstanceRefreshPreferencesOutput) } +// The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. func (o GroupInstanceRefreshPreferencesPtrOutput) InstanceWarmup() pulumi.StringPtrOutput { return o.ApplyT(func(v *GroupInstanceRefreshPreferences) *string { if v == nil { diff --git a/sdk/go/aws/cloudwatch/compositeAlarm.go b/sdk/go/aws/cloudwatch/compositeAlarm.go new file mode 100644 index 00000000000..3f8dda6543b --- /dev/null +++ b/sdk/go/aws/cloudwatch/compositeAlarm.go @@ -0,0 +1,204 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package cloudwatch + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// ## Import +// +// Use the `alarm_name` to import a CloudWatch Composite Alarm. For example +// +// ```sh +// $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm +// ``` +type CompositeAlarm struct { + pulumi.CustomResourceState + + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrOutput `pulumi:"actionsEnabled"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayOutput `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrOutput `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringOutput `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringOutput `pulumi:"alarmRule"` + // The ARN of the composite alarm. + Arn pulumi.StringOutput `pulumi:"arn"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayOutput `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayOutput `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. + Tags pulumi.StringMapOutput `pulumi:"tags"` +} + +// NewCompositeAlarm registers a new resource with the given unique name, arguments, and options. +func NewCompositeAlarm(ctx *pulumi.Context, + name string, args *CompositeAlarmArgs, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AlarmName == nil { + return nil, errors.New("invalid value for required argument 'AlarmName'") + } + if args.AlarmRule == nil { + return nil, errors.New("invalid value for required argument 'AlarmRule'") + } + var resource CompositeAlarm + err := ctx.RegisterResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCompositeAlarm gets an existing CompositeAlarm resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCompositeAlarm(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CompositeAlarmState, opts ...pulumi.ResourceOption) (*CompositeAlarm, error) { + var resource CompositeAlarm + err := ctx.ReadResource("aws:cloudwatch/compositeAlarm:CompositeAlarm", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CompositeAlarm resources. +type compositeAlarmState struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions []string `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName *string `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule *string `pulumi:"alarmRule"` + // The ARN of the composite alarm. + Arn *string `pulumi:"arn"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions []string `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions []string `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. + Tags map[string]string `pulumi:"tags"` +} + +type CompositeAlarmState struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayInput + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrInput + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringPtrInput + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringPtrInput + // The ARN of the composite alarm. + Arn pulumi.StringPtrInput + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayInput + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayInput + // A map of tags to associate with the alarm. Up to 50 tags are allowed. + Tags pulumi.StringMapInput +} + +func (CompositeAlarmState) ElementType() reflect.Type { + return reflect.TypeOf((*compositeAlarmState)(nil)).Elem() +} + +type compositeAlarmArgs struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled *bool `pulumi:"actionsEnabled"` + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions []string `pulumi:"alarmActions"` + // The description for the composite alarm. + AlarmDescription *string `pulumi:"alarmDescription"` + // The name for the composite alarm. This name must be unique within the region. + AlarmName string `pulumi:"alarmName"` + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule string `pulumi:"alarmRule"` + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions []string `pulumi:"insufficientDataActions"` + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions []string `pulumi:"okActions"` + // A map of tags to associate with the alarm. Up to 50 tags are allowed. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a CompositeAlarm resource. +type CompositeAlarmArgs struct { + // Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + ActionsEnabled pulumi.BoolPtrInput + // The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + AlarmActions pulumi.StringArrayInput + // The description for the composite alarm. + AlarmDescription pulumi.StringPtrInput + // The name for the composite alarm. This name must be unique within the region. + AlarmName pulumi.StringInput + // An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + AlarmRule pulumi.StringInput + // The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + InsufficientDataActions pulumi.StringArrayInput + // The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + OkActions pulumi.StringArrayInput + // A map of tags to associate with the alarm. Up to 50 tags are allowed. + Tags pulumi.StringMapInput +} + +func (CompositeAlarmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*compositeAlarmArgs)(nil)).Elem() +} + +type CompositeAlarmInput interface { + pulumi.Input + + ToCompositeAlarmOutput() CompositeAlarmOutput + ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput +} + +func (*CompositeAlarm) ElementType() reflect.Type { + return reflect.TypeOf((*CompositeAlarm)(nil)) +} + +func (i *CompositeAlarm) ToCompositeAlarmOutput() CompositeAlarmOutput { + return i.ToCompositeAlarmOutputWithContext(context.Background()) +} + +func (i *CompositeAlarm) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput { + return pulumi.ToOutputWithContext(ctx, i).(CompositeAlarmOutput) +} + +type CompositeAlarmOutput struct { + *pulumi.OutputState +} + +func (CompositeAlarmOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CompositeAlarm)(nil)) +} + +func (o CompositeAlarmOutput) ToCompositeAlarmOutput() CompositeAlarmOutput { + return o +} + +func (o CompositeAlarmOutput) ToCompositeAlarmOutputWithContext(ctx context.Context) CompositeAlarmOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(CompositeAlarmOutput{}) +} diff --git a/sdk/go/aws/codepipeline/pipeline.go b/sdk/go/aws/codepipeline/pipeline.go index 5b2b900de2f..3f89a8639b2 100644 --- a/sdk/go/aws/codepipeline/pipeline.go +++ b/sdk/go/aws/codepipeline/pipeline.go @@ -13,6 +13,143 @@ import ( // Provides a CodePipeline. // +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codepipeline" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codestarconnections" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/kms" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := codestarconnections.NewConnection(ctx, "example", &codestarconnections.ConnectionArgs{ +// ProviderType: pulumi.String("GitHub"), +// }) +// if err != nil { +// return err +// } +// codepipelineBucket, err := s3.NewBucket(ctx, "codepipelineBucket", &s3.BucketArgs{ +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// codepipelineRole, err := iam.NewRole(ctx, "codepipelineRole", &iam.RoleArgs{ +// AssumeRolePolicy: pulumi.String(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v", "{\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")), +// }) +// if err != nil { +// return err +// } +// s3kmskey, err := kms.LookupAlias(ctx, &kms.LookupAliasArgs{ +// Name: "alias/myKmsKey", +// }, nil) +// if err != nil { +// return err +// } +// _, err = codepipeline.NewPipeline(ctx, "codepipeline", &codepipeline.PipelineArgs{ +// RoleArn: codepipelineRole.Arn, +// ArtifactStore: &codepipeline.PipelineArtifactStoreArgs{ +// Location: codepipelineBucket.Bucket, +// Type: pulumi.String("S3"), +// EncryptionKey: &codepipeline.PipelineArtifactStoreEncryptionKeyArgs{ +// Id: pulumi.String(s3kmskey.Arn), +// Type: pulumi.String("KMS"), +// }, +// }, +// Stages: codepipeline.PipelineStageArray{ +// &codepipeline.PipelineStageArgs{ +// Name: pulumi.String("Source"), +// Actions: codepipeline.PipelineStageActionArray{ +// &codepipeline.PipelineStageActionArgs{ +// Name: pulumi.String("Source"), +// Category: pulumi.String("Source"), +// Owner: pulumi.String("AWS"), +// Provider: pulumi.String("CodeStarSourceConnection"), +// Version: pulumi.String("1"), +// OutputArtifacts: pulumi.StringArray{ +// pulumi.String("source_output"), +// }, +// Configuration: pulumi.StringMap{ +// "ConnectionArn": example.Arn, +// "FullRepositoryId": pulumi.String("my-organization/example"), +// "BranchName": pulumi.String("main"), +// }, +// }, +// }, +// }, +// &codepipeline.PipelineStageArgs{ +// Name: pulumi.String("Build"), +// Actions: codepipeline.PipelineStageActionArray{ +// &codepipeline.PipelineStageActionArgs{ +// Name: pulumi.String("Build"), +// Category: pulumi.String("Build"), +// Owner: pulumi.String("AWS"), +// Provider: pulumi.String("CodeBuild"), +// InputArtifacts: pulumi.StringArray{ +// pulumi.String("source_output"), +// }, +// OutputArtifacts: pulumi.StringArray{ +// pulumi.String("build_output"), +// }, +// Version: pulumi.String("1"), +// Configuration: pulumi.StringMap{ +// "ProjectName": pulumi.String("test"), +// }, +// }, +// }, +// }, +// &codepipeline.PipelineStageArgs{ +// Name: pulumi.String("Deploy"), +// Actions: codepipeline.PipelineStageActionArray{ +// &codepipeline.PipelineStageActionArgs{ +// Name: pulumi.String("Deploy"), +// Category: pulumi.String("Deploy"), +// Owner: pulumi.String("AWS"), +// Provider: pulumi.String("CloudFormation"), +// InputArtifacts: pulumi.StringArray{ +// pulumi.String("build_output"), +// }, +// Version: pulumi.String("1"), +// Configuration: pulumi.StringMap{ +// "ActionMode": pulumi.String("REPLACE_ON_FAILURE"), +// "Capabilities": pulumi.String("CAPABILITY_AUTO_EXPAND,CAPABILITY_IAM"), +// "OutputFileName": pulumi.String("CreateStackOutput.json"), +// "StackName": pulumi.String("MyStack"), +// "TemplatePath": pulumi.String("build_output::sam-templated.yaml"), +// }, +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicy(ctx, "codepipelinePolicy", &iam.RolePolicyArgs{ +// Role: codepipelineRole.ID(), +// Policy: pulumi.All(codepipelineBucket.Arn, codepipelineBucket.Arn).ApplyT(func(_args []interface{}) (string, error) { +// codepipelineBucketArn := _args[0].(string) +// codepipelineBucketArn1 := _args[1].(string) +// return fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", " \"Version\": \"2012-10-17\",\n", " \"Statement\": [\n", " {\n", " \"Effect\":\"Allow\",\n", " \"Action\": [\n", " \"s3:GetObject\",\n", " \"s3:GetObjectVersion\",\n", " \"s3:GetBucketVersioning\",\n", " \"s3:PutObject\"\n", " ],\n", " \"Resource\": [\n", " \"", codepipelineBucketArn, "\",\n", " \"", codepipelineBucketArn1, "/*\"\n", " ]\n", " },\n", " {\n", " \"Effect\": \"Allow\",\n", " \"Action\": [\n", " \"codebuild:BatchGetBuilds\",\n", " \"codebuild:StartBuild\"\n", " ],\n", " \"Resource\": \"*\"\n", " }\n", " ]\n", "}\n"), nil +// }).(pulumi.StringOutput), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// // ## Import // // CodePipelines can be imported using the name, e.g. diff --git a/sdk/go/aws/codepipeline/pulumiTypes.go b/sdk/go/aws/codepipeline/pulumiTypes.go index 100f4235fed..cec803b1c38 100644 --- a/sdk/go/aws/codepipeline/pulumiTypes.go +++ b/sdk/go/aws/codepipeline/pulumiTypes.go @@ -469,7 +469,7 @@ type PipelineStageAction struct { OutputArtifacts []string `pulumi:"outputArtifacts"` // The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. Owner string `pulumi:"owner"` - // The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + // The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Provider string `pulumi:"provider"` // The region in which to run the action. Region *string `pulumi:"region"` @@ -507,7 +507,7 @@ type PipelineStageActionArgs struct { OutputArtifacts pulumi.StringArrayInput `pulumi:"outputArtifacts"` // The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. Owner pulumi.StringInput `pulumi:"owner"` - // The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + // The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. Provider pulumi.StringInput `pulumi:"provider"` // The region in which to run the action. Region pulumi.StringPtrInput `pulumi:"region"` @@ -605,7 +605,7 @@ func (o PipelineStageActionOutput) Owner() pulumi.StringOutput { return o.ApplyT(func(v PipelineStageAction) string { return v.Owner }).(pulumi.StringOutput) } -// The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. +// The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. func (o PipelineStageActionOutput) Provider() pulumi.StringOutput { return o.ApplyT(func(v PipelineStageAction) string { return v.Provider }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/codestarconnections/connection.go b/sdk/go/aws/codestarconnections/connection.go index c850a637652..3fb0a79d147 100644 --- a/sdk/go/aws/codestarconnections/connection.go +++ b/sdk/go/aws/codestarconnections/connection.go @@ -51,10 +51,9 @@ import ( // pulumi.String("source_output"), // }, // Configuration: pulumi.StringMap{ -// "Owner": pulumi.String("my-organization"), -// "ConnectionArn": exampleConnection.Arn, -// "Repo": pulumi.String("foo/test"), -// "Branch": pulumi.String("master"), +// "ConnectionArn": exampleConnection.Arn, +// "FullRepositoryId": pulumi.String("my-organization/test"), +// "BranchName": pulumi.String("main"), // }, // }, // }, diff --git a/sdk/go/aws/dms/pulumiTypes.go b/sdk/go/aws/dms/pulumiTypes.go index 87066892c19..afd8b5cd3a2 100644 --- a/sdk/go/aws/dms/pulumiTypes.go +++ b/sdk/go/aws/dms/pulumiTypes.go @@ -754,6 +754,8 @@ type EndpointS3Settings struct { CsvDelimiter *string `pulumi:"csvDelimiter"` // Delimiter used to separate rows in the source files. Defaults to `\n`. CsvRowDelimiter *string `pulumi:"csvRowDelimiter"` + // Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + DatePartitionEnabled *bool `pulumi:"datePartitionEnabled"` // JSON document that describes how AWS DMS should interpret the data. ExternalTableDefinition *string `pulumi:"externalTableDefinition"` // Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket. @@ -782,6 +784,8 @@ type EndpointS3SettingsArgs struct { CsvDelimiter pulumi.StringPtrInput `pulumi:"csvDelimiter"` // Delimiter used to separate rows in the source files. Defaults to `\n`. CsvRowDelimiter pulumi.StringPtrInput `pulumi:"csvRowDelimiter"` + // Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + DatePartitionEnabled pulumi.BoolPtrInput `pulumi:"datePartitionEnabled"` // JSON document that describes how AWS DMS should interpret the data. ExternalTableDefinition pulumi.StringPtrInput `pulumi:"externalTableDefinition"` // Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket. @@ -890,6 +894,11 @@ func (o EndpointS3SettingsOutput) CsvRowDelimiter() pulumi.StringPtrOutput { return o.ApplyT(func(v EndpointS3Settings) *string { return v.CsvRowDelimiter }).(pulumi.StringPtrOutput) } +// Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. +func (o EndpointS3SettingsOutput) DatePartitionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v EndpointS3Settings) *bool { return v.DatePartitionEnabled }).(pulumi.BoolPtrOutput) +} + // JSON document that describes how AWS DMS should interpret the data. func (o EndpointS3SettingsOutput) ExternalTableDefinition() pulumi.StringPtrOutput { return o.ApplyT(func(v EndpointS3Settings) *string { return v.ExternalTableDefinition }).(pulumi.StringPtrOutput) @@ -968,6 +977,16 @@ func (o EndpointS3SettingsPtrOutput) CsvRowDelimiter() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. +func (o EndpointS3SettingsPtrOutput) DatePartitionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *EndpointS3Settings) *bool { + if v == nil { + return nil + } + return v.DatePartitionEnabled + }).(pulumi.BoolPtrOutput) +} + // JSON document that describes how AWS DMS should interpret the data. func (o EndpointS3SettingsPtrOutput) ExternalTableDefinition() pulumi.StringPtrOutput { return o.ApplyT(func(v *EndpointS3Settings) *string { diff --git a/sdk/go/aws/ec2/instance.go b/sdk/go/aws/ec2/instance.go index 3a5f59275a5..031c5aa6dfe 100644 --- a/sdk/go/aws/ec2/instance.go +++ b/sdk/go/aws/ec2/instance.go @@ -11,10 +11,10 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) -// Provides an EC2 instance resource. This allows instances to be created, updated, -// and deleted. +// Provides an EC2 instance resource. This allows instances to be created, updated, and deleted. // // ## Example Usage +// ### Basic Example Using AMI Lookup // // ```go // package main @@ -65,6 +65,70 @@ import ( // }) // } // ``` +// ### Network and Credit Specification Example +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// myVpc, err := ec2.NewVpc(ctx, "myVpc", &ec2.VpcArgs{ +// CidrBlock: pulumi.String("172.16.0.0/16"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("tf-example"), +// }, +// }) +// if err != nil { +// return err +// } +// mySubnet, err := ec2.NewSubnet(ctx, "mySubnet", &ec2.SubnetArgs{ +// VpcId: myVpc.ID(), +// CidrBlock: pulumi.String("172.16.10.0/24"), +// AvailabilityZone: pulumi.String("us-west-2a"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("tf-example"), +// }, +// }) +// if err != nil { +// return err +// } +// fooNetworkInterface, err := ec2.NewNetworkInterface(ctx, "fooNetworkInterface", &ec2.NetworkInterfaceArgs{ +// SubnetId: mySubnet.ID(), +// PrivateIps: pulumi.StringArray{ +// pulumi.String("172.16.10.100"), +// }, +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("primary_network_interface"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewInstance(ctx, "fooInstance", &ec2.InstanceArgs{ +// Ami: pulumi.String("ami-005e54dee72cc1d00"), +// InstanceType: pulumi.String("t2.micro"), +// NetworkInterfaces: ec2.InstanceNetworkInterfaceArray{ +// &ec2.InstanceNetworkInterfaceArgs{ +// NetworkInterfaceId: fooNetworkInterface.ID(), +// DeviceIndex: pulumi.Int(0), +// }, +// }, +// CreditSpecification: &ec2.InstanceCreditSpecificationArgs{ +// CpuCredits: pulumi.String("unlimited"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` // // ## Import // @@ -76,62 +140,49 @@ import ( type Instance struct { pulumi.CustomResourceState - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringOutput `pulumi:"ami"` // The ARN of the instance. Arn pulumi.StringOutput `pulumi:"arn"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolOutput `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntOutput `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntOutput `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification InstanceCreditSpecificationPtrOutput `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrOutput `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices InstanceEbsBlockDeviceArrayOutput `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrOutput `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions InstanceEnclaveOptionsOutput `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayOutput `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrOutput `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrOutput `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringOutput `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.StringPtrOutput `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrOutput `pulumi:"instanceInitiatedShutdownBehavior"` // The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped`. See [Instance Lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) for more information. InstanceState pulumi.StringOutput `pulumi:"instanceState"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringOutput `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntOutput `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayOutput `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringOutput `pulumi:"keyName"` // Customize the metadata options of the instance. See Metadata Options below for more details. MetadataOptions InstanceMetadataOptionsOutput `pulumi:"metadataOptions"` @@ -141,30 +192,21 @@ type Instance struct { NetworkInterfaces InstanceNetworkInterfaceArrayOutput `pulumi:"networkInterfaces"` // The ARN of the Outpost the instance is assigned to. OutpostArn pulumi.StringOutput `pulumi:"outpostArn"` - // Base-64 encoded encrypted password data for the instance. - // Useful for getting the administrator password for instances running Microsoft Windows. - // This attribute is only exported if `getPasswordData` is true. - // Note that this encrypted value will be stored in the state file, as with all exported attributes. - // See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + // Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `getPasswordData` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. PasswordData pulumi.StringOutput `pulumi:"passwordData"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringOutput `pulumi:"placementGroup"` // The ID of the instance's primary network interface. PrimaryNetworkInterfaceId pulumi.StringOutput `pulumi:"primaryNetworkInterfaceId"` - // The private DNS name assigned to the instance. Can only be - // used inside the Amazon EC2, and only available if you've enabled DNS hostnames - // for your VPC + // The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. PrivateDns pulumi.StringOutput `pulumi:"privateDns"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringOutput `pulumi:"privateIp"` - // The public DNS name assigned to the instance. For EC2-VPC, this - // is only available if you've enabled DNS hostnames for your VPC + // The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. PublicDns pulumi.StringOutput `pulumi:"publicDns"` - // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp`, as this field will change after the EIP is attached. + // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp` as this field will change after the EIP is attached. PublicIp pulumi.StringOutput `pulumi:"publicIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice InstanceRootBlockDeviceOutput `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayOutput `pulumi:"secondaryPrivateIps"` @@ -172,20 +214,19 @@ type Instance struct { // // Deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates. SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrOutput `pulumi:"sourceDestCheck"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringOutput `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapOutput `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringOutput `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrOutput `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrOutput `pulumi:"userDataBase64"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapOutput `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"` @@ -226,62 +267,49 @@ func GetInstance(ctx *pulumi.Context, // Input properties used for looking up and filtering Instance resources. type instanceState struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami *string `pulumi:"ami"` // The ARN of the instance. Arn *string `pulumi:"arn"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone *string `pulumi:"availabilityZone"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount *int `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore *int `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification *InstanceCreditSpecification `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination *bool `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices []InstanceEbsBlockDevice `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized *bool `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions *InstanceEnclaveOptions `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices []InstanceEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData *bool `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation *bool `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId *string `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile *string `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` // The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped`. See [Instance Lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) for more information. InstanceState *string `pulumi:"instanceState"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType *string `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount *int `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses []string `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName *string `pulumi:"keyName"` // Customize the metadata options of the instance. See Metadata Options below for more details. MetadataOptions *InstanceMetadataOptions `pulumi:"metadataOptions"` @@ -291,30 +319,21 @@ type instanceState struct { NetworkInterfaces []InstanceNetworkInterface `pulumi:"networkInterfaces"` // The ARN of the Outpost the instance is assigned to. OutpostArn *string `pulumi:"outpostArn"` - // Base-64 encoded encrypted password data for the instance. - // Useful for getting the administrator password for instances running Microsoft Windows. - // This attribute is only exported if `getPasswordData` is true. - // Note that this encrypted value will be stored in the state file, as with all exported attributes. - // See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + // Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `getPasswordData` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. PasswordData *string `pulumi:"passwordData"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup *string `pulumi:"placementGroup"` // The ID of the instance's primary network interface. PrimaryNetworkInterfaceId *string `pulumi:"primaryNetworkInterfaceId"` - // The private DNS name assigned to the instance. Can only be - // used inside the Amazon EC2, and only available if you've enabled DNS hostnames - // for your VPC + // The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. PrivateDns *string `pulumi:"privateDns"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp *string `pulumi:"privateIp"` - // The public DNS name assigned to the instance. For EC2-VPC, this - // is only available if you've enabled DNS hostnames for your VPC + // The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. PublicDns *string `pulumi:"publicDns"` - // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp`, as this field will change after the EIP is attached. + // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp` as this field will change after the EIP is attached. PublicIp *string `pulumi:"publicIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice *InstanceRootBlockDevice `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` @@ -322,82 +341,68 @@ type instanceState struct { // // Deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates. SecurityGroups []string `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck *bool `pulumi:"sourceDestCheck"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId *string `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags map[string]string `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy *string `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData *string `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 *string `pulumi:"userDataBase64"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags map[string]string `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` } type InstanceState struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringPtrInput // The ARN of the instance. Arn pulumi.StringPtrInput - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolPtrInput - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringPtrInput - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntPtrInput // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntPtrInput // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification InstanceCreditSpecificationPtrInput - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrInput - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices InstanceEbsBlockDeviceArrayInput - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrInput // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions InstanceEnclaveOptionsPtrInput - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayInput // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrInput // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrInput - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringPtrInput - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.StringPtrInput - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput // The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped`. See [Instance Lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) for more information. InstanceState pulumi.StringPtrInput - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringPtrInput // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntPtrInput // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayInput - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringPtrInput // Customize the metadata options of the instance. See Metadata Options below for more details. MetadataOptions InstanceMetadataOptionsPtrInput @@ -407,30 +412,21 @@ type InstanceState struct { NetworkInterfaces InstanceNetworkInterfaceArrayInput // The ARN of the Outpost the instance is assigned to. OutpostArn pulumi.StringPtrInput - // Base-64 encoded encrypted password data for the instance. - // Useful for getting the administrator password for instances running Microsoft Windows. - // This attribute is only exported if `getPasswordData` is true. - // Note that this encrypted value will be stored in the state file, as with all exported attributes. - // See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + // Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `getPasswordData` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. PasswordData pulumi.StringPtrInput - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringPtrInput // The ID of the instance's primary network interface. PrimaryNetworkInterfaceId pulumi.StringPtrInput - // The private DNS name assigned to the instance. Can only be - // used inside the Amazon EC2, and only available if you've enabled DNS hostnames - // for your VPC + // The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. PrivateDns pulumi.StringPtrInput - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringPtrInput - // The public DNS name assigned to the instance. For EC2-VPC, this - // is only available if you've enabled DNS hostnames for your VPC + // The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. PublicDns pulumi.StringPtrInput - // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp`, as this field will change after the EIP is attached. + // The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp` as this field will change after the EIP is attached. PublicIp pulumi.StringPtrInput - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice InstanceRootBlockDevicePtrInput // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput @@ -438,20 +434,19 @@ type InstanceState struct { // // Deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates. SecurityGroups pulumi.StringArrayInput - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrInput - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringPtrInput - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapInput - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringPtrInput - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrInput // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrInput - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapInput // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayInput @@ -462,58 +457,45 @@ func (InstanceState) ElementType() reflect.Type { } type instanceArgs struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami string `pulumi:"ami"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone *string `pulumi:"availabilityZone"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount *int `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore *int `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification *InstanceCreditSpecification `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination *bool `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices []InstanceEbsBlockDevice `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized *bool `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions *InstanceEnclaveOptions `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices []InstanceEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData *bool `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation *bool `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId *string `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile interface{} `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType string `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount *int `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses []string `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName *string `pulumi:"keyName"` // Customize the metadata options of the instance. See Metadata Options below for more details. MetadataOptions *InstanceMetadataOptions `pulumi:"metadataOptions"` @@ -521,13 +503,11 @@ type instanceArgs struct { Monitoring *bool `pulumi:"monitoring"` // Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. NetworkInterfaces []InstanceNetworkInterface `pulumi:"networkInterfaces"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup *string `pulumi:"placementGroup"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp *string `pulumi:"privateIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice *InstanceRootBlockDevice `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` @@ -535,20 +515,19 @@ type instanceArgs struct { // // Deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates. SecurityGroups []string `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck *bool `pulumi:"sourceDestCheck"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId *string `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags map[string]string `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy *string `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData *string `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 *string `pulumi:"userDataBase64"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags map[string]string `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` @@ -556,58 +535,45 @@ type instanceArgs struct { // The set of arguments for constructing a Instance resource. type InstanceArgs struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringInput - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolPtrInput - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringPtrInput - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntPtrInput // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntPtrInput // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification InstanceCreditSpecificationPtrInput - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrInput - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices InstanceEbsBlockDeviceArrayInput - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrInput // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions InstanceEnclaveOptionsPtrInput - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayInput // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrInput // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrInput - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringPtrInput - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.Input - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringInput // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntPtrInput // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayInput - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringPtrInput // Customize the metadata options of the instance. See Metadata Options below for more details. MetadataOptions InstanceMetadataOptionsPtrInput @@ -615,13 +581,11 @@ type InstanceArgs struct { Monitoring pulumi.BoolPtrInput // Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. NetworkInterfaces InstanceNetworkInterfaceArrayInput - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringPtrInput - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringPtrInput - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice InstanceRootBlockDevicePtrInput // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput @@ -629,20 +593,19 @@ type InstanceArgs struct { // // Deprecated: Use of `securityGroups` is discouraged as it does not allow for changes and will force your instance to be replaced if changes are made. To avoid this, use `vpcSecurityGroupIds` which allows for updates. SecurityGroups pulumi.StringArrayInput - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrInput - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringPtrInput - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapInput - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringPtrInput - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrInput // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrInput - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapInput // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayInput diff --git a/sdk/go/aws/ec2/pulumiTypes.go b/sdk/go/aws/ec2/pulumiTypes.go index 19e44f2d18f..5e94021d901 100644 --- a/sdk/go/aws/ec2/pulumiTypes.go +++ b/sdk/go/aws/ec2/pulumiTypes.go @@ -2958,7 +2958,7 @@ func (o FleetTargetCapacitySpecificationPtrOutput) TotalTargetCapacity() pulumi. } type InstanceCreditSpecification struct { - // The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + // Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. CpuCredits *string `pulumi:"cpuCredits"` } @@ -2974,7 +2974,7 @@ type InstanceCreditSpecificationInput interface { } type InstanceCreditSpecificationArgs struct { - // The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + // Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. CpuCredits pulumi.StringPtrInput `pulumi:"cpuCredits"` } @@ -3055,7 +3055,7 @@ func (o InstanceCreditSpecificationOutput) ToInstanceCreditSpecificationPtrOutpu }).(InstanceCreditSpecificationPtrOutput) } -// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. +// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. func (o InstanceCreditSpecificationOutput) CpuCredits() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceCreditSpecification) *string { return v.CpuCredits }).(pulumi.StringPtrOutput) } @@ -3078,7 +3078,7 @@ func (o InstanceCreditSpecificationPtrOutput) Elem() InstanceCreditSpecification return o.ApplyT(func(v *InstanceCreditSpecification) InstanceCreditSpecification { return *v }).(InstanceCreditSpecificationOutput) } -// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. +// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. func (o InstanceCreditSpecificationPtrOutput) CpuCredits() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceCreditSpecification) *string { if v == nil { @@ -3089,29 +3089,27 @@ func (o InstanceCreditSpecificationPtrOutput) CpuCredits() pulumi.StringPtrOutpu } type InstanceEbsBlockDevice struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName string `pulumi:"deviceName"` - // Enables [EBS - // encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - // on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + // Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. Encrypted *bool `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - // Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops *int `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId *string `pulumi:"kmsKeyId"` - // The Snapshot ID to mount. + // Snapshot ID to mount. SnapshotId *string `pulumi:"snapshotId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. - Throughput *int `pulumi:"throughput"` - VolumeId *string `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // A map of tags to assign to the device. + Tags map[string]string `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. + Throughput *int `pulumi:"throughput"` + // ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + VolumeId *string `pulumi:"volumeId"` + // Size of the volume in gibibytes (GiB). VolumeSize *int `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType *string `pulumi:"volumeType"` } @@ -3127,29 +3125,27 @@ type InstanceEbsBlockDeviceInput interface { } type InstanceEbsBlockDeviceArgs struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName pulumi.StringInput `pulumi:"deviceName"` - // Enables [EBS - // encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - // on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + // Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. Encrypted pulumi.BoolPtrInput `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - // Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops pulumi.IntPtrInput `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` - // The Snapshot ID to mount. + // Snapshot ID to mount. SnapshotId pulumi.StringPtrInput `pulumi:"snapshotId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. - Throughput pulumi.IntPtrInput `pulumi:"throughput"` - VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // A map of tags to assign to the device. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. + Throughput pulumi.IntPtrInput `pulumi:"throughput"` + // ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` + // Size of the volume in gibibytes (GiB). VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -3204,27 +3200,22 @@ func (o InstanceEbsBlockDeviceOutput) ToInstanceEbsBlockDeviceOutputWithContext( return o } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o InstanceEbsBlockDeviceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o InstanceEbsBlockDeviceOutput) DeviceName() pulumi.StringOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) string { return v.DeviceName }).(pulumi.StringOutput) } -// Enables [EBS -// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) -// on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. +// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. func (o InstanceEbsBlockDeviceOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *bool { return v.Encrypted }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). -// Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o InstanceEbsBlockDeviceOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *int { return v.Iops }).(pulumi.IntPtrOutput) } @@ -3234,26 +3225,32 @@ func (o InstanceEbsBlockDeviceOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The Snapshot ID to mount. +// Snapshot ID to mount. func (o InstanceEbsBlockDeviceOutput) SnapshotId() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *string { return v.SnapshotId }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o InstanceEbsBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v InstanceEbsBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o InstanceEbsBlockDeviceOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *int { return v.Throughput }).(pulumi.IntPtrOutput) } +// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. func (o InstanceEbsBlockDeviceOutput) VolumeId() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *string { return v.VolumeId }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o InstanceEbsBlockDeviceOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o InstanceEbsBlockDeviceOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceEbsBlockDevice) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -3279,7 +3276,7 @@ func (o InstanceEbsBlockDeviceArrayOutput) Index(i pulumi.IntInput) InstanceEbsB } type InstanceEnclaveOptions struct { - // Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + // Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. Enabled *bool `pulumi:"enabled"` } @@ -3295,7 +3292,7 @@ type InstanceEnclaveOptionsInput interface { } type InstanceEnclaveOptionsArgs struct { - // Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + // Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } @@ -3376,7 +3373,7 @@ func (o InstanceEnclaveOptionsOutput) ToInstanceEnclaveOptionsPtrOutputWithConte }).(InstanceEnclaveOptionsPtrOutput) } -// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). +// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. func (o InstanceEnclaveOptionsOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceEnclaveOptions) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } @@ -3399,7 +3396,7 @@ func (o InstanceEnclaveOptionsPtrOutput) Elem() InstanceEnclaveOptionsOutput { return o.ApplyT(func(v *InstanceEnclaveOptions) InstanceEnclaveOptions { return *v }).(InstanceEnclaveOptionsOutput) } -// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). +// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. func (o InstanceEnclaveOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *InstanceEnclaveOptions) *bool { if v == nil { @@ -3414,9 +3411,7 @@ type InstanceEphemeralBlockDevice struct { DeviceName string `pulumi:"deviceName"` // Suppresses the specified device included in the AMI's block device mapping. NoDevice *bool `pulumi:"noDevice"` - // The [Instance Store Device - // Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - // (e.g. `"ephemeral0"`). + // [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). VirtualName *string `pulumi:"virtualName"` } @@ -3436,9 +3431,7 @@ type InstanceEphemeralBlockDeviceArgs struct { DeviceName pulumi.StringInput `pulumi:"deviceName"` // Suppresses the specified device included in the AMI's block device mapping. NoDevice pulumi.BoolPtrInput `pulumi:"noDevice"` - // The [Instance Store Device - // Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - // (e.g. `"ephemeral0"`). + // [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). VirtualName pulumi.StringPtrInput `pulumi:"virtualName"` } @@ -3503,9 +3496,7 @@ func (o InstanceEphemeralBlockDeviceOutput) NoDevice() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceEphemeralBlockDevice) *bool { return v.NoDevice }).(pulumi.BoolPtrOutput) } -// The [Instance Store Device -// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) -// (e.g. `"ephemeral0"`). +// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). func (o InstanceEphemeralBlockDeviceOutput) VirtualName() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceEphemeralBlockDevice) *string { return v.VirtualName }).(pulumi.StringPtrOutput) } @@ -3531,11 +3522,11 @@ func (o InstanceEphemeralBlockDeviceArrayOutput) Index(i pulumi.IntInput) Instan } type InstanceMetadataOptions struct { - // Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + // Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. HttpEndpoint *string `pulumi:"httpEndpoint"` - // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + // Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"` - // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. HttpTokens *string `pulumi:"httpTokens"` } @@ -3551,11 +3542,11 @@ type InstanceMetadataOptionsInput interface { } type InstanceMetadataOptionsArgs struct { - // Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + // Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. HttpEndpoint pulumi.StringPtrInput `pulumi:"httpEndpoint"` - // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + // Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. HttpPutResponseHopLimit pulumi.IntPtrInput `pulumi:"httpPutResponseHopLimit"` - // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. HttpTokens pulumi.StringPtrInput `pulumi:"httpTokens"` } @@ -3636,17 +3627,17 @@ func (o InstanceMetadataOptionsOutput) ToInstanceMetadataOptionsPtrOutputWithCon }).(InstanceMetadataOptionsPtrOutput) } -// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). +// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. func (o InstanceMetadataOptionsOutput) HttpEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceMetadataOptions) *string { return v.HttpEndpoint }).(pulumi.StringPtrOutput) } -// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). +// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. func (o InstanceMetadataOptionsOutput) HttpPutResponseHopLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceMetadataOptions) *int { return v.HttpPutResponseHopLimit }).(pulumi.IntPtrOutput) } -// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). +// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. func (o InstanceMetadataOptionsOutput) HttpTokens() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceMetadataOptions) *string { return v.HttpTokens }).(pulumi.StringPtrOutput) } @@ -3669,7 +3660,7 @@ func (o InstanceMetadataOptionsPtrOutput) Elem() InstanceMetadataOptionsOutput { return o.ApplyT(func(v *InstanceMetadataOptions) InstanceMetadataOptions { return *v }).(InstanceMetadataOptionsOutput) } -// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). +// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. func (o InstanceMetadataOptionsPtrOutput) HttpEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceMetadataOptions) *string { if v == nil { @@ -3679,7 +3670,7 @@ func (o InstanceMetadataOptionsPtrOutput) HttpEndpoint() pulumi.StringPtrOutput }).(pulumi.StringPtrOutput) } -// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). +// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. func (o InstanceMetadataOptionsPtrOutput) HttpPutResponseHopLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *InstanceMetadataOptions) *int { if v == nil { @@ -3689,7 +3680,7 @@ func (o InstanceMetadataOptionsPtrOutput) HttpPutResponseHopLimit() pulumi.IntPt }).(pulumi.IntPtrOutput) } -// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). +// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. func (o InstanceMetadataOptionsPtrOutput) HttpTokens() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceMetadataOptions) *string { if v == nil { @@ -3702,9 +3693,9 @@ func (o InstanceMetadataOptionsPtrOutput) HttpTokens() pulumi.StringPtrOutput { type InstanceNetworkInterface struct { // Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The integer index of the network interface attachment. Limited by instance type. + // Integer index of the network interface attachment. Limited by instance type. DeviceIndex int `pulumi:"deviceIndex"` - // The ID of the network interface to attach. + // ID of the network interface to attach. NetworkInterfaceId string `pulumi:"networkInterfaceId"` } @@ -3722,9 +3713,9 @@ type InstanceNetworkInterfaceInput interface { type InstanceNetworkInterfaceArgs struct { // Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The integer index of the network interface attachment. Limited by instance type. + // Integer index of the network interface attachment. Limited by instance type. DeviceIndex pulumi.IntInput `pulumi:"deviceIndex"` - // The ID of the network interface to attach. + // ID of the network interface to attach. NetworkInterfaceId pulumi.StringInput `pulumi:"networkInterfaceId"` } @@ -3784,12 +3775,12 @@ func (o InstanceNetworkInterfaceOutput) DeleteOnTermination() pulumi.BoolPtrOutp return o.ApplyT(func(v InstanceNetworkInterface) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The integer index of the network interface attachment. Limited by instance type. +// Integer index of the network interface attachment. Limited by instance type. func (o InstanceNetworkInterfaceOutput) DeviceIndex() pulumi.IntOutput { return o.ApplyT(func(v InstanceNetworkInterface) int { return v.DeviceIndex }).(pulumi.IntOutput) } -// The ID of the network interface to attach. +// ID of the network interface to attach. func (o InstanceNetworkInterfaceOutput) NetworkInterfaceId() pulumi.StringOutput { return o.ApplyT(func(v InstanceNetworkInterface) string { return v.NetworkInterfaceId }).(pulumi.StringOutput) } @@ -3815,24 +3806,25 @@ func (o InstanceNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) InstanceNe } type InstanceRootBlockDevice struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName *string `pulumi:"deviceName"` - // Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + // Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. Encrypted *bool `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops *int `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId *string `pulumi:"kmsKeyId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. - Throughput *int `pulumi:"throughput"` - VolumeId *string `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // A map of tags to assign to the device. + Tags map[string]string `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. + Throughput *int `pulumi:"throughput"` + // ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + VolumeId *string `pulumi:"volumeId"` + // Size of the volume in gibibytes (GiB). VolumeSize *int `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType *string `pulumi:"volumeType"` } @@ -3848,24 +3840,25 @@ type InstanceRootBlockDeviceInput interface { } type InstanceRootBlockDeviceArgs struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName pulumi.StringPtrInput `pulumi:"deviceName"` - // Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + // Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. Encrypted pulumi.BoolPtrInput `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops pulumi.IntPtrInput `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. - Throughput pulumi.IntPtrInput `pulumi:"throughput"` - VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // A map of tags to assign to the device. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. + Throughput pulumi.IntPtrInput `pulumi:"throughput"` + // ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` + // Size of the volume in gibibytes (GiB). VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -3946,24 +3939,22 @@ func (o InstanceRootBlockDeviceOutput) ToInstanceRootBlockDevicePtrOutputWithCon }).(InstanceRootBlockDevicePtrOutput) } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o InstanceRootBlockDeviceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o InstanceRootBlockDeviceOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *string { return v.DeviceName }).(pulumi.StringPtrOutput) } -// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. +// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. func (o InstanceRootBlockDeviceOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *bool { return v.Encrypted }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o InstanceRootBlockDeviceOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *int { return v.Iops }).(pulumi.IntPtrOutput) } @@ -3973,21 +3964,27 @@ func (o InstanceRootBlockDeviceOutput) KmsKeyId() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o InstanceRootBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v InstanceRootBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o InstanceRootBlockDeviceOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *int { return v.Throughput }).(pulumi.IntPtrOutput) } +// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. func (o InstanceRootBlockDeviceOutput) VolumeId() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *string { return v.VolumeId }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o InstanceRootBlockDeviceOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o InstanceRootBlockDeviceOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v InstanceRootBlockDevice) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -4010,8 +4007,7 @@ func (o InstanceRootBlockDevicePtrOutput) Elem() InstanceRootBlockDeviceOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) InstanceRootBlockDevice { return *v }).(InstanceRootBlockDeviceOutput) } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o InstanceRootBlockDevicePtrOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *bool { if v == nil { @@ -4021,7 +4017,7 @@ func (o InstanceRootBlockDevicePtrOutput) DeleteOnTermination() pulumi.BoolPtrOu }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o InstanceRootBlockDevicePtrOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *string { if v == nil { @@ -4031,7 +4027,7 @@ func (o InstanceRootBlockDevicePtrOutput) DeviceName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. +// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. func (o InstanceRootBlockDevicePtrOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *bool { if v == nil { @@ -4041,8 +4037,7 @@ func (o InstanceRootBlockDevicePtrOutput) Encrypted() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o InstanceRootBlockDevicePtrOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *int { if v == nil { @@ -4062,7 +4057,17 @@ func (o InstanceRootBlockDevicePtrOutput) KmsKeyId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o InstanceRootBlockDevicePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *InstanceRootBlockDevice) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o InstanceRootBlockDevicePtrOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *int { if v == nil { @@ -4072,6 +4077,7 @@ func (o InstanceRootBlockDevicePtrOutput) Throughput() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. func (o InstanceRootBlockDevicePtrOutput) VolumeId() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *string { if v == nil { @@ -4081,7 +4087,7 @@ func (o InstanceRootBlockDevicePtrOutput) VolumeId() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o InstanceRootBlockDevicePtrOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *int { if v == nil { @@ -4091,7 +4097,7 @@ func (o InstanceRootBlockDevicePtrOutput) VolumeSize() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o InstanceRootBlockDevicePtrOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v *InstanceRootBlockDevice) *string { if v == nil { @@ -10310,7 +10316,7 @@ func (o SpotFleetRequestSpotMaintenanceStrategiesCapacityRebalancePtrOutput) Rep } type SpotInstanceRequestCreditSpecification struct { - // The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + // Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. CpuCredits *string `pulumi:"cpuCredits"` } @@ -10326,7 +10332,7 @@ type SpotInstanceRequestCreditSpecificationInput interface { } type SpotInstanceRequestCreditSpecificationArgs struct { - // The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + // Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. CpuCredits pulumi.StringPtrInput `pulumi:"cpuCredits"` } @@ -10407,7 +10413,7 @@ func (o SpotInstanceRequestCreditSpecificationOutput) ToSpotInstanceRequestCredi }).(SpotInstanceRequestCreditSpecificationPtrOutput) } -// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. +// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. func (o SpotInstanceRequestCreditSpecificationOutput) CpuCredits() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestCreditSpecification) *string { return v.CpuCredits }).(pulumi.StringPtrOutput) } @@ -10430,7 +10436,7 @@ func (o SpotInstanceRequestCreditSpecificationPtrOutput) Elem() SpotInstanceRequ return o.ApplyT(func(v *SpotInstanceRequestCreditSpecification) SpotInstanceRequestCreditSpecification { return *v }).(SpotInstanceRequestCreditSpecificationOutput) } -// The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. +// Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. func (o SpotInstanceRequestCreditSpecificationPtrOutput) CpuCredits() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestCreditSpecification) *string { if v == nil { @@ -10441,29 +10447,26 @@ func (o SpotInstanceRequestCreditSpecificationPtrOutput) CpuCredits() pulumi.Str } type SpotInstanceRequestEbsBlockDevice struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName string `pulumi:"deviceName"` - // Enables [EBS - // encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - // on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + // Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. Encrypted *bool `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - // Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops *int `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId *string `pulumi:"kmsKeyId"` - // The Snapshot ID to mount. + // Snapshot ID to mount. SnapshotId *string `pulumi:"snapshotId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + // A map of tags to assign to the device. + Tags map[string]string `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. Throughput *int `pulumi:"throughput"` VolumeId *string `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // Size of the volume in gibibytes (GiB). VolumeSize *int `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType *string `pulumi:"volumeType"` } @@ -10479,29 +10482,26 @@ type SpotInstanceRequestEbsBlockDeviceInput interface { } type SpotInstanceRequestEbsBlockDeviceArgs struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName pulumi.StringInput `pulumi:"deviceName"` - // Enables [EBS - // encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - // on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + // Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. Encrypted pulumi.BoolPtrInput `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - // Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops pulumi.IntPtrInput `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` - // The Snapshot ID to mount. + // Snapshot ID to mount. SnapshotId pulumi.StringPtrInput `pulumi:"snapshotId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + // A map of tags to assign to the device. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. Throughput pulumi.IntPtrInput `pulumi:"throughput"` VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // Size of the volume in gibibytes (GiB). VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -10556,27 +10556,22 @@ func (o SpotInstanceRequestEbsBlockDeviceOutput) ToSpotInstanceRequestEbsBlockDe return o } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o SpotInstanceRequestEbsBlockDeviceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o SpotInstanceRequestEbsBlockDeviceOutput) DeviceName() pulumi.StringOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) string { return v.DeviceName }).(pulumi.StringOutput) } -// Enables [EBS -// encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) -// on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. +// Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. func (o SpotInstanceRequestEbsBlockDeviceOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *bool { return v.Encrypted }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). -// Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o SpotInstanceRequestEbsBlockDeviceOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *int { return v.Iops }).(pulumi.IntPtrOutput) } @@ -10586,12 +10581,17 @@ func (o SpotInstanceRequestEbsBlockDeviceOutput) KmsKeyId() pulumi.StringPtrOutp return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The Snapshot ID to mount. +// Snapshot ID to mount. func (o SpotInstanceRequestEbsBlockDeviceOutput) SnapshotId() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *string { return v.SnapshotId }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o SpotInstanceRequestEbsBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o SpotInstanceRequestEbsBlockDeviceOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *int { return v.Throughput }).(pulumi.IntPtrOutput) } @@ -10600,12 +10600,12 @@ func (o SpotInstanceRequestEbsBlockDeviceOutput) VolumeId() pulumi.StringPtrOutp return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *string { return v.VolumeId }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o SpotInstanceRequestEbsBlockDeviceOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o SpotInstanceRequestEbsBlockDeviceOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEbsBlockDevice) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -10631,7 +10631,7 @@ func (o SpotInstanceRequestEbsBlockDeviceArrayOutput) Index(i pulumi.IntInput) S } type SpotInstanceRequestEnclaveOptions struct { - // Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + // Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. Enabled *bool `pulumi:"enabled"` } @@ -10647,7 +10647,7 @@ type SpotInstanceRequestEnclaveOptionsInput interface { } type SpotInstanceRequestEnclaveOptionsArgs struct { - // Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + // Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. Enabled pulumi.BoolPtrInput `pulumi:"enabled"` } @@ -10728,7 +10728,7 @@ func (o SpotInstanceRequestEnclaveOptionsOutput) ToSpotInstanceRequestEnclaveOpt }).(SpotInstanceRequestEnclaveOptionsPtrOutput) } -// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). +// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. func (o SpotInstanceRequestEnclaveOptionsOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEnclaveOptions) *bool { return v.Enabled }).(pulumi.BoolPtrOutput) } @@ -10751,7 +10751,7 @@ func (o SpotInstanceRequestEnclaveOptionsPtrOutput) Elem() SpotInstanceRequestEn return o.ApplyT(func(v *SpotInstanceRequestEnclaveOptions) SpotInstanceRequestEnclaveOptions { return *v }).(SpotInstanceRequestEnclaveOptionsOutput) } -// Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). +// Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. func (o SpotInstanceRequestEnclaveOptionsPtrOutput) Enabled() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestEnclaveOptions) *bool { if v == nil { @@ -10766,9 +10766,7 @@ type SpotInstanceRequestEphemeralBlockDevice struct { DeviceName string `pulumi:"deviceName"` // Suppresses the specified device included in the AMI's block device mapping. NoDevice *bool `pulumi:"noDevice"` - // The [Instance Store Device - // Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - // (e.g. `"ephemeral0"`). + // [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). VirtualName *string `pulumi:"virtualName"` } @@ -10788,9 +10786,7 @@ type SpotInstanceRequestEphemeralBlockDeviceArgs struct { DeviceName pulumi.StringInput `pulumi:"deviceName"` // Suppresses the specified device included in the AMI's block device mapping. NoDevice pulumi.BoolPtrInput `pulumi:"noDevice"` - // The [Instance Store Device - // Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - // (e.g. `"ephemeral0"`). + // [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). VirtualName pulumi.StringPtrInput `pulumi:"virtualName"` } @@ -10855,9 +10851,7 @@ func (o SpotInstanceRequestEphemeralBlockDeviceOutput) NoDevice() pulumi.BoolPtr return o.ApplyT(func(v SpotInstanceRequestEphemeralBlockDevice) *bool { return v.NoDevice }).(pulumi.BoolPtrOutput) } -// The [Instance Store Device -// Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) -// (e.g. `"ephemeral0"`). +// [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). func (o SpotInstanceRequestEphemeralBlockDeviceOutput) VirtualName() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestEphemeralBlockDevice) *string { return v.VirtualName }).(pulumi.StringPtrOutput) } @@ -10883,11 +10877,11 @@ func (o SpotInstanceRequestEphemeralBlockDeviceArrayOutput) Index(i pulumi.IntIn } type SpotInstanceRequestMetadataOptions struct { - // Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + // Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. HttpEndpoint *string `pulumi:"httpEndpoint"` - // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + // Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. HttpPutResponseHopLimit *int `pulumi:"httpPutResponseHopLimit"` - // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. HttpTokens *string `pulumi:"httpTokens"` } @@ -10903,11 +10897,11 @@ type SpotInstanceRequestMetadataOptionsInput interface { } type SpotInstanceRequestMetadataOptionsArgs struct { - // Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + // Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. HttpEndpoint pulumi.StringPtrInput `pulumi:"httpEndpoint"` - // The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + // Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. HttpPutResponseHopLimit pulumi.IntPtrInput `pulumi:"httpPutResponseHopLimit"` - // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + // Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. HttpTokens pulumi.StringPtrInput `pulumi:"httpTokens"` } @@ -10988,17 +10982,17 @@ func (o SpotInstanceRequestMetadataOptionsOutput) ToSpotInstanceRequestMetadataO }).(SpotInstanceRequestMetadataOptionsPtrOutput) } -// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). +// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. func (o SpotInstanceRequestMetadataOptionsOutput) HttpEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestMetadataOptions) *string { return v.HttpEndpoint }).(pulumi.StringPtrOutput) } -// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). +// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. func (o SpotInstanceRequestMetadataOptionsOutput) HttpPutResponseHopLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestMetadataOptions) *int { return v.HttpPutResponseHopLimit }).(pulumi.IntPtrOutput) } -// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). +// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. func (o SpotInstanceRequestMetadataOptionsOutput) HttpTokens() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestMetadataOptions) *string { return v.HttpTokens }).(pulumi.StringPtrOutput) } @@ -11021,7 +11015,7 @@ func (o SpotInstanceRequestMetadataOptionsPtrOutput) Elem() SpotInstanceRequestM return o.ApplyT(func(v *SpotInstanceRequestMetadataOptions) SpotInstanceRequestMetadataOptions { return *v }).(SpotInstanceRequestMetadataOptionsOutput) } -// Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). +// Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpEndpoint() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestMetadataOptions) *string { if v == nil { @@ -11031,7 +11025,7 @@ func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpEndpoint() pulumi.Strin }).(pulumi.StringPtrOutput) } -// The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). +// Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpPutResponseHopLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestMetadataOptions) *int { if v == nil { @@ -11041,7 +11035,7 @@ func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpPutResponseHopLimit() p }).(pulumi.IntPtrOutput) } -// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). +// Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpTokens() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestMetadataOptions) *string { if v == nil { @@ -11054,9 +11048,9 @@ func (o SpotInstanceRequestMetadataOptionsPtrOutput) HttpTokens() pulumi.StringP type SpotInstanceRequestNetworkInterface struct { // Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The integer index of the network interface attachment. Limited by instance type. + // Integer index of the network interface attachment. Limited by instance type. DeviceIndex int `pulumi:"deviceIndex"` - // The ID of the network interface to attach. + // ID of the network interface to attach. NetworkInterfaceId string `pulumi:"networkInterfaceId"` } @@ -11074,9 +11068,9 @@ type SpotInstanceRequestNetworkInterfaceInput interface { type SpotInstanceRequestNetworkInterfaceArgs struct { // Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The integer index of the network interface attachment. Limited by instance type. + // Integer index of the network interface attachment. Limited by instance type. DeviceIndex pulumi.IntInput `pulumi:"deviceIndex"` - // The ID of the network interface to attach. + // ID of the network interface to attach. NetworkInterfaceId pulumi.StringInput `pulumi:"networkInterfaceId"` } @@ -11136,12 +11130,12 @@ func (o SpotInstanceRequestNetworkInterfaceOutput) DeleteOnTermination() pulumi. return o.ApplyT(func(v SpotInstanceRequestNetworkInterface) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The integer index of the network interface attachment. Limited by instance type. +// Integer index of the network interface attachment. Limited by instance type. func (o SpotInstanceRequestNetworkInterfaceOutput) DeviceIndex() pulumi.IntOutput { return o.ApplyT(func(v SpotInstanceRequestNetworkInterface) int { return v.DeviceIndex }).(pulumi.IntOutput) } -// The ID of the network interface to attach. +// ID of the network interface to attach. func (o SpotInstanceRequestNetworkInterfaceOutput) NetworkInterfaceId() pulumi.StringOutput { return o.ApplyT(func(v SpotInstanceRequestNetworkInterface) string { return v.NetworkInterfaceId }).(pulumi.StringOutput) } @@ -11167,24 +11161,24 @@ func (o SpotInstanceRequestNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) } type SpotInstanceRequestRootBlockDevice struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination *bool `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName *string `pulumi:"deviceName"` - // Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + // Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. Encrypted *bool `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops *int `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId *string `pulumi:"kmsKeyId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + // A map of tags to assign to the device. + Tags map[string]string `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. Throughput *int `pulumi:"throughput"` VolumeId *string `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // Size of the volume in gibibytes (GiB). VolumeSize *int `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType *string `pulumi:"volumeType"` } @@ -11200,24 +11194,24 @@ type SpotInstanceRequestRootBlockDeviceInput interface { } type SpotInstanceRequestRootBlockDeviceArgs struct { - // Whether the volume should be destroyed - // on instance termination (Default: `true`). + // Whether the volume should be destroyed on instance termination. Defaults to `true`. DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` - // The name of the device to mount. + // Name of the device to mount. DeviceName pulumi.StringPtrInput `pulumi:"deviceName"` - // Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + // Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. Encrypted pulumi.BoolPtrInput `pulumi:"encrypted"` - // The amount of provisioned - // [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + // Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. Iops pulumi.IntPtrInput `pulumi:"iops"` // Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. KmsKeyId pulumi.StringPtrInput `pulumi:"kmsKeyId"` - // The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + // A map of tags to assign to the device. + Tags pulumi.StringMapInput `pulumi:"tags"` + // Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. Throughput pulumi.IntPtrInput `pulumi:"throughput"` VolumeId pulumi.StringPtrInput `pulumi:"volumeId"` - // The size of the volume in gibibytes (GiB). + // Size of the volume in gibibytes (GiB). VolumeSize pulumi.IntPtrInput `pulumi:"volumeSize"` - // The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + // Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. VolumeType pulumi.StringPtrInput `pulumi:"volumeType"` } @@ -11298,24 +11292,22 @@ func (o SpotInstanceRequestRootBlockDeviceOutput) ToSpotInstanceRequestRootBlock }).(SpotInstanceRequestRootBlockDevicePtrOutput) } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o SpotInstanceRequestRootBlockDeviceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o SpotInstanceRequestRootBlockDeviceOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *string { return v.DeviceName }).(pulumi.StringPtrOutput) } -// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. +// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. func (o SpotInstanceRequestRootBlockDeviceOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *bool { return v.Encrypted }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o SpotInstanceRequestRootBlockDeviceOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *int { return v.Iops }).(pulumi.IntPtrOutput) } @@ -11325,7 +11317,12 @@ func (o SpotInstanceRequestRootBlockDeviceOutput) KmsKeyId() pulumi.StringPtrOut return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *string { return v.KmsKeyId }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o SpotInstanceRequestRootBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o SpotInstanceRequestRootBlockDeviceOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *int { return v.Throughput }).(pulumi.IntPtrOutput) } @@ -11334,12 +11331,12 @@ func (o SpotInstanceRequestRootBlockDeviceOutput) VolumeId() pulumi.StringPtrOut return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *string { return v.VolumeId }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o SpotInstanceRequestRootBlockDeviceOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *int { return v.VolumeSize }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o SpotInstanceRequestRootBlockDeviceOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v SpotInstanceRequestRootBlockDevice) *string { return v.VolumeType }).(pulumi.StringPtrOutput) } @@ -11362,8 +11359,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) Elem() SpotInstanceRequestR return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) SpotInstanceRequestRootBlockDevice { return *v }).(SpotInstanceRequestRootBlockDeviceOutput) } -// Whether the volume should be destroyed -// on instance termination (Default: `true`). +// Whether the volume should be destroyed on instance termination. Defaults to `true`. func (o SpotInstanceRequestRootBlockDevicePtrOutput) DeleteOnTermination() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *bool { if v == nil { @@ -11373,7 +11369,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) DeleteOnTermination() pulum }).(pulumi.BoolPtrOutput) } -// The name of the device to mount. +// Name of the device to mount. func (o SpotInstanceRequestRootBlockDevicePtrOutput) DeviceName() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *string { if v == nil { @@ -11383,7 +11379,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) DeviceName() pulumi.StringP }).(pulumi.StringPtrOutput) } -// Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. +// Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. func (o SpotInstanceRequestRootBlockDevicePtrOutput) Encrypted() pulumi.BoolPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *bool { if v == nil { @@ -11393,8 +11389,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) Encrypted() pulumi.BoolPtrO }).(pulumi.BoolPtrOutput) } -// The amount of provisioned -// [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. +// Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. func (o SpotInstanceRequestRootBlockDevicePtrOutput) Iops() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *int { if v == nil { @@ -11414,7 +11409,17 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) KmsKeyId() pulumi.StringPtr }).(pulumi.StringPtrOutput) } -// The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. +// A map of tags to assign to the device. +func (o SpotInstanceRequestRootBlockDevicePtrOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) map[string]string { + if v == nil { + return nil + } + return v.Tags + }).(pulumi.StringMapOutput) +} + +// Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. func (o SpotInstanceRequestRootBlockDevicePtrOutput) Throughput() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *int { if v == nil { @@ -11433,7 +11438,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) VolumeId() pulumi.StringPtr }).(pulumi.StringPtrOutput) } -// The size of the volume in gibibytes (GiB). +// Size of the volume in gibibytes (GiB). func (o SpotInstanceRequestRootBlockDevicePtrOutput) VolumeSize() pulumi.IntPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *int { if v == nil { @@ -11443,7 +11448,7 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) VolumeSize() pulumi.IntPtrO }).(pulumi.IntPtrOutput) } -// The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). +// Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. func (o SpotInstanceRequestRootBlockDevicePtrOutput) VolumeType() pulumi.StringPtrOutput { return o.ApplyT(func(v *SpotInstanceRequestRootBlockDevice) *string { if v == nil { @@ -13395,6 +13400,8 @@ type GetInstanceEbsBlockDevice struct { KmsKeyId string `pulumi:"kmsKeyId"` // The ID of the snapshot. SnapshotId string `pulumi:"snapshotId"` + // A map of tags assigned to the Instance. + Tags map[string]string `pulumi:"tags"` // The throughput of the volume, in MiB/s. Throughput int `pulumi:"throughput"` VolumeId string `pulumi:"volumeId"` @@ -13427,6 +13434,8 @@ type GetInstanceEbsBlockDeviceArgs struct { KmsKeyId pulumi.StringInput `pulumi:"kmsKeyId"` // The ID of the snapshot. SnapshotId pulumi.StringInput `pulumi:"snapshotId"` + // A map of tags assigned to the Instance. + Tags pulumi.StringMapInput `pulumi:"tags"` // The throughput of the volume, in MiB/s. Throughput pulumi.IntInput `pulumi:"throughput"` VolumeId pulumi.StringInput `pulumi:"volumeId"` @@ -13516,6 +13525,11 @@ func (o GetInstanceEbsBlockDeviceOutput) SnapshotId() pulumi.StringOutput { return o.ApplyT(func(v GetInstanceEbsBlockDevice) string { return v.SnapshotId }).(pulumi.StringOutput) } +// A map of tags assigned to the Instance. +func (o GetInstanceEbsBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v GetInstanceEbsBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + // The throughput of the volume, in MiB/s. func (o GetInstanceEbsBlockDeviceOutput) Throughput() pulumi.IntOutput { return o.ApplyT(func(v GetInstanceEbsBlockDevice) int { return v.Throughput }).(pulumi.IntOutput) @@ -13992,6 +14006,8 @@ type GetInstanceRootBlockDevice struct { // `0` If the volume is not a provisioned IOPS image, otherwise the supported IOPS count. Iops int `pulumi:"iops"` KmsKeyId string `pulumi:"kmsKeyId"` + // A map of tags assigned to the Instance. + Tags map[string]string `pulumi:"tags"` // The throughput of the volume, in MiB/s. Throughput int `pulumi:"throughput"` VolumeId string `pulumi:"volumeId"` @@ -14022,6 +14038,8 @@ type GetInstanceRootBlockDeviceArgs struct { // `0` If the volume is not a provisioned IOPS image, otherwise the supported IOPS count. Iops pulumi.IntInput `pulumi:"iops"` KmsKeyId pulumi.StringInput `pulumi:"kmsKeyId"` + // A map of tags assigned to the Instance. + Tags pulumi.StringMapInput `pulumi:"tags"` // The throughput of the volume, in MiB/s. Throughput pulumi.IntInput `pulumi:"throughput"` VolumeId pulumi.StringInput `pulumi:"volumeId"` @@ -14106,6 +14124,11 @@ func (o GetInstanceRootBlockDeviceOutput) KmsKeyId() pulumi.StringOutput { return o.ApplyT(func(v GetInstanceRootBlockDevice) string { return v.KmsKeyId }).(pulumi.StringOutput) } +// A map of tags assigned to the Instance. +func (o GetInstanceRootBlockDeviceOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v GetInstanceRootBlockDevice) map[string]string { return v.Tags }).(pulumi.StringMapOutput) +} + // The throughput of the volume, in MiB/s. func (o GetInstanceRootBlockDeviceOutput) Throughput() pulumi.IntOutput { return o.ApplyT(func(v GetInstanceRootBlockDevice) int { return v.Throughput }).(pulumi.IntOutput) diff --git a/sdk/go/aws/ec2/spotInstanceRequest.go b/sdk/go/aws/ec2/spotInstanceRequest.go index badf2306518..c0851a3cc50 100644 --- a/sdk/go/aws/ec2/spotInstanceRequest.go +++ b/sdk/go/aws/ec2/spotInstanceRequest.go @@ -64,66 +64,53 @@ import ( type SpotInstanceRequest struct { pulumi.CustomResourceState - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringOutput `pulumi:"ami"` Arn pulumi.StringOutput `pulumi:"arn"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolOutput `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` // The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). // The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. // Note that you can't specify an Availability Zone group or a launch group if you specify a duration. BlockDurationMinutes pulumi.IntPtrOutput `pulumi:"blockDurationMinutes"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntOutput `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntOutput `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification SpotInstanceRequestCreditSpecificationPtrOutput `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrOutput `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices SpotInstanceRequestEbsBlockDeviceArrayOutput `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrOutput `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions SpotInstanceRequestEnclaveOptionsOutput `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices SpotInstanceRequestEphemeralBlockDeviceArrayOutput `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrOutput `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrOutput `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringOutput `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.StringPtrOutput `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrOutput `pulumi:"instanceInitiatedShutdownBehavior"` // Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. InstanceInterruptionBehaviour pulumi.StringPtrOutput `pulumi:"instanceInterruptionBehaviour"` InstanceState pulumi.StringOutput `pulumi:"instanceState"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringOutput `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntOutput `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayOutput `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringOutput `pulumi:"keyName"` // A launch group is a group of spot instances that launch together and terminate together. // If left empty instances are launched and terminated individually. @@ -136,30 +123,27 @@ type SpotInstanceRequest struct { NetworkInterfaces SpotInstanceRequestNetworkInterfaceArrayOutput `pulumi:"networkInterfaces"` OutpostArn pulumi.StringOutput `pulumi:"outpostArn"` PasswordData pulumi.StringOutput `pulumi:"passwordData"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringOutput `pulumi:"placementGroup"` PrimaryNetworkInterfaceId pulumi.StringOutput `pulumi:"primaryNetworkInterfaceId"` // The private DNS name assigned to the instance. Can only be // used inside the Amazon EC2, and only available if you've enabled DNS hostnames // for your VPC PrivateDns pulumi.StringOutput `pulumi:"privateDns"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringOutput `pulumi:"privateIp"` // The public DNS name assigned to the instance. For EC2-VPC, this // is only available if you've enabled DNS hostnames for your VPC PublicDns pulumi.StringOutput `pulumi:"publicDns"` // The public IP address assigned to the instance, if applicable. PublicIp pulumi.StringOutput `pulumi:"publicIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice SpotInstanceRequestRootBlockDeviceOutput `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayOutput `pulumi:"secondaryPrivateIps"` // A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrOutput `pulumi:"sourceDestCheck"` // The current [bid // status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html) @@ -177,13 +161,13 @@ type SpotInstanceRequest struct { // If set to `one-time`, after // the instance is terminated, the spot request will be closed. SpotType pulumi.StringPtrOutput `pulumi:"spotType"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringOutput `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapOutput `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringOutput `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrOutput `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrOutput `pulumi:"userDataBase64"` @@ -191,7 +175,7 @@ type SpotInstanceRequest struct { ValidFrom pulumi.StringOutput `pulumi:"validFrom"` // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringOutput `pulumi:"validUntil"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapOutput `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"` @@ -236,66 +220,53 @@ func GetSpotInstanceRequest(ctx *pulumi.Context, // Input properties used for looking up and filtering SpotInstanceRequest resources. type spotInstanceRequestState struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami *string `pulumi:"ami"` Arn *string `pulumi:"arn"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone *string `pulumi:"availabilityZone"` // The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). // The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. // Note that you can't specify an Availability Zone group or a launch group if you specify a duration. BlockDurationMinutes *int `pulumi:"blockDurationMinutes"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount *int `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore *int `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification *SpotInstanceRequestCreditSpecification `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination *bool `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices []SpotInstanceRequestEbsBlockDevice `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized *bool `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions *SpotInstanceRequestEnclaveOptions `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices []SpotInstanceRequestEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData *bool `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation *bool `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId *string `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile *string `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` // Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. InstanceInterruptionBehaviour *string `pulumi:"instanceInterruptionBehaviour"` InstanceState *string `pulumi:"instanceState"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType *string `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount *int `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses []string `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName *string `pulumi:"keyName"` // A launch group is a group of spot instances that launch together and terminate together. // If left empty instances are launched and terminated individually. @@ -308,30 +279,27 @@ type spotInstanceRequestState struct { NetworkInterfaces []SpotInstanceRequestNetworkInterface `pulumi:"networkInterfaces"` OutpostArn *string `pulumi:"outpostArn"` PasswordData *string `pulumi:"passwordData"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup *string `pulumi:"placementGroup"` PrimaryNetworkInterfaceId *string `pulumi:"primaryNetworkInterfaceId"` // The private DNS name assigned to the instance. Can only be // used inside the Amazon EC2, and only available if you've enabled DNS hostnames // for your VPC PrivateDns *string `pulumi:"privateDns"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp *string `pulumi:"privateIp"` // The public DNS name assigned to the instance. For EC2-VPC, this // is only available if you've enabled DNS hostnames for your VPC PublicDns *string `pulumi:"publicDns"` // The public IP address assigned to the instance, if applicable. PublicIp *string `pulumi:"publicIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice *SpotInstanceRequestRootBlockDevice `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. SecurityGroups []string `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck *bool `pulumi:"sourceDestCheck"` // The current [bid // status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html) @@ -349,13 +317,13 @@ type spotInstanceRequestState struct { // If set to `one-time`, after // the instance is terminated, the spot request will be closed. SpotType *string `pulumi:"spotType"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId *string `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags map[string]string `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy *string `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData *string `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 *string `pulumi:"userDataBase64"` @@ -363,7 +331,7 @@ type spotInstanceRequestState struct { ValidFrom *string `pulumi:"validFrom"` // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil *string `pulumi:"validUntil"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags map[string]string `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` @@ -374,66 +342,53 @@ type spotInstanceRequestState struct { } type SpotInstanceRequestState struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringPtrInput Arn pulumi.StringPtrInput - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolPtrInput - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringPtrInput // The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). // The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. // Note that you can't specify an Availability Zone group or a launch group if you specify a duration. BlockDurationMinutes pulumi.IntPtrInput - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntPtrInput // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntPtrInput // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification SpotInstanceRequestCreditSpecificationPtrInput - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrInput - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices SpotInstanceRequestEbsBlockDeviceArrayInput - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrInput // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions SpotInstanceRequestEnclaveOptionsPtrInput - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices SpotInstanceRequestEphemeralBlockDeviceArrayInput // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrInput // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrInput - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringPtrInput - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.StringPtrInput - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput // Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. InstanceInterruptionBehaviour pulumi.StringPtrInput InstanceState pulumi.StringPtrInput - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringPtrInput // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntPtrInput // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayInput - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringPtrInput // A launch group is a group of spot instances that launch together and terminate together. // If left empty instances are launched and terminated individually. @@ -446,30 +401,27 @@ type SpotInstanceRequestState struct { NetworkInterfaces SpotInstanceRequestNetworkInterfaceArrayInput OutpostArn pulumi.StringPtrInput PasswordData pulumi.StringPtrInput - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringPtrInput PrimaryNetworkInterfaceId pulumi.StringPtrInput // The private DNS name assigned to the instance. Can only be // used inside the Amazon EC2, and only available if you've enabled DNS hostnames // for your VPC PrivateDns pulumi.StringPtrInput - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringPtrInput // The public DNS name assigned to the instance. For EC2-VPC, this // is only available if you've enabled DNS hostnames for your VPC PublicDns pulumi.StringPtrInput // The public IP address assigned to the instance, if applicable. PublicIp pulumi.StringPtrInput - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice SpotInstanceRequestRootBlockDevicePtrInput // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. SecurityGroups pulumi.StringArrayInput - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrInput // The current [bid // status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html) @@ -487,13 +439,13 @@ type SpotInstanceRequestState struct { // If set to `one-time`, after // the instance is terminated, the spot request will be closed. SpotType pulumi.StringPtrInput - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringPtrInput - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapInput - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringPtrInput - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrInput // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrInput @@ -501,7 +453,7 @@ type SpotInstanceRequestState struct { ValidFrom pulumi.StringPtrInput // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringPtrInput - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapInput // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayInput @@ -516,64 +468,51 @@ func (SpotInstanceRequestState) ElementType() reflect.Type { } type spotInstanceRequestArgs struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami string `pulumi:"ami"` - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone *string `pulumi:"availabilityZone"` // The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). // The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. // Note that you can't specify an Availability Zone group or a launch group if you specify a duration. BlockDurationMinutes *int `pulumi:"blockDurationMinutes"` - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount *int `pulumi:"cpuCoreCount"` // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore *int `pulumi:"cpuThreadsPerCore"` // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification *SpotInstanceRequestCreditSpecification `pulumi:"creditSpecification"` - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination *bool `pulumi:"disableApiTermination"` - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices []SpotInstanceRequestEbsBlockDevice `pulumi:"ebsBlockDevices"` - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized *bool `pulumi:"ebsOptimized"` // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions *SpotInstanceRequestEnclaveOptions `pulumi:"enclaveOptions"` - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices []SpotInstanceRequestEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData *bool `pulumi:"getPasswordData"` // If true, the launched EC2 instance will support hibernation. Hibernation *bool `pulumi:"hibernation"` - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId *string `pulumi:"hostId"` - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile *string `pulumi:"iamInstanceProfile"` - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` // Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. InstanceInterruptionBehaviour *string `pulumi:"instanceInterruptionBehaviour"` - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType string `pulumi:"instanceType"` // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount *int `pulumi:"ipv6AddressCount"` // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses []string `pulumi:"ipv6Addresses"` - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName *string `pulumi:"keyName"` // A launch group is a group of spot instances that launch together and terminate together. // If left empty instances are launched and terminated individually. @@ -584,33 +523,30 @@ type spotInstanceRequestArgs struct { Monitoring *bool `pulumi:"monitoring"` // Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. NetworkInterfaces []SpotInstanceRequestNetworkInterface `pulumi:"networkInterfaces"` - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup *string `pulumi:"placementGroup"` - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp *string `pulumi:"privateIp"` - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice *SpotInstanceRequestRootBlockDevice `pulumi:"rootBlockDevice"` // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. SecurityGroups []string `pulumi:"securityGroups"` - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck *bool `pulumi:"sourceDestCheck"` // The maximum price to request on the spot market. SpotPrice *string `pulumi:"spotPrice"` // If set to `one-time`, after // the instance is terminated, the spot request will be closed. SpotType *string `pulumi:"spotType"` - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId *string `pulumi:"subnetId"` - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags map[string]string `pulumi:"tags"` - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy *string `pulumi:"tenancy"` - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData *string `pulumi:"userData"` // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 *string `pulumi:"userDataBase64"` @@ -618,7 +554,7 @@ type spotInstanceRequestArgs struct { ValidFrom *string `pulumi:"validFrom"` // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil *string `pulumi:"validUntil"` - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags map[string]string `pulumi:"volumeTags"` // A list of security group IDs to associate with. VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` @@ -630,64 +566,51 @@ type spotInstanceRequestArgs struct { // The set of arguments for constructing a SpotInstanceRequest resource. type SpotInstanceRequestArgs struct { - // The AMI to use for the instance. + // AMI to use for the instance. Ami pulumi.StringInput - // Associate a public ip address with an instance in a VPC. Boolean value. + // Whether to associate a public IP address with an instance in a VPC. AssociatePublicIpAddress pulumi.BoolPtrInput - // The AZ to start the instance in. + // AZ to start the instance in. AvailabilityZone pulumi.StringPtrInput // The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). // The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. // Note that you can't specify an Availability Zone group or a launch group if you specify a duration. BlockDurationMinutes pulumi.IntPtrInput - // Sets the number of CPU cores for an instance. This option is - // only supported on creation of instance type that support CPU Options - // [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CpuCoreCount pulumi.IntPtrInput // If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. CpuThreadsPerCore pulumi.IntPtrInput // Customize the credit specification of the instance. See Credit Specification below for more details. CreditSpecification SpotInstanceRequestCreditSpecificationPtrInput - // If true, enables [EC2 Instance - // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + // If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). DisableApiTermination pulumi.BoolPtrInput - // Additional EBS block devices to attach to the - // instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + // Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. EbsBlockDevices SpotInstanceRequestEbsBlockDeviceArrayInput - // If true, the launched EC2 instance will be EBS-optimized. - // Note that if this is not set on an instance type that is optimized by default then - // this will show as disabled but if the instance type is optimized by default then - // there is no need to set this and there is no effect to disabling it. - // See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + // If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. EbsOptimized pulumi.BoolPtrInput // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. EnclaveOptions SpotInstanceRequestEnclaveOptionsPtrInput - // Customize Ephemeral (also known as - // "Instance Store") volumes on the instance. See Block Devices below for details. + // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. EphemeralBlockDevices SpotInstanceRequestEphemeralBlockDeviceArrayInput // If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `passwordData` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. GetPasswordData pulumi.BoolPtrInput // If true, the launched EC2 instance will support hibernation. Hibernation pulumi.BoolPtrInput - // The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + // ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. HostId pulumi.StringPtrInput - // The IAM Instance Profile to - // launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + // IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. IamInstanceProfile pulumi.StringPtrInput - // Shutdown behavior for the - // instance. Amazon defaults this to `stop` for EBS-backed instances and - // `terminate` for instance-store instances. Cannot be set on instance-store - // instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + // Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. InstanceInitiatedShutdownBehavior pulumi.StringPtrInput // Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. InstanceInterruptionBehaviour pulumi.StringPtrInput - // The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + // Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. InstanceType pulumi.StringInput // A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. Ipv6AddressCount pulumi.IntPtrInput // Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface Ipv6Addresses pulumi.StringArrayInput - // The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + // Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. KeyName pulumi.StringPtrInput // A launch group is a group of spot instances that launch together and terminate together. // If left empty instances are launched and terminated individually. @@ -698,33 +621,30 @@ type SpotInstanceRequestArgs struct { Monitoring pulumi.BoolPtrInput // Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. NetworkInterfaces SpotInstanceRequestNetworkInterfaceArrayInput - // The Placement Group to start the instance in. + // Placement Group to start the instance in. PlacementGroup pulumi.StringPtrInput - // Private IP address to associate with the - // instance in a VPC. + // Private IP address to associate with the instance in a VPC. PrivateIp pulumi.StringPtrInput - // Customize details about the root block - // device of the instance. See Block Devices below for details. + // Customize details about the root block device of the instance. See Block Devices below for details. RootBlockDevice SpotInstanceRequestRootBlockDevicePtrInput // A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. SecurityGroups pulumi.StringArrayInput - // Controls if traffic is routed to the instance when - // the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. SourceDestCheck pulumi.BoolPtrInput // The maximum price to request on the spot market. SpotPrice pulumi.StringPtrInput // If set to `one-time`, after // the instance is terminated, the spot request will be closed. SpotType pulumi.StringPtrInput - // The VPC Subnet ID to launch in. + // VPC Subnet ID to launch in. SubnetId pulumi.StringPtrInput - // A map of tags to assign to the resource. + // A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. Tags pulumi.StringMapInput - // The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + // Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. Tenancy pulumi.StringPtrInput - // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + // User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. UserData pulumi.StringPtrInput // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. UserDataBase64 pulumi.StringPtrInput @@ -732,7 +652,7 @@ type SpotInstanceRequestArgs struct { ValidFrom pulumi.StringPtrInput // The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. ValidUntil pulumi.StringPtrInput - // A map of tags to assign to the devices created by the instance at launch time. + // A map of tags to assign, at instance-creation time, to root and EBS volumes. VolumeTags pulumi.StringMapInput // A list of security group IDs to associate with. VpcSecurityGroupIds pulumi.StringArrayInput diff --git a/sdk/go/aws/elasticache/cluster.go b/sdk/go/aws/elasticache/cluster.go index fc6b656feab..dbce3d84e4a 100644 --- a/sdk/go/aws/elasticache/cluster.go +++ b/sdk/go/aws/elasticache/cluster.go @@ -137,6 +137,8 @@ type Cluster struct { // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) // in the AWS Documentation center for supported versions EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // The name of your final cluster snapshot. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"` // Specifies the weekly time range for when maintenance // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -247,6 +249,8 @@ type clusterState struct { // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) // in the AWS Documentation center for supported versions EngineVersion *string `pulumi:"engineVersion"` + // The name of your final cluster snapshot. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // Specifies the weekly time range for when maintenance // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -329,6 +333,8 @@ type ClusterState struct { // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) // in the AWS Documentation center for supported versions EngineVersion pulumi.StringPtrInput + // The name of your final cluster snapshot. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrInput // Specifies the weekly time range for when maintenance // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -407,6 +413,8 @@ type clusterArgs struct { // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) // in the AWS Documentation center for supported versions EngineVersion *string `pulumi:"engineVersion"` + // The name of your final cluster snapshot. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // Specifies the weekly time range for when maintenance // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -482,6 +490,8 @@ type ClusterArgs struct { // See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) // in the AWS Documentation center for supported versions EngineVersion pulumi.StringPtrInput + // The name of your final cluster snapshot. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrInput // Specifies the weekly time range for when maintenance // on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). // The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` diff --git a/sdk/go/aws/elasticache/replicationGroup.go b/sdk/go/aws/elasticache/replicationGroup.go index a094eb547ad..a61813a5d67 100644 --- a/sdk/go/aws/elasticache/replicationGroup.go +++ b/sdk/go/aws/elasticache/replicationGroup.go @@ -167,7 +167,7 @@ type ReplicationGroup struct { AvailabilityZones pulumi.StringArrayOutput `pulumi:"availabilityZones"` // Indicates if cluster mode is enabled. ClusterEnabled pulumi.BoolOutput `pulumi:"clusterEnabled"` - // Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode ReplicationGroupClusterModeOutput `pulumi:"clusterMode"` // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringOutput `pulumi:"configurationEndpointAddress"` @@ -175,6 +175,8 @@ type ReplicationGroup struct { Engine pulumi.StringPtrOutput `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` + // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` // Specifies the weekly time range for when maintenance @@ -276,7 +278,7 @@ type replicationGroupState struct { AvailabilityZones []string `pulumi:"availabilityZones"` // Indicates if cluster mode is enabled. ClusterEnabled *bool `pulumi:"clusterEnabled"` - // Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode *ReplicationGroupClusterMode `pulumi:"clusterMode"` // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress *string `pulumi:"configurationEndpointAddress"` @@ -284,6 +286,8 @@ type replicationGroupState struct { Engine *string `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion *string `pulumi:"engineVersion"` + // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId *string `pulumi:"kmsKeyId"` // Specifies the weekly time range for when maintenance @@ -354,7 +358,7 @@ type ReplicationGroupState struct { AvailabilityZones pulumi.StringArrayInput // Indicates if cluster mode is enabled. ClusterEnabled pulumi.BoolPtrInput - // Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode ReplicationGroupClusterModePtrInput // The address of the replication group configuration endpoint when cluster mode is enabled. ConfigurationEndpointAddress pulumi.StringPtrInput @@ -362,6 +366,8 @@ type ReplicationGroupState struct { Engine pulumi.StringPtrInput // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringPtrInput + // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrInput // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrInput // Specifies the weekly time range for when maintenance @@ -434,12 +440,14 @@ type replicationGroupArgs struct { AutomaticFailoverEnabled *bool `pulumi:"automaticFailoverEnabled"` // A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. AvailabilityZones []string `pulumi:"availabilityZones"` - // Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode *ReplicationGroupClusterMode `pulumi:"clusterMode"` // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` Engine *string `pulumi:"engine"` // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion *string `pulumi:"engineVersion"` + // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId *string `pulumi:"kmsKeyId"` // Specifies the weekly time range for when maintenance @@ -503,12 +511,14 @@ type ReplicationGroupArgs struct { AutomaticFailoverEnabled pulumi.BoolPtrInput // A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. AvailabilityZones pulumi.StringArrayInput - // Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + // Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. ClusterMode ReplicationGroupClusterModePtrInput // The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` Engine pulumi.StringPtrInput // The version number of the cache engine to be used for the cache clusters in this replication group. EngineVersion pulumi.StringPtrInput + // The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + FinalSnapshotIdentifier pulumi.StringPtrInput // The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. KmsKeyId pulumi.StringPtrInput // Specifies the weekly time range for when maintenance diff --git a/sdk/go/aws/fms/policy.go b/sdk/go/aws/fms/policy.go new file mode 100644 index 00000000000..e73984a2406 --- /dev/null +++ b/sdk/go/aws/fms/policy.go @@ -0,0 +1,264 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package fms + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides a resource to create an AWS Firewall Manager policy. You need to be using AWS organizations and have enabled the Firewall Manager administrator account. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/fms" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/wafregional" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// test, err := wafregional.NewRuleGroup(ctx, "test", &wafregional.RuleGroupArgs{ +// MetricName: pulumi.String("WAFRuleGroupExample"), +// }) +// if err != nil { +// return err +// } +// _, err = fms.NewPolicy(ctx, "example", &fms.PolicyArgs{ +// ExcludeResourceTags: pulumi.Bool(false), +// RemediationEnabled: pulumi.Bool(false), +// ResourceTypeLists: pulumi.StringArray{ +// pulumi.String("AWS::ElasticLoadBalancingV2::LoadBalancer"), +// }, +// SecurityServicePolicyData: &fms.PolicySecurityServicePolicyDataArgs{ +// ManagedServiceData: test.ID().ApplyT(func(id string) (string, error) { +// return fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", " {\n", " \"type\": \"WAF\",\n", " \"ruleGroups\":\n", " [{\n", " \"id\":\"", id, "\",\n", " \"overrideAction\" : {\n", " \"type\": \"COUNT\"\n", " }\n", " }],\n", " \"defaultAction\":\n", " {\n", " \"type\": \"BLOCK\"\n", " },\n", " \"overrideCustomerWebACLAssociation\": false\n", " }\n", "\n"), nil +// }).(pulumi.StringOutput), +// Type: pulumi.String("WAF"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Firewall Manager policies can be imported using the policy ID, e.g. +// +// ```sh +// $ pulumi import aws:fms/policy:Policy example 5be49585-a7e3-4c49-dde1-a179fe4a619a +// ``` +type Policy struct { + pulumi.CustomResourceState + + Arn pulumi.StringOutput `pulumi:"arn"` + // If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + DeleteAllPolicyResources pulumi.BoolPtrOutput `pulumi:"deleteAllPolicyResources"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + ExcludeMap PolicyExcludeMapPtrOutput `pulumi:"excludeMap"` + // A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + ExcludeResourceTags pulumi.BoolOutput `pulumi:"excludeResourceTags"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + IncludeMap PolicyIncludeMapPtrOutput `pulumi:"includeMap"` + // The friendly name of the AWS Firewall Manager Policy. + Name pulumi.StringOutput `pulumi:"name"` + // A unique identifier for each update to the policy. + PolicyUpdateToken pulumi.StringOutput `pulumi:"policyUpdateToken"` + // A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + RemediationEnabled pulumi.BoolPtrOutput `pulumi:"remediationEnabled"` + // A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + ResourceTags pulumi.StringMapOutput `pulumi:"resourceTags"` + // A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + ResourceTypeLists pulumi.StringArrayOutput `pulumi:"resourceTypeLists"` + // The objects to include in Security Service Policy Data. Documented below. + SecurityServicePolicyData PolicySecurityServicePolicyDataOutput `pulumi:"securityServicePolicyData"` +} + +// NewPolicy registers a new resource with the given unique name, arguments, and options. +func NewPolicy(ctx *pulumi.Context, + name string, args *PolicyArgs, opts ...pulumi.ResourceOption) (*Policy, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ExcludeResourceTags == nil { + return nil, errors.New("invalid value for required argument 'ExcludeResourceTags'") + } + if args.ResourceTypeLists == nil { + return nil, errors.New("invalid value for required argument 'ResourceTypeLists'") + } + if args.SecurityServicePolicyData == nil { + return nil, errors.New("invalid value for required argument 'SecurityServicePolicyData'") + } + var resource Policy + err := ctx.RegisterResource("aws:fms/policy:Policy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPolicy gets an existing Policy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PolicyState, opts ...pulumi.ResourceOption) (*Policy, error) { + var resource Policy + err := ctx.ReadResource("aws:fms/policy:Policy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Policy resources. +type policyState struct { + Arn *string `pulumi:"arn"` + // If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + DeleteAllPolicyResources *bool `pulumi:"deleteAllPolicyResources"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + ExcludeMap *PolicyExcludeMap `pulumi:"excludeMap"` + // A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + ExcludeResourceTags *bool `pulumi:"excludeResourceTags"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + IncludeMap *PolicyIncludeMap `pulumi:"includeMap"` + // The friendly name of the AWS Firewall Manager Policy. + Name *string `pulumi:"name"` + // A unique identifier for each update to the policy. + PolicyUpdateToken *string `pulumi:"policyUpdateToken"` + // A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + RemediationEnabled *bool `pulumi:"remediationEnabled"` + // A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + ResourceTags map[string]string `pulumi:"resourceTags"` + // A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + ResourceTypeLists []string `pulumi:"resourceTypeLists"` + // The objects to include in Security Service Policy Data. Documented below. + SecurityServicePolicyData *PolicySecurityServicePolicyData `pulumi:"securityServicePolicyData"` +} + +type PolicyState struct { + Arn pulumi.StringPtrInput + // If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + DeleteAllPolicyResources pulumi.BoolPtrInput + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + ExcludeMap PolicyExcludeMapPtrInput + // A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + ExcludeResourceTags pulumi.BoolPtrInput + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + IncludeMap PolicyIncludeMapPtrInput + // The friendly name of the AWS Firewall Manager Policy. + Name pulumi.StringPtrInput + // A unique identifier for each update to the policy. + PolicyUpdateToken pulumi.StringPtrInput + // A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + RemediationEnabled pulumi.BoolPtrInput + // A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + ResourceTags pulumi.StringMapInput + // A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + ResourceTypeLists pulumi.StringArrayInput + // The objects to include in Security Service Policy Data. Documented below. + SecurityServicePolicyData PolicySecurityServicePolicyDataPtrInput +} + +func (PolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*policyState)(nil)).Elem() +} + +type policyArgs struct { + // If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + DeleteAllPolicyResources *bool `pulumi:"deleteAllPolicyResources"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + ExcludeMap *PolicyExcludeMap `pulumi:"excludeMap"` + // A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + ExcludeResourceTags bool `pulumi:"excludeResourceTags"` + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + IncludeMap *PolicyIncludeMap `pulumi:"includeMap"` + // The friendly name of the AWS Firewall Manager Policy. + Name *string `pulumi:"name"` + // A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + RemediationEnabled *bool `pulumi:"remediationEnabled"` + // A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + ResourceTags map[string]string `pulumi:"resourceTags"` + // A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + ResourceTypeLists []string `pulumi:"resourceTypeLists"` + // The objects to include in Security Service Policy Data. Documented below. + SecurityServicePolicyData PolicySecurityServicePolicyData `pulumi:"securityServicePolicyData"` +} + +// The set of arguments for constructing a Policy resource. +type PolicyArgs struct { + // If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + DeleteAllPolicyResources pulumi.BoolPtrInput + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + ExcludeMap PolicyExcludeMapPtrInput + // A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + ExcludeResourceTags pulumi.BoolInput + // A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + IncludeMap PolicyIncludeMapPtrInput + // The friendly name of the AWS Firewall Manager Policy. + Name pulumi.StringPtrInput + // A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + RemediationEnabled pulumi.BoolPtrInput + // A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + ResourceTags pulumi.StringMapInput + // A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + ResourceTypeLists pulumi.StringArrayInput + // The objects to include in Security Service Policy Data. Documented below. + SecurityServicePolicyData PolicySecurityServicePolicyDataInput +} + +func (PolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*policyArgs)(nil)).Elem() +} + +type PolicyInput interface { + pulumi.Input + + ToPolicyOutput() PolicyOutput + ToPolicyOutputWithContext(ctx context.Context) PolicyOutput +} + +func (*Policy) ElementType() reflect.Type { + return reflect.TypeOf((*Policy)(nil)) +} + +func (i *Policy) ToPolicyOutput() PolicyOutput { + return i.ToPolicyOutputWithContext(context.Background()) +} + +func (i *Policy) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyOutput) +} + +type PolicyOutput struct { + *pulumi.OutputState +} + +func (PolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Policy)(nil)) +} + +func (o PolicyOutput) ToPolicyOutput() PolicyOutput { + return o +} + +func (o PolicyOutput) ToPolicyOutputWithContext(ctx context.Context) PolicyOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(PolicyOutput{}) +} diff --git a/sdk/go/aws/fms/pulumiTypes.go b/sdk/go/aws/fms/pulumiTypes.go new file mode 100644 index 00000000000..d2425b9a6db --- /dev/null +++ b/sdk/go/aws/fms/pulumiTypes.go @@ -0,0 +1,462 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package fms + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +type PolicyExcludeMap struct { + // A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + Accounts []string `pulumi:"accounts"` + Orgunits []string `pulumi:"orgunits"` +} + +// PolicyExcludeMapInput is an input type that accepts PolicyExcludeMap and PolicyExcludeMapOutput values. +// You can construct a concrete instance of `PolicyExcludeMapInput` via: +// +// PolicyExcludeMap{ "key": PolicyExcludeArgs{...} } +type PolicyExcludeMapInput interface { + pulumi.Input + + ToPolicyExcludeMapOutput() PolicyExcludeMapOutput + ToPolicyExcludeMapOutputWithContext(context.Context) PolicyExcludeMapOutput +} + +type PolicyExcludeMapArgs struct { + // A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + Accounts pulumi.StringArrayInput `pulumi:"accounts"` + Orgunits pulumi.StringArrayInput `pulumi:"orgunits"` +} + +func (PolicyExcludeMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyExcludeMap)(nil)).Elem() +} + +func (i PolicyExcludeMapArgs) ToPolicyExcludeMapOutput() PolicyExcludeMapOutput { + return i.ToPolicyExcludeMapOutputWithContext(context.Background()) +} + +func (i PolicyExcludeMapArgs) ToPolicyExcludeMapOutputWithContext(ctx context.Context) PolicyExcludeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyExcludeMapOutput) +} + +func (i PolicyExcludeMapArgs) ToPolicyExcludeMapPtrOutput() PolicyExcludeMapPtrOutput { + return i.ToPolicyExcludeMapPtrOutputWithContext(context.Background()) +} + +func (i PolicyExcludeMapArgs) ToPolicyExcludeMapPtrOutputWithContext(ctx context.Context) PolicyExcludeMapPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyExcludeMapOutput).ToPolicyExcludeMapPtrOutputWithContext(ctx) +} + +// PolicyExcludeMapPtrInput is an input type that accepts PolicyExcludeMapArgs, PolicyExcludeMapPtr and PolicyExcludeMapPtrOutput values. +// You can construct a concrete instance of `PolicyExcludeMapPtrInput` via: +// +// PolicyExcludeMapArgs{...} +// +// or: +// +// nil +type PolicyExcludeMapPtrInput interface { + pulumi.Input + + ToPolicyExcludeMapPtrOutput() PolicyExcludeMapPtrOutput + ToPolicyExcludeMapPtrOutputWithContext(context.Context) PolicyExcludeMapPtrOutput +} + +type policyExcludeMapPtrType PolicyExcludeMapArgs + +func PolicyExcludeMapPtr(v *PolicyExcludeMapArgs) PolicyExcludeMapPtrInput { + return (*policyExcludeMapPtrType)(v) +} + +func (*policyExcludeMapPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyExcludeMap)(nil)).Elem() +} + +func (i *policyExcludeMapPtrType) ToPolicyExcludeMapPtrOutput() PolicyExcludeMapPtrOutput { + return i.ToPolicyExcludeMapPtrOutputWithContext(context.Background()) +} + +func (i *policyExcludeMapPtrType) ToPolicyExcludeMapPtrOutputWithContext(ctx context.Context) PolicyExcludeMapPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyExcludeMapPtrOutput) +} + +type PolicyExcludeMapOutput struct{ *pulumi.OutputState } + +func (PolicyExcludeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyExcludeMap)(nil)).Elem() +} + +func (o PolicyExcludeMapOutput) ToPolicyExcludeMapOutput() PolicyExcludeMapOutput { + return o +} + +func (o PolicyExcludeMapOutput) ToPolicyExcludeMapOutputWithContext(ctx context.Context) PolicyExcludeMapOutput { + return o +} + +func (o PolicyExcludeMapOutput) ToPolicyExcludeMapPtrOutput() PolicyExcludeMapPtrOutput { + return o.ToPolicyExcludeMapPtrOutputWithContext(context.Background()) +} + +func (o PolicyExcludeMapOutput) ToPolicyExcludeMapPtrOutputWithContext(ctx context.Context) PolicyExcludeMapPtrOutput { + return o.ApplyT(func(v PolicyExcludeMap) *PolicyExcludeMap { + return &v + }).(PolicyExcludeMapPtrOutput) +} + +// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. +func (o PolicyExcludeMapOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v PolicyExcludeMap) []string { return v.Accounts }).(pulumi.StringArrayOutput) +} + +func (o PolicyExcludeMapOutput) Orgunits() pulumi.StringArrayOutput { + return o.ApplyT(func(v PolicyExcludeMap) []string { return v.Orgunits }).(pulumi.StringArrayOutput) +} + +type PolicyExcludeMapPtrOutput struct{ *pulumi.OutputState } + +func (PolicyExcludeMapPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyExcludeMap)(nil)).Elem() +} + +func (o PolicyExcludeMapPtrOutput) ToPolicyExcludeMapPtrOutput() PolicyExcludeMapPtrOutput { + return o +} + +func (o PolicyExcludeMapPtrOutput) ToPolicyExcludeMapPtrOutputWithContext(ctx context.Context) PolicyExcludeMapPtrOutput { + return o +} + +func (o PolicyExcludeMapPtrOutput) Elem() PolicyExcludeMapOutput { + return o.ApplyT(func(v *PolicyExcludeMap) PolicyExcludeMap { return *v }).(PolicyExcludeMapOutput) +} + +// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. +func (o PolicyExcludeMapPtrOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyExcludeMap) []string { + if v == nil { + return nil + } + return v.Accounts + }).(pulumi.StringArrayOutput) +} + +func (o PolicyExcludeMapPtrOutput) Orgunits() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyExcludeMap) []string { + if v == nil { + return nil + } + return v.Orgunits + }).(pulumi.StringArrayOutput) +} + +type PolicyIncludeMap struct { + // A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + Accounts []string `pulumi:"accounts"` + Orgunits []string `pulumi:"orgunits"` +} + +// PolicyIncludeMapInput is an input type that accepts PolicyIncludeMap and PolicyIncludeMapOutput values. +// You can construct a concrete instance of `PolicyIncludeMapInput` via: +// +// PolicyIncludeMap{ "key": PolicyIncludeArgs{...} } +type PolicyIncludeMapInput interface { + pulumi.Input + + ToPolicyIncludeMapOutput() PolicyIncludeMapOutput + ToPolicyIncludeMapOutputWithContext(context.Context) PolicyIncludeMapOutput +} + +type PolicyIncludeMapArgs struct { + // A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + Accounts pulumi.StringArrayInput `pulumi:"accounts"` + Orgunits pulumi.StringArrayInput `pulumi:"orgunits"` +} + +func (PolicyIncludeMapArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyIncludeMap)(nil)).Elem() +} + +func (i PolicyIncludeMapArgs) ToPolicyIncludeMapOutput() PolicyIncludeMapOutput { + return i.ToPolicyIncludeMapOutputWithContext(context.Background()) +} + +func (i PolicyIncludeMapArgs) ToPolicyIncludeMapOutputWithContext(ctx context.Context) PolicyIncludeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyIncludeMapOutput) +} + +func (i PolicyIncludeMapArgs) ToPolicyIncludeMapPtrOutput() PolicyIncludeMapPtrOutput { + return i.ToPolicyIncludeMapPtrOutputWithContext(context.Background()) +} + +func (i PolicyIncludeMapArgs) ToPolicyIncludeMapPtrOutputWithContext(ctx context.Context) PolicyIncludeMapPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyIncludeMapOutput).ToPolicyIncludeMapPtrOutputWithContext(ctx) +} + +// PolicyIncludeMapPtrInput is an input type that accepts PolicyIncludeMapArgs, PolicyIncludeMapPtr and PolicyIncludeMapPtrOutput values. +// You can construct a concrete instance of `PolicyIncludeMapPtrInput` via: +// +// PolicyIncludeMapArgs{...} +// +// or: +// +// nil +type PolicyIncludeMapPtrInput interface { + pulumi.Input + + ToPolicyIncludeMapPtrOutput() PolicyIncludeMapPtrOutput + ToPolicyIncludeMapPtrOutputWithContext(context.Context) PolicyIncludeMapPtrOutput +} + +type policyIncludeMapPtrType PolicyIncludeMapArgs + +func PolicyIncludeMapPtr(v *PolicyIncludeMapArgs) PolicyIncludeMapPtrInput { + return (*policyIncludeMapPtrType)(v) +} + +func (*policyIncludeMapPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyIncludeMap)(nil)).Elem() +} + +func (i *policyIncludeMapPtrType) ToPolicyIncludeMapPtrOutput() PolicyIncludeMapPtrOutput { + return i.ToPolicyIncludeMapPtrOutputWithContext(context.Background()) +} + +func (i *policyIncludeMapPtrType) ToPolicyIncludeMapPtrOutputWithContext(ctx context.Context) PolicyIncludeMapPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicyIncludeMapPtrOutput) +} + +type PolicyIncludeMapOutput struct{ *pulumi.OutputState } + +func (PolicyIncludeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicyIncludeMap)(nil)).Elem() +} + +func (o PolicyIncludeMapOutput) ToPolicyIncludeMapOutput() PolicyIncludeMapOutput { + return o +} + +func (o PolicyIncludeMapOutput) ToPolicyIncludeMapOutputWithContext(ctx context.Context) PolicyIncludeMapOutput { + return o +} + +func (o PolicyIncludeMapOutput) ToPolicyIncludeMapPtrOutput() PolicyIncludeMapPtrOutput { + return o.ToPolicyIncludeMapPtrOutputWithContext(context.Background()) +} + +func (o PolicyIncludeMapOutput) ToPolicyIncludeMapPtrOutputWithContext(ctx context.Context) PolicyIncludeMapPtrOutput { + return o.ApplyT(func(v PolicyIncludeMap) *PolicyIncludeMap { + return &v + }).(PolicyIncludeMapPtrOutput) +} + +// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. +func (o PolicyIncludeMapOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v PolicyIncludeMap) []string { return v.Accounts }).(pulumi.StringArrayOutput) +} + +func (o PolicyIncludeMapOutput) Orgunits() pulumi.StringArrayOutput { + return o.ApplyT(func(v PolicyIncludeMap) []string { return v.Orgunits }).(pulumi.StringArrayOutput) +} + +type PolicyIncludeMapPtrOutput struct{ *pulumi.OutputState } + +func (PolicyIncludeMapPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicyIncludeMap)(nil)).Elem() +} + +func (o PolicyIncludeMapPtrOutput) ToPolicyIncludeMapPtrOutput() PolicyIncludeMapPtrOutput { + return o +} + +func (o PolicyIncludeMapPtrOutput) ToPolicyIncludeMapPtrOutputWithContext(ctx context.Context) PolicyIncludeMapPtrOutput { + return o +} + +func (o PolicyIncludeMapPtrOutput) Elem() PolicyIncludeMapOutput { + return o.ApplyT(func(v *PolicyIncludeMap) PolicyIncludeMap { return *v }).(PolicyIncludeMapOutput) +} + +// A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. +func (o PolicyIncludeMapPtrOutput) Accounts() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyIncludeMap) []string { + if v == nil { + return nil + } + return v.Accounts + }).(pulumi.StringArrayOutput) +} + +func (o PolicyIncludeMapPtrOutput) Orgunits() pulumi.StringArrayOutput { + return o.ApplyT(func(v *PolicyIncludeMap) []string { + if v == nil { + return nil + } + return v.Orgunits + }).(pulumi.StringArrayOutput) +} + +type PolicySecurityServicePolicyData struct { + // Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + ManagedServiceData *string `pulumi:"managedServiceData"` + // valid values are `BLOCK` or `COUNT`. + Type string `pulumi:"type"` +} + +// PolicySecurityServicePolicyDataInput is an input type that accepts PolicySecurityServicePolicyDataArgs and PolicySecurityServicePolicyDataOutput values. +// You can construct a concrete instance of `PolicySecurityServicePolicyDataInput` via: +// +// PolicySecurityServicePolicyDataArgs{...} +type PolicySecurityServicePolicyDataInput interface { + pulumi.Input + + ToPolicySecurityServicePolicyDataOutput() PolicySecurityServicePolicyDataOutput + ToPolicySecurityServicePolicyDataOutputWithContext(context.Context) PolicySecurityServicePolicyDataOutput +} + +type PolicySecurityServicePolicyDataArgs struct { + // Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + ManagedServiceData pulumi.StringPtrInput `pulumi:"managedServiceData"` + // valid values are `BLOCK` or `COUNT`. + Type pulumi.StringInput `pulumi:"type"` +} + +func (PolicySecurityServicePolicyDataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySecurityServicePolicyData)(nil)).Elem() +} + +func (i PolicySecurityServicePolicyDataArgs) ToPolicySecurityServicePolicyDataOutput() PolicySecurityServicePolicyDataOutput { + return i.ToPolicySecurityServicePolicyDataOutputWithContext(context.Background()) +} + +func (i PolicySecurityServicePolicyDataArgs) ToPolicySecurityServicePolicyDataOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySecurityServicePolicyDataOutput) +} + +func (i PolicySecurityServicePolicyDataArgs) ToPolicySecurityServicePolicyDataPtrOutput() PolicySecurityServicePolicyDataPtrOutput { + return i.ToPolicySecurityServicePolicyDataPtrOutputWithContext(context.Background()) +} + +func (i PolicySecurityServicePolicyDataArgs) ToPolicySecurityServicePolicyDataPtrOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySecurityServicePolicyDataOutput).ToPolicySecurityServicePolicyDataPtrOutputWithContext(ctx) +} + +// PolicySecurityServicePolicyDataPtrInput is an input type that accepts PolicySecurityServicePolicyDataArgs, PolicySecurityServicePolicyDataPtr and PolicySecurityServicePolicyDataPtrOutput values. +// You can construct a concrete instance of `PolicySecurityServicePolicyDataPtrInput` via: +// +// PolicySecurityServicePolicyDataArgs{...} +// +// or: +// +// nil +type PolicySecurityServicePolicyDataPtrInput interface { + pulumi.Input + + ToPolicySecurityServicePolicyDataPtrOutput() PolicySecurityServicePolicyDataPtrOutput + ToPolicySecurityServicePolicyDataPtrOutputWithContext(context.Context) PolicySecurityServicePolicyDataPtrOutput +} + +type policySecurityServicePolicyDataPtrType PolicySecurityServicePolicyDataArgs + +func PolicySecurityServicePolicyDataPtr(v *PolicySecurityServicePolicyDataArgs) PolicySecurityServicePolicyDataPtrInput { + return (*policySecurityServicePolicyDataPtrType)(v) +} + +func (*policySecurityServicePolicyDataPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySecurityServicePolicyData)(nil)).Elem() +} + +func (i *policySecurityServicePolicyDataPtrType) ToPolicySecurityServicePolicyDataPtrOutput() PolicySecurityServicePolicyDataPtrOutput { + return i.ToPolicySecurityServicePolicyDataPtrOutputWithContext(context.Background()) +} + +func (i *policySecurityServicePolicyDataPtrType) ToPolicySecurityServicePolicyDataPtrOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PolicySecurityServicePolicyDataPtrOutput) +} + +type PolicySecurityServicePolicyDataOutput struct{ *pulumi.OutputState } + +func (PolicySecurityServicePolicyDataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PolicySecurityServicePolicyData)(nil)).Elem() +} + +func (o PolicySecurityServicePolicyDataOutput) ToPolicySecurityServicePolicyDataOutput() PolicySecurityServicePolicyDataOutput { + return o +} + +func (o PolicySecurityServicePolicyDataOutput) ToPolicySecurityServicePolicyDataOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataOutput { + return o +} + +func (o PolicySecurityServicePolicyDataOutput) ToPolicySecurityServicePolicyDataPtrOutput() PolicySecurityServicePolicyDataPtrOutput { + return o.ToPolicySecurityServicePolicyDataPtrOutputWithContext(context.Background()) +} + +func (o PolicySecurityServicePolicyDataOutput) ToPolicySecurityServicePolicyDataPtrOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataPtrOutput { + return o.ApplyT(func(v PolicySecurityServicePolicyData) *PolicySecurityServicePolicyData { + return &v + }).(PolicySecurityServicePolicyDataPtrOutput) +} + +// Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. +func (o PolicySecurityServicePolicyDataOutput) ManagedServiceData() pulumi.StringPtrOutput { + return o.ApplyT(func(v PolicySecurityServicePolicyData) *string { return v.ManagedServiceData }).(pulumi.StringPtrOutput) +} + +// valid values are `BLOCK` or `COUNT`. +func (o PolicySecurityServicePolicyDataOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v PolicySecurityServicePolicyData) string { return v.Type }).(pulumi.StringOutput) +} + +type PolicySecurityServicePolicyDataPtrOutput struct{ *pulumi.OutputState } + +func (PolicySecurityServicePolicyDataPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PolicySecurityServicePolicyData)(nil)).Elem() +} + +func (o PolicySecurityServicePolicyDataPtrOutput) ToPolicySecurityServicePolicyDataPtrOutput() PolicySecurityServicePolicyDataPtrOutput { + return o +} + +func (o PolicySecurityServicePolicyDataPtrOutput) ToPolicySecurityServicePolicyDataPtrOutputWithContext(ctx context.Context) PolicySecurityServicePolicyDataPtrOutput { + return o +} + +func (o PolicySecurityServicePolicyDataPtrOutput) Elem() PolicySecurityServicePolicyDataOutput { + return o.ApplyT(func(v *PolicySecurityServicePolicyData) PolicySecurityServicePolicyData { return *v }).(PolicySecurityServicePolicyDataOutput) +} + +// Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. +func (o PolicySecurityServicePolicyDataPtrOutput) ManagedServiceData() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySecurityServicePolicyData) *string { + if v == nil { + return nil + } + return v.ManagedServiceData + }).(pulumi.StringPtrOutput) +} + +// valid values are `BLOCK` or `COUNT`. +func (o PolicySecurityServicePolicyDataPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PolicySecurityServicePolicyData) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +func init() { + pulumi.RegisterOutputType(PolicyExcludeMapOutput{}) + pulumi.RegisterOutputType(PolicyExcludeMapPtrOutput{}) + pulumi.RegisterOutputType(PolicyIncludeMapOutput{}) + pulumi.RegisterOutputType(PolicyIncludeMapPtrOutput{}) + pulumi.RegisterOutputType(PolicySecurityServicePolicyDataOutput{}) + pulumi.RegisterOutputType(PolicySecurityServicePolicyDataPtrOutput{}) +} diff --git a/sdk/go/aws/getPartition.go b/sdk/go/aws/getPartition.go index fd9195e07f5..53128a82cda 100644 --- a/sdk/go/aws/getPartition.go +++ b/sdk/go/aws/getPartition.go @@ -65,4 +65,6 @@ type GetPartitionResult struct { Id string `pulumi:"id"` // Identifier of the current partition (e.g. `aws` in AWS Commercial, `aws-cn` in AWS China). Partition string `pulumi:"partition"` + // Prefix of service names (e.g. `com.amazonaws` in AWS Commercial, `cn.com.amazonaws` in AWS China). + ReverseDnsPrefix string `pulumi:"reverseDnsPrefix"` } diff --git a/sdk/go/aws/identitystore/getGroup.go b/sdk/go/aws/identitystore/getGroup.go new file mode 100644 index 00000000000..c180d087e37 --- /dev/null +++ b/sdk/go/aws/identitystore/getGroup.go @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package identitystore + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Use this data source to get an Identity Store Group. +func GetGroup(ctx *pulumi.Context, args *GetGroupArgs, opts ...pulumi.InvokeOption) (*GetGroupResult, error) { + var rv GetGroupResult + err := ctx.Invoke("aws:identitystore/getGroup:getGroup", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getGroup. +type GetGroupArgs struct { + // Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + Filters []GetGroupFilter `pulumi:"filters"` + // The identifier for a group in the Identity Store. + GroupId *string `pulumi:"groupId"` + // The Identity Store ID associated with the Single Sign-On Instance. + IdentityStoreId string `pulumi:"identityStoreId"` +} + +// A collection of values returned by getGroup. +type GetGroupResult struct { + // The group's display name value. + DisplayName string `pulumi:"displayName"` + Filters []GetGroupFilter `pulumi:"filters"` + GroupId string `pulumi:"groupId"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + IdentityStoreId string `pulumi:"identityStoreId"` +} diff --git a/sdk/go/aws/identitystore/getUser.go b/sdk/go/aws/identitystore/getUser.go new file mode 100644 index 00000000000..bde70dbd479 --- /dev/null +++ b/sdk/go/aws/identitystore/getUser.go @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package identitystore + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Use this data source to get an Identity Store User. +func GetUser(ctx *pulumi.Context, args *GetUserArgs, opts ...pulumi.InvokeOption) (*GetUserResult, error) { + var rv GetUserResult + err := ctx.Invoke("aws:identitystore/getUser:getUser", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getUser. +type GetUserArgs struct { + // Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + Filters []GetUserFilter `pulumi:"filters"` + // The Identity Store ID associated with the Single Sign-On Instance. + IdentityStoreId string `pulumi:"identityStoreId"` + // The identifier for a user in the Identity Store. + UserId *string `pulumi:"userId"` +} + +// A collection of values returned by getUser. +type GetUserResult struct { + Filters []GetUserFilter `pulumi:"filters"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + IdentityStoreId string `pulumi:"identityStoreId"` + UserId string `pulumi:"userId"` + // The user's user name value. + UserName string `pulumi:"userName"` +} diff --git a/sdk/go/aws/identitystore/pulumiTypes.go b/sdk/go/aws/identitystore/pulumiTypes.go new file mode 100644 index 00000000000..3459d0f2bcf --- /dev/null +++ b/sdk/go/aws/identitystore/pulumiTypes.go @@ -0,0 +1,230 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package identitystore + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +type GetGroupFilter struct { + // The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + AttributePath string `pulumi:"attributePath"` + // The value for an attribute. + AttributeValue string `pulumi:"attributeValue"` +} + +// GetGroupFilterInput is an input type that accepts GetGroupFilterArgs and GetGroupFilterOutput values. +// You can construct a concrete instance of `GetGroupFilterInput` via: +// +// GetGroupFilterArgs{...} +type GetGroupFilterInput interface { + pulumi.Input + + ToGetGroupFilterOutput() GetGroupFilterOutput + ToGetGroupFilterOutputWithContext(context.Context) GetGroupFilterOutput +} + +type GetGroupFilterArgs struct { + // The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + AttributePath pulumi.StringInput `pulumi:"attributePath"` + // The value for an attribute. + AttributeValue pulumi.StringInput `pulumi:"attributeValue"` +} + +func (GetGroupFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupFilter)(nil)).Elem() +} + +func (i GetGroupFilterArgs) ToGetGroupFilterOutput() GetGroupFilterOutput { + return i.ToGetGroupFilterOutputWithContext(context.Background()) +} + +func (i GetGroupFilterArgs) ToGetGroupFilterOutputWithContext(ctx context.Context) GetGroupFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupFilterOutput) +} + +// GetGroupFilterArrayInput is an input type that accepts GetGroupFilterArray and GetGroupFilterArrayOutput values. +// You can construct a concrete instance of `GetGroupFilterArrayInput` via: +// +// GetGroupFilterArray{ GetGroupFilterArgs{...} } +type GetGroupFilterArrayInput interface { + pulumi.Input + + ToGetGroupFilterArrayOutput() GetGroupFilterArrayOutput + ToGetGroupFilterArrayOutputWithContext(context.Context) GetGroupFilterArrayOutput +} + +type GetGroupFilterArray []GetGroupFilterInput + +func (GetGroupFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupFilter)(nil)).Elem() +} + +func (i GetGroupFilterArray) ToGetGroupFilterArrayOutput() GetGroupFilterArrayOutput { + return i.ToGetGroupFilterArrayOutputWithContext(context.Background()) +} + +func (i GetGroupFilterArray) ToGetGroupFilterArrayOutputWithContext(ctx context.Context) GetGroupFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetGroupFilterArrayOutput) +} + +type GetGroupFilterOutput struct{ *pulumi.OutputState } + +func (GetGroupFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetGroupFilter)(nil)).Elem() +} + +func (o GetGroupFilterOutput) ToGetGroupFilterOutput() GetGroupFilterOutput { + return o +} + +func (o GetGroupFilterOutput) ToGetGroupFilterOutputWithContext(ctx context.Context) GetGroupFilterOutput { + return o +} + +// The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. +func (o GetGroupFilterOutput) AttributePath() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupFilter) string { return v.AttributePath }).(pulumi.StringOutput) +} + +// The value for an attribute. +func (o GetGroupFilterOutput) AttributeValue() pulumi.StringOutput { + return o.ApplyT(func(v GetGroupFilter) string { return v.AttributeValue }).(pulumi.StringOutput) +} + +type GetGroupFilterArrayOutput struct{ *pulumi.OutputState } + +func (GetGroupFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetGroupFilter)(nil)).Elem() +} + +func (o GetGroupFilterArrayOutput) ToGetGroupFilterArrayOutput() GetGroupFilterArrayOutput { + return o +} + +func (o GetGroupFilterArrayOutput) ToGetGroupFilterArrayOutputWithContext(ctx context.Context) GetGroupFilterArrayOutput { + return o +} + +func (o GetGroupFilterArrayOutput) Index(i pulumi.IntInput) GetGroupFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetGroupFilter { + return vs[0].([]GetGroupFilter)[vs[1].(int)] + }).(GetGroupFilterOutput) +} + +type GetUserFilter struct { + // The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + AttributePath string `pulumi:"attributePath"` + // The value for an attribute. + AttributeValue string `pulumi:"attributeValue"` +} + +// GetUserFilterInput is an input type that accepts GetUserFilterArgs and GetUserFilterOutput values. +// You can construct a concrete instance of `GetUserFilterInput` via: +// +// GetUserFilterArgs{...} +type GetUserFilterInput interface { + pulumi.Input + + ToGetUserFilterOutput() GetUserFilterOutput + ToGetUserFilterOutputWithContext(context.Context) GetUserFilterOutput +} + +type GetUserFilterArgs struct { + // The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + AttributePath pulumi.StringInput `pulumi:"attributePath"` + // The value for an attribute. + AttributeValue pulumi.StringInput `pulumi:"attributeValue"` +} + +func (GetUserFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetUserFilter)(nil)).Elem() +} + +func (i GetUserFilterArgs) ToGetUserFilterOutput() GetUserFilterOutput { + return i.ToGetUserFilterOutputWithContext(context.Background()) +} + +func (i GetUserFilterArgs) ToGetUserFilterOutputWithContext(ctx context.Context) GetUserFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetUserFilterOutput) +} + +// GetUserFilterArrayInput is an input type that accepts GetUserFilterArray and GetUserFilterArrayOutput values. +// You can construct a concrete instance of `GetUserFilterArrayInput` via: +// +// GetUserFilterArray{ GetUserFilterArgs{...} } +type GetUserFilterArrayInput interface { + pulumi.Input + + ToGetUserFilterArrayOutput() GetUserFilterArrayOutput + ToGetUserFilterArrayOutputWithContext(context.Context) GetUserFilterArrayOutput +} + +type GetUserFilterArray []GetUserFilterInput + +func (GetUserFilterArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetUserFilter)(nil)).Elem() +} + +func (i GetUserFilterArray) ToGetUserFilterArrayOutput() GetUserFilterArrayOutput { + return i.ToGetUserFilterArrayOutputWithContext(context.Background()) +} + +func (i GetUserFilterArray) ToGetUserFilterArrayOutputWithContext(ctx context.Context) GetUserFilterArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetUserFilterArrayOutput) +} + +type GetUserFilterOutput struct{ *pulumi.OutputState } + +func (GetUserFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetUserFilter)(nil)).Elem() +} + +func (o GetUserFilterOutput) ToGetUserFilterOutput() GetUserFilterOutput { + return o +} + +func (o GetUserFilterOutput) ToGetUserFilterOutputWithContext(ctx context.Context) GetUserFilterOutput { + return o +} + +// The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. +func (o GetUserFilterOutput) AttributePath() pulumi.StringOutput { + return o.ApplyT(func(v GetUserFilter) string { return v.AttributePath }).(pulumi.StringOutput) +} + +// The value for an attribute. +func (o GetUserFilterOutput) AttributeValue() pulumi.StringOutput { + return o.ApplyT(func(v GetUserFilter) string { return v.AttributeValue }).(pulumi.StringOutput) +} + +type GetUserFilterArrayOutput struct{ *pulumi.OutputState } + +func (GetUserFilterArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetUserFilter)(nil)).Elem() +} + +func (o GetUserFilterArrayOutput) ToGetUserFilterArrayOutput() GetUserFilterArrayOutput { + return o +} + +func (o GetUserFilterArrayOutput) ToGetUserFilterArrayOutputWithContext(ctx context.Context) GetUserFilterArrayOutput { + return o +} + +func (o GetUserFilterArrayOutput) Index(i pulumi.IntInput) GetUserFilterOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetUserFilter { + return vs[0].([]GetUserFilter)[vs[1].(int)] + }).(GetUserFilterOutput) +} + +func init() { + pulumi.RegisterOutputType(GetGroupFilterOutput{}) + pulumi.RegisterOutputType(GetGroupFilterArrayOutput{}) + pulumi.RegisterOutputType(GetUserFilterOutput{}) + pulumi.RegisterOutputType(GetUserFilterArrayOutput{}) +} diff --git a/sdk/go/aws/rds/instance.go b/sdk/go/aws/rds/instance.go index e2551fdedc7..8659f4665b2 100644 --- a/sdk/go/aws/rds/instance.go +++ b/sdk/go/aws/rds/instance.go @@ -176,7 +176,7 @@ type Instance struct { EngineVersion pulumi.StringOutput `pulumi:"engineVersion"` // The name of your final DB snapshot // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - // set to `false`. + // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. FinalSnapshotIdentifier pulumi.StringPtrOutput `pulumi:"finalSnapshotIdentifier"` // The canonical hosted zone ID of the DB instance (to be used // in a Route 53 Alias record). @@ -409,7 +409,7 @@ type instanceState struct { EngineVersion *string `pulumi:"engineVersion"` // The name of your final DB snapshot // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - // set to `false`. + // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // The canonical hosted zone ID of the DB instance (to be used // in a Route 53 Alias record). @@ -611,7 +611,7 @@ type InstanceState struct { EngineVersion pulumi.StringPtrInput // The name of your final DB snapshot // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - // set to `false`. + // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. FinalSnapshotIdentifier pulumi.StringPtrInput // The canonical hosted zone ID of the DB instance (to be used // in a Route 53 Alias record). @@ -811,7 +811,7 @@ type instanceArgs struct { EngineVersion *string `pulumi:"engineVersion"` // The name of your final DB snapshot // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - // set to `false`. + // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. FinalSnapshotIdentifier *string `pulumi:"finalSnapshotIdentifier"` // Specifies whether or // mappings of AWS Identity and Access Management (IAM) accounts to database @@ -998,7 +998,7 @@ type InstanceArgs struct { EngineVersion pulumi.StringPtrInput // The name of your final DB snapshot // when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - // set to `false`. + // set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. FinalSnapshotIdentifier pulumi.StringPtrInput // Specifies whether or // mappings of AWS Identity and Access Management (IAM) accounts to database diff --git a/sdk/go/aws/route53/resolverDnsSecConfig.go b/sdk/go/aws/route53/resolverDnsSecConfig.go new file mode 100644 index 00000000000..83c75d10f97 --- /dev/null +++ b/sdk/go/aws/route53/resolverDnsSecConfig.go @@ -0,0 +1,177 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package route53 + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides a Route 53 Resolver DNSSEC config resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/route53" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleVpc, err := ec2.NewVpc(ctx, "exampleVpc", &ec2.VpcArgs{ +// CidrBlock: pulumi.String("10.0.0.0/16"), +// EnableDnsSupport: pulumi.Bool(true), +// EnableDnsHostnames: pulumi.Bool(true), +// }) +// if err != nil { +// return err +// } +// _, err = route53.NewResolverDnsSecConfig(ctx, "exampleResolverDnsSecConfig", &route53.ResolverDnsSecConfigArgs{ +// ResourceId: exampleVpc.ID(), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Route 53 Resolver DNSSEC configs can be imported using the Route 53 Resolver DNSSEC config ID, e.g. +// +// ```sh +// $ pulumi import aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig example rdsc-be1866ecc1683e95 +// ``` +type ResolverDnsSecConfig struct { + pulumi.CustomResourceState + + // The ARN for a configuration for DNSSEC validation. + Arn pulumi.StringOutput `pulumi:"arn"` + // The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + OwnerId pulumi.StringOutput `pulumi:"ownerId"` + // The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + ResourceId pulumi.StringOutput `pulumi:"resourceId"` + // The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + ValidationStatus pulumi.StringOutput `pulumi:"validationStatus"` +} + +// NewResolverDnsSecConfig registers a new resource with the given unique name, arguments, and options. +func NewResolverDnsSecConfig(ctx *pulumi.Context, + name string, args *ResolverDnsSecConfigArgs, opts ...pulumi.ResourceOption) (*ResolverDnsSecConfig, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.ResourceId == nil { + return nil, errors.New("invalid value for required argument 'ResourceId'") + } + var resource ResolverDnsSecConfig + err := ctx.RegisterResource("aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetResolverDnsSecConfig gets an existing ResolverDnsSecConfig resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetResolverDnsSecConfig(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *ResolverDnsSecConfigState, opts ...pulumi.ResourceOption) (*ResolverDnsSecConfig, error) { + var resource ResolverDnsSecConfig + err := ctx.ReadResource("aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering ResolverDnsSecConfig resources. +type resolverDnsSecConfigState struct { + // The ARN for a configuration for DNSSEC validation. + Arn *string `pulumi:"arn"` + // The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + OwnerId *string `pulumi:"ownerId"` + // The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + ResourceId *string `pulumi:"resourceId"` + // The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + ValidationStatus *string `pulumi:"validationStatus"` +} + +type ResolverDnsSecConfigState struct { + // The ARN for a configuration for DNSSEC validation. + Arn pulumi.StringPtrInput + // The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + OwnerId pulumi.StringPtrInput + // The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + ResourceId pulumi.StringPtrInput + // The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + ValidationStatus pulumi.StringPtrInput +} + +func (ResolverDnsSecConfigState) ElementType() reflect.Type { + return reflect.TypeOf((*resolverDnsSecConfigState)(nil)).Elem() +} + +type resolverDnsSecConfigArgs struct { + // The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + ResourceId string `pulumi:"resourceId"` +} + +// The set of arguments for constructing a ResolverDnsSecConfig resource. +type ResolverDnsSecConfigArgs struct { + // The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + ResourceId pulumi.StringInput +} + +func (ResolverDnsSecConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*resolverDnsSecConfigArgs)(nil)).Elem() +} + +type ResolverDnsSecConfigInput interface { + pulumi.Input + + ToResolverDnsSecConfigOutput() ResolverDnsSecConfigOutput + ToResolverDnsSecConfigOutputWithContext(ctx context.Context) ResolverDnsSecConfigOutput +} + +func (*ResolverDnsSecConfig) ElementType() reflect.Type { + return reflect.TypeOf((*ResolverDnsSecConfig)(nil)) +} + +func (i *ResolverDnsSecConfig) ToResolverDnsSecConfigOutput() ResolverDnsSecConfigOutput { + return i.ToResolverDnsSecConfigOutputWithContext(context.Background()) +} + +func (i *ResolverDnsSecConfig) ToResolverDnsSecConfigOutputWithContext(ctx context.Context) ResolverDnsSecConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ResolverDnsSecConfigOutput) +} + +type ResolverDnsSecConfigOutput struct { + *pulumi.OutputState +} + +func (ResolverDnsSecConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ResolverDnsSecConfig)(nil)) +} + +func (o ResolverDnsSecConfigOutput) ToResolverDnsSecConfigOutput() ResolverDnsSecConfigOutput { + return o +} + +func (o ResolverDnsSecConfigOutput) ToResolverDnsSecConfigOutputWithContext(ctx context.Context) ResolverDnsSecConfigOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(ResolverDnsSecConfigOutput{}) +} diff --git a/sdk/go/aws/sagemaker/domain.go b/sdk/go/aws/sagemaker/domain.go new file mode 100644 index 00000000000..4425d5daec0 --- /dev/null +++ b/sdk/go/aws/sagemaker/domain.go @@ -0,0 +1,293 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package sagemaker + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides a Sagemaker Domain resource. +// +// ## Example Usage +// ### Basic usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sagemaker" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := sagemaker.NewDomain(ctx, "exampleDomain", &sagemaker.DomainArgs{ +// DomainName: pulumi.String("example"), +// AuthMode: pulumi.String("IAM"), +// VpcId: pulumi.Any(aws_vpc.Test.Id), +// SubnetIds: pulumi.StringArray{ +// pulumi.Any(aws_subnet.Test.Id), +// }, +// DefaultUserSettings: &sagemaker.DomainDefaultUserSettingsArgs{ +// ExecutionRole: pulumi.Any(aws_iam_role.Test.Arn), +// }, +// }) +// if err != nil { +// return err +// } +// examplePolicyDocument, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// iam.GetPolicyDocumentStatement{ +// Actions: []string{ +// "sts:AssumeRole", +// }, +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// iam.GetPolicyDocumentStatementPrincipal{ +// Type: "Service", +// Identifiers: []string{ +// "sagemaker.amazonaws.com", +// }, +// }, +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// _, err = iam.NewRole(ctx, "exampleRole", &iam.RoleArgs{ +// Path: pulumi.String("/"), +// AssumeRolePolicy: pulumi.String(examplePolicyDocument.Json), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// +// ## Import +// +// Sagemaker Code Domains can be imported using the `id`, e.g. +// +// ```sh +// $ pulumi import aws:sagemaker/domain:Domain test_domain d-8jgsjtilstu8 +// ``` +type Domain struct { + pulumi.CustomResourceState + + // Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + AppNetworkAccessType pulumi.StringPtrOutput `pulumi:"appNetworkAccessType"` + // The Amazon Resource Name (ARN) assigned by AWS to this Domain. + Arn pulumi.StringOutput `pulumi:"arn"` + // The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + AuthMode pulumi.StringOutput `pulumi:"authMode"` + // The default user settings. See Default User Settings below. + DefaultUserSettings DomainDefaultUserSettingsOutput `pulumi:"defaultUserSettings"` + // The domain name. + DomainName pulumi.StringOutput `pulumi:"domainName"` + // The ID of the Amazon Elastic File System (EFS) managed by this Domain. + HomeEfsFileSystemId pulumi.StringOutput `pulumi:"homeEfsFileSystemId"` + // The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` + // The SSO managed application instance ID. + SingleSignOnManagedApplicationInstanceId pulumi.StringOutput `pulumi:"singleSignOnManagedApplicationInstanceId"` + // The VPC subnets that Studio uses for communication. + SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` + // A map of tags to assign to the resource. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // The domain's URL. + Url pulumi.StringOutput `pulumi:"url"` + // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + VpcId pulumi.StringOutput `pulumi:"vpcId"` +} + +// NewDomain registers a new resource with the given unique name, arguments, and options. +func NewDomain(ctx *pulumi.Context, + name string, args *DomainArgs, opts ...pulumi.ResourceOption) (*Domain, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AuthMode == nil { + return nil, errors.New("invalid value for required argument 'AuthMode'") + } + if args.DefaultUserSettings == nil { + return nil, errors.New("invalid value for required argument 'DefaultUserSettings'") + } + if args.DomainName == nil { + return nil, errors.New("invalid value for required argument 'DomainName'") + } + if args.SubnetIds == nil { + return nil, errors.New("invalid value for required argument 'SubnetIds'") + } + if args.VpcId == nil { + return nil, errors.New("invalid value for required argument 'VpcId'") + } + var resource Domain + err := ctx.RegisterResource("aws:sagemaker/domain:Domain", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDomain gets an existing Domain resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDomain(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DomainState, opts ...pulumi.ResourceOption) (*Domain, error) { + var resource Domain + err := ctx.ReadResource("aws:sagemaker/domain:Domain", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering Domain resources. +type domainState struct { + // Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + AppNetworkAccessType *string `pulumi:"appNetworkAccessType"` + // The Amazon Resource Name (ARN) assigned by AWS to this Domain. + Arn *string `pulumi:"arn"` + // The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + AuthMode *string `pulumi:"authMode"` + // The default user settings. See Default User Settings below. + DefaultUserSettings *DomainDefaultUserSettings `pulumi:"defaultUserSettings"` + // The domain name. + DomainName *string `pulumi:"domainName"` + // The ID of the Amazon Elastic File System (EFS) managed by this Domain. + HomeEfsFileSystemId *string `pulumi:"homeEfsFileSystemId"` + // The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The SSO managed application instance ID. + SingleSignOnManagedApplicationInstanceId *string `pulumi:"singleSignOnManagedApplicationInstanceId"` + // The VPC subnets that Studio uses for communication. + SubnetIds []string `pulumi:"subnetIds"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // The domain's URL. + Url *string `pulumi:"url"` + // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + VpcId *string `pulumi:"vpcId"` +} + +type DomainState struct { + // Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + AppNetworkAccessType pulumi.StringPtrInput + // The Amazon Resource Name (ARN) assigned by AWS to this Domain. + Arn pulumi.StringPtrInput + // The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + AuthMode pulumi.StringPtrInput + // The default user settings. See Default User Settings below. + DefaultUserSettings DomainDefaultUserSettingsPtrInput + // The domain name. + DomainName pulumi.StringPtrInput + // The ID of the Amazon Elastic File System (EFS) managed by this Domain. + HomeEfsFileSystemId pulumi.StringPtrInput + // The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + KmsKeyId pulumi.StringPtrInput + // The SSO managed application instance ID. + SingleSignOnManagedApplicationInstanceId pulumi.StringPtrInput + // The VPC subnets that Studio uses for communication. + SubnetIds pulumi.StringArrayInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput + // The domain's URL. + Url pulumi.StringPtrInput + // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + VpcId pulumi.StringPtrInput +} + +func (DomainState) ElementType() reflect.Type { + return reflect.TypeOf((*domainState)(nil)).Elem() +} + +type domainArgs struct { + // Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + AppNetworkAccessType *string `pulumi:"appNetworkAccessType"` + // The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + AuthMode string `pulumi:"authMode"` + // The default user settings. See Default User Settings below. + DefaultUserSettings DomainDefaultUserSettings `pulumi:"defaultUserSettings"` + // The domain name. + DomainName string `pulumi:"domainName"` + // The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + KmsKeyId *string `pulumi:"kmsKeyId"` + // The VPC subnets that Studio uses for communication. + SubnetIds []string `pulumi:"subnetIds"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + VpcId string `pulumi:"vpcId"` +} + +// The set of arguments for constructing a Domain resource. +type DomainArgs struct { + // Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + AppNetworkAccessType pulumi.StringPtrInput + // The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + AuthMode pulumi.StringInput + // The default user settings. See Default User Settings below. + DefaultUserSettings DomainDefaultUserSettingsInput + // The domain name. + DomainName pulumi.StringInput + // The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + KmsKeyId pulumi.StringPtrInput + // The VPC subnets that Studio uses for communication. + SubnetIds pulumi.StringArrayInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput + // The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + VpcId pulumi.StringInput +} + +func (DomainArgs) ElementType() reflect.Type { + return reflect.TypeOf((*domainArgs)(nil)).Elem() +} + +type DomainInput interface { + pulumi.Input + + ToDomainOutput() DomainOutput + ToDomainOutputWithContext(ctx context.Context) DomainOutput +} + +func (*Domain) ElementType() reflect.Type { + return reflect.TypeOf((*Domain)(nil)) +} + +func (i *Domain) ToDomainOutput() DomainOutput { + return i.ToDomainOutputWithContext(context.Background()) +} + +func (i *Domain) ToDomainOutputWithContext(ctx context.Context) DomainOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainOutput) +} + +type DomainOutput struct { + *pulumi.OutputState +} + +func (DomainOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Domain)(nil)) +} + +func (o DomainOutput) ToDomainOutput() DomainOutput { + return o +} + +func (o DomainOutput) ToDomainOutputWithContext(ctx context.Context) DomainOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(DomainOutput{}) +} diff --git a/sdk/go/aws/sagemaker/pulumiTypes.go b/sdk/go/aws/sagemaker/pulumiTypes.go index ef693180c36..8c6b6e03d7d 100644 --- a/sdk/go/aws/sagemaker/pulumiTypes.go +++ b/sdk/go/aws/sagemaker/pulumiTypes.go @@ -166,6 +166,1418 @@ func (o CodeRepositoryGitConfigPtrOutput) SecretArn() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type DomainDefaultUserSettings struct { + // The execution role ARN for the user. + ExecutionRole string `pulumi:"executionRole"` + // The Jupyter server's app settings. See Jupyter Server App Settings below. + JupyterServerAppSettings *DomainDefaultUserSettingsJupyterServerAppSettings `pulumi:"jupyterServerAppSettings"` + // The kernel gateway app settings. See Kernel Gateway App Settings below. + KernelGatewayAppSettings *DomainDefaultUserSettingsKernelGatewayAppSettings `pulumi:"kernelGatewayAppSettings"` + // The security groups. + SecurityGroups []string `pulumi:"securityGroups"` + // The sharing settings. See Sharing Settings below. + SharingSettings *DomainDefaultUserSettingsSharingSettings `pulumi:"sharingSettings"` + // The TensorBoard app settings. See TensorBoard App Settings below. + TensorBoardAppSettings *DomainDefaultUserSettingsTensorBoardAppSettings `pulumi:"tensorBoardAppSettings"` +} + +// DomainDefaultUserSettingsInput is an input type that accepts DomainDefaultUserSettingsArgs and DomainDefaultUserSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsInput` via: +// +// DomainDefaultUserSettingsArgs{...} +type DomainDefaultUserSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsOutput() DomainDefaultUserSettingsOutput + ToDomainDefaultUserSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsOutput +} + +type DomainDefaultUserSettingsArgs struct { + // The execution role ARN for the user. + ExecutionRole pulumi.StringInput `pulumi:"executionRole"` + // The Jupyter server's app settings. See Jupyter Server App Settings below. + JupyterServerAppSettings DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput `pulumi:"jupyterServerAppSettings"` + // The kernel gateway app settings. See Kernel Gateway App Settings below. + KernelGatewayAppSettings DomainDefaultUserSettingsKernelGatewayAppSettingsPtrInput `pulumi:"kernelGatewayAppSettings"` + // The security groups. + SecurityGroups pulumi.StringArrayInput `pulumi:"securityGroups"` + // The sharing settings. See Sharing Settings below. + SharingSettings DomainDefaultUserSettingsSharingSettingsPtrInput `pulumi:"sharingSettings"` + // The TensorBoard app settings. See TensorBoard App Settings below. + TensorBoardAppSettings DomainDefaultUserSettingsTensorBoardAppSettingsPtrInput `pulumi:"tensorBoardAppSettings"` +} + +func (DomainDefaultUserSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsArgs) ToDomainDefaultUserSettingsOutput() DomainDefaultUserSettingsOutput { + return i.ToDomainDefaultUserSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsArgs) ToDomainDefaultUserSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsOutput) +} + +func (i DomainDefaultUserSettingsArgs) ToDomainDefaultUserSettingsPtrOutput() DomainDefaultUserSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsArgs) ToDomainDefaultUserSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsOutput).ToDomainDefaultUserSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsArgs, DomainDefaultUserSettingsPtr and DomainDefaultUserSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsPtrInput` via: +// +// DomainDefaultUserSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsPtrOutput() DomainDefaultUserSettingsPtrOutput + ToDomainDefaultUserSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsPtrOutput +} + +type domainDefaultUserSettingsPtrType DomainDefaultUserSettingsArgs + +func DomainDefaultUserSettingsPtr(v *DomainDefaultUserSettingsArgs) DomainDefaultUserSettingsPtrInput { + return (*domainDefaultUserSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsPtrType) ToDomainDefaultUserSettingsPtrOutput() DomainDefaultUserSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsPtrType) ToDomainDefaultUserSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsPtrOutput) +} + +type DomainDefaultUserSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsOutput) ToDomainDefaultUserSettingsOutput() DomainDefaultUserSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsOutput) ToDomainDefaultUserSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsOutput) ToDomainDefaultUserSettingsPtrOutput() DomainDefaultUserSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsOutput) ToDomainDefaultUserSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettings { + return &v + }).(DomainDefaultUserSettingsPtrOutput) +} + +// The execution role ARN for the user. +func (o DomainDefaultUserSettingsOutput) ExecutionRole() pulumi.StringOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) string { return v.ExecutionRole }).(pulumi.StringOutput) +} + +// The Jupyter server's app settings. See Jupyter Server App Settings below. +func (o DomainDefaultUserSettingsOutput) JupyterServerAppSettings() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettingsJupyterServerAppSettings { + return v.JupyterServerAppSettings + }).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +// The kernel gateway app settings. See Kernel Gateway App Settings below. +func (o DomainDefaultUserSettingsOutput) KernelGatewayAppSettings() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettingsKernelGatewayAppSettings { + return v.KernelGatewayAppSettings + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) +} + +// The security groups. +func (o DomainDefaultUserSettingsOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) []string { return v.SecurityGroups }).(pulumi.StringArrayOutput) +} + +// The sharing settings. See Sharing Settings below. +func (o DomainDefaultUserSettingsOutput) SharingSettings() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettingsSharingSettings { return v.SharingSettings }).(DomainDefaultUserSettingsSharingSettingsPtrOutput) +} + +// The TensorBoard app settings. See TensorBoard App Settings below. +func (o DomainDefaultUserSettingsOutput) TensorBoardAppSettings() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettings) *DomainDefaultUserSettingsTensorBoardAppSettings { + return v.TensorBoardAppSettings + }).(DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsPtrOutput) ToDomainDefaultUserSettingsPtrOutput() DomainDefaultUserSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsPtrOutput) ToDomainDefaultUserSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsPtrOutput) Elem() DomainDefaultUserSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) DomainDefaultUserSettings { return *v }).(DomainDefaultUserSettingsOutput) +} + +// The execution role ARN for the user. +func (o DomainDefaultUserSettingsPtrOutput) ExecutionRole() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *string { + if v == nil { + return nil + } + return &v.ExecutionRole + }).(pulumi.StringPtrOutput) +} + +// The Jupyter server's app settings. See Jupyter Server App Settings below. +func (o DomainDefaultUserSettingsPtrOutput) JupyterServerAppSettings() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *DomainDefaultUserSettingsJupyterServerAppSettings { + if v == nil { + return nil + } + return v.JupyterServerAppSettings + }).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +// The kernel gateway app settings. See Kernel Gateway App Settings below. +func (o DomainDefaultUserSettingsPtrOutput) KernelGatewayAppSettings() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *DomainDefaultUserSettingsKernelGatewayAppSettings { + if v == nil { + return nil + } + return v.KernelGatewayAppSettings + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) +} + +// The security groups. +func (o DomainDefaultUserSettingsPtrOutput) SecurityGroups() pulumi.StringArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) []string { + if v == nil { + return nil + } + return v.SecurityGroups + }).(pulumi.StringArrayOutput) +} + +// The sharing settings. See Sharing Settings below. +func (o DomainDefaultUserSettingsPtrOutput) SharingSettings() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *DomainDefaultUserSettingsSharingSettings { + if v == nil { + return nil + } + return v.SharingSettings + }).(DomainDefaultUserSettingsSharingSettingsPtrOutput) +} + +// The TensorBoard app settings. See TensorBoard App Settings below. +func (o DomainDefaultUserSettingsPtrOutput) TensorBoardAppSettings() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettings) *DomainDefaultUserSettingsTensorBoardAppSettings { + if v == nil { + return nil + } + return v.TensorBoardAppSettings + }).(DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettings struct { + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs and DomainDefaultUserSettingsJupyterServerAppSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} +type DomainDefaultUserSettingsJupyterServerAppSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsArgs struct { + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` +} + +func (DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput).ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsArgs, DomainDefaultUserSettingsJupyterServerAppSettingsPtr and DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput +} + +type domainDefaultUserSettingsJupyterServerAppSettingsPtrType DomainDefaultUserSettingsJupyterServerAppSettingsArgs + +func DomainDefaultUserSettingsJupyterServerAppSettingsPtr(v *DomainDefaultUserSettingsJupyterServerAppSettingsArgs) DomainDefaultUserSettingsJupyterServerAppSettingsPtrInput { + return (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutput() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettings) *DomainDefaultUserSettingsJupyterServerAppSettings { + return &v + }).(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsOutput) DefaultResourceSpec() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettings) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + return v.DefaultResourceSpec + }).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) Elem() DomainDefaultUserSettingsJupyterServerAppSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterServerAppSettings) DomainDefaultUserSettingsJupyterServerAppSettings { + return *v + }).(DomainDefaultUserSettingsJupyterServerAppSettingsOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput) DefaultResourceSpec() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterServerAppSettings) *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + if v == nil { + return nil + } + return &v.DefaultResourceSpec + }).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec struct { + // The instance type. + InstanceType *string `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn *string `pulumi:"sagemakerImageArn"` +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs and DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs{...} +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs struct { + // The instance type. + InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn pulumi.StringPtrInput `pulumi:"sagemakerImageArn"` +} + +func (DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput).ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput is an input type that accepts DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs, DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtr and DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput` via: +// +// DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput + ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput +} + +type domainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrType DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs + +func DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtr(v *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrInput { + return (*domainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrType)(v) +} + +func (*domainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return o.ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + return &v + }).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) *string { + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) *string { + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) Elem() DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + return *v + }).(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettings struct { + // A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + CustomImages []DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage `pulumi:"customImages"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsArgs and DomainDefaultUserSettingsKernelGatewayAppSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsArgs{...} +type DomainDefaultUserSettingsKernelGatewayAppSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsOutput +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsArgs struct { + // A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + CustomImages DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayInput `pulumi:"customImages"` + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` +} + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsOutput).ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsArgs, DomainDefaultUserSettingsKernelGatewayAppSettingsPtr and DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsPtrInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsKernelGatewayAppSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput +} + +type domainDefaultUserSettingsKernelGatewayAppSettingsPtrType DomainDefaultUserSettingsKernelGatewayAppSettingsArgs + +func DomainDefaultUserSettingsKernelGatewayAppSettingsPtr(v *DomainDefaultUserSettingsKernelGatewayAppSettingsArgs) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrInput { + return (*domainDefaultUserSettingsKernelGatewayAppSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsKernelGatewayAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsKernelGatewayAppSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsKernelGatewayAppSettingsPtrType) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsKernelGatewayAppSettingsPtrType) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettings) *DomainDefaultUserSettingsKernelGatewayAppSettings { + return &v + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) +} + +// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) CustomImages() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettings) []DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage { + return v.CustomImages + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) DefaultResourceSpec() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettings) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + return v.DefaultResourceSpec + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsKernelGatewayAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) Elem() DomainDefaultUserSettingsKernelGatewayAppSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettings) DomainDefaultUserSettingsKernelGatewayAppSettings { + return *v + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsOutput) +} + +// A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) CustomImages() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettings) []DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage { + if v == nil { + return nil + } + return v.CustomImages + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput) DefaultResourceSpec() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettings) *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + if v == nil { + return nil + } + return &v.DefaultResourceSpec + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage struct { + // The name of the App Image Config. + AppImageConfigName string `pulumi:"appImageConfigName"` + // The name of the Custom Image. + ImageName string `pulumi:"imageName"` + // The version number of the Custom Image. + ImageVersionNumber *int `pulumi:"imageVersionNumber"` +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs and DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs{...} +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs struct { + // The name of the App Image Config. + AppImageConfigName pulumi.StringInput `pulumi:"appImageConfigName"` + // The name of the Custom Image. + ImageName pulumi.StringInput `pulumi:"imageName"` + // The version number of the Custom Image. + ImageVersionNumber pulumi.IntPtrInput `pulumi:"imageVersionNumber"` +} + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray and DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray{ DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs{...} } +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray []DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageInput + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArray) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput { + return o +} + +// The name of the App Image Config. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) AppImageConfigName() pulumi.StringOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage) string { + return v.AppImageConfigName + }).(pulumi.StringOutput) +} + +// The name of the Custom Image. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) ImageName() pulumi.StringOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage) string { return v.ImageName }).(pulumi.StringOutput) +} + +// The version number of the Custom Image. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) ImageVersionNumber() pulumi.IntPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage) *int { return v.ImageVersionNumber }).(pulumi.IntPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput) Index(i pulumi.IntInput) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage { + return vs[0].([]DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage)[vs[1].(int)] + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec struct { + // The instance type. + InstanceType *string `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn *string `pulumi:"sagemakerImageArn"` +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs and DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs{...} +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs struct { + // The instance type. + InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn pulumi.StringPtrInput `pulumi:"sagemakerImageArn"` +} + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput).ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrInput is an input type that accepts DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs, DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtr and DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrInput` via: +// +// DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput + ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput +} + +type domainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrType DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs + +func DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtr(v *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrInput { + return (*domainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrType)(v) +} + +func (*domainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return o.ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + return &v + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) *string { + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) *string { + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) Elem() DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + return *v + }).(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsSharingSettings struct { + // Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + NotebookOutputOption *string `pulumi:"notebookOutputOption"` + // When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + S3KmsKeyId *string `pulumi:"s3KmsKeyId"` + // When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + S3OutputPath *string `pulumi:"s3OutputPath"` +} + +// DomainDefaultUserSettingsSharingSettingsInput is an input type that accepts DomainDefaultUserSettingsSharingSettingsArgs and DomainDefaultUserSettingsSharingSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsSharingSettingsInput` via: +// +// DomainDefaultUserSettingsSharingSettingsArgs{...} +type DomainDefaultUserSettingsSharingSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsSharingSettingsOutput() DomainDefaultUserSettingsSharingSettingsOutput + ToDomainDefaultUserSettingsSharingSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsSharingSettingsOutput +} + +type DomainDefaultUserSettingsSharingSettingsArgs struct { + // Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + NotebookOutputOption pulumi.StringPtrInput `pulumi:"notebookOutputOption"` + // When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + S3KmsKeyId pulumi.StringPtrInput `pulumi:"s3KmsKeyId"` + // When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + S3OutputPath pulumi.StringPtrInput `pulumi:"s3OutputPath"` +} + +func (DomainDefaultUserSettingsSharingSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsSharingSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsSharingSettingsArgs) ToDomainDefaultUserSettingsSharingSettingsOutput() DomainDefaultUserSettingsSharingSettingsOutput { + return i.ToDomainDefaultUserSettingsSharingSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsSharingSettingsArgs) ToDomainDefaultUserSettingsSharingSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsSharingSettingsOutput) +} + +func (i DomainDefaultUserSettingsSharingSettingsArgs) ToDomainDefaultUserSettingsSharingSettingsPtrOutput() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsSharingSettingsArgs) ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsSharingSettingsOutput).ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsSharingSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsSharingSettingsArgs, DomainDefaultUserSettingsSharingSettingsPtr and DomainDefaultUserSettingsSharingSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsSharingSettingsPtrInput` via: +// +// DomainDefaultUserSettingsSharingSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsSharingSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsSharingSettingsPtrOutput() DomainDefaultUserSettingsSharingSettingsPtrOutput + ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsSharingSettingsPtrOutput +} + +type domainDefaultUserSettingsSharingSettingsPtrType DomainDefaultUserSettingsSharingSettingsArgs + +func DomainDefaultUserSettingsSharingSettingsPtr(v *DomainDefaultUserSettingsSharingSettingsArgs) DomainDefaultUserSettingsSharingSettingsPtrInput { + return (*domainDefaultUserSettingsSharingSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsSharingSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsSharingSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsSharingSettingsPtrType) ToDomainDefaultUserSettingsSharingSettingsPtrOutput() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsSharingSettingsPtrType) ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsSharingSettingsPtrOutput) +} + +type DomainDefaultUserSettingsSharingSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsSharingSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsSharingSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsSharingSettingsOutput) ToDomainDefaultUserSettingsSharingSettingsOutput() DomainDefaultUserSettingsSharingSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsSharingSettingsOutput) ToDomainDefaultUserSettingsSharingSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsSharingSettingsOutput) ToDomainDefaultUserSettingsSharingSettingsPtrOutput() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsSharingSettingsOutput) ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsSharingSettings) *DomainDefaultUserSettingsSharingSettings { + return &v + }).(DomainDefaultUserSettingsSharingSettingsPtrOutput) +} + +// Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. +func (o DomainDefaultUserSettingsSharingSettingsOutput) NotebookOutputOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsSharingSettings) *string { return v.NotebookOutputOption }).(pulumi.StringPtrOutput) +} + +// When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. +func (o DomainDefaultUserSettingsSharingSettingsOutput) S3KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsSharingSettings) *string { return v.S3KmsKeyId }).(pulumi.StringPtrOutput) +} + +// When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. +func (o DomainDefaultUserSettingsSharingSettingsOutput) S3OutputPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsSharingSettings) *string { return v.S3OutputPath }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsSharingSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsSharingSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsSharingSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) ToDomainDefaultUserSettingsSharingSettingsPtrOutput() DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) ToDomainDefaultUserSettingsSharingSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsSharingSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) Elem() DomainDefaultUserSettingsSharingSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsSharingSettings) DomainDefaultUserSettingsSharingSettings { return *v }).(DomainDefaultUserSettingsSharingSettingsOutput) +} + +// Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) NotebookOutputOption() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsSharingSettings) *string { + if v == nil { + return nil + } + return v.NotebookOutputOption + }).(pulumi.StringPtrOutput) +} + +// When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) S3KmsKeyId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsSharingSettings) *string { + if v == nil { + return nil + } + return v.S3KmsKeyId + }).(pulumi.StringPtrOutput) +} + +// When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. +func (o DomainDefaultUserSettingsSharingSettingsPtrOutput) S3OutputPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsSharingSettings) *string { + if v == nil { + return nil + } + return v.S3OutputPath + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettings struct { + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec `pulumi:"defaultResourceSpec"` +} + +// DomainDefaultUserSettingsTensorBoardAppSettingsInput is an input type that accepts DomainDefaultUserSettingsTensorBoardAppSettingsArgs and DomainDefaultUserSettingsTensorBoardAppSettingsOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsTensorBoardAppSettingsInput` via: +// +// DomainDefaultUserSettingsTensorBoardAppSettingsArgs{...} +type DomainDefaultUserSettingsTensorBoardAppSettingsInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsTensorBoardAppSettingsOutput() DomainDefaultUserSettingsTensorBoardAppSettingsOutput + ToDomainDefaultUserSettingsTensorBoardAppSettingsOutputWithContext(context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsOutput +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsArgs struct { + // The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + DefaultResourceSpec DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecInput `pulumi:"defaultResourceSpec"` +} + +func (DomainDefaultUserSettingsTensorBoardAppSettingsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsTensorBoardAppSettings)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsOutput() DomainDefaultUserSettingsTensorBoardAppSettingsOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsOutput) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsOutput).ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsTensorBoardAppSettingsPtrInput is an input type that accepts DomainDefaultUserSettingsTensorBoardAppSettingsArgs, DomainDefaultUserSettingsTensorBoardAppSettingsPtr and DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsTensorBoardAppSettingsPtrInput` via: +// +// DomainDefaultUserSettingsTensorBoardAppSettingsArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsTensorBoardAppSettingsPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput + ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput +} + +type domainDefaultUserSettingsTensorBoardAppSettingsPtrType DomainDefaultUserSettingsTensorBoardAppSettingsArgs + +func DomainDefaultUserSettingsTensorBoardAppSettingsPtr(v *DomainDefaultUserSettingsTensorBoardAppSettingsArgs) DomainDefaultUserSettingsTensorBoardAppSettingsPtrInput { + return (*domainDefaultUserSettingsTensorBoardAppSettingsPtrType)(v) +} + +func (*domainDefaultUserSettingsTensorBoardAppSettingsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsTensorBoardAppSettings)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsTensorBoardAppSettingsPtrType) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsTensorBoardAppSettingsPtrType) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsTensorBoardAppSettingsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsTensorBoardAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsOutput() DomainDefaultUserSettingsTensorBoardAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o.ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsTensorBoardAppSettings) *DomainDefaultUserSettingsTensorBoardAppSettings { + return &v + }).(DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsOutput) DefaultResourceSpec() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsTensorBoardAppSettings) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + return v.DefaultResourceSpec + }).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsTensorBoardAppSettings)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) Elem() DomainDefaultUserSettingsTensorBoardAppSettingsOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsTensorBoardAppSettings) DomainDefaultUserSettingsTensorBoardAppSettings { + return *v + }).(DomainDefaultUserSettingsTensorBoardAppSettingsOutput) +} + +// The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput) DefaultResourceSpec() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsTensorBoardAppSettings) *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + if v == nil { + return nil + } + return &v.DefaultResourceSpec + }).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec struct { + // The instance type. + InstanceType *string `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn *string `pulumi:"sagemakerImageArn"` +} + +// DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecInput is an input type that accepts DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs and DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecInput` via: +// +// DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs{...} +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput + ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutputWithContext(context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs struct { + // The instance type. + InstanceType pulumi.StringPtrInput `pulumi:"instanceType"` + // The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + SagemakerImageArn pulumi.StringPtrInput `pulumi:"sagemakerImageArn"` +} + +func (DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput).ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx) +} + +// DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrInput is an input type that accepts DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs, DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtr and DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput values. +// You can construct a concrete instance of `DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrInput` via: +// +// DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs{...} +// +// or: +// +// nil +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrInput interface { + pulumi.Input + + ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput + ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput +} + +type domainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrType DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs + +func DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtr(v *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrInput { + return (*domainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrType)(v) +} + +func (*domainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (i *domainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return i.ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (i *domainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrType) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return o.ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(context.Background()) +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + return &v + }).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) *string { + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) *string { + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + +type DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput struct{ *pulumi.OutputState } + +func (DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec)(nil)).Elem() +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) ToDomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutputWithContext(ctx context.Context) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput { + return o +} + +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) Elem() DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + return *v + }).(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput) +} + +// The instance type. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) InstanceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.InstanceType + }).(pulumi.StringPtrOutput) +} + +// The Amazon Resource Name (ARN) of the SageMaker image created on the instance. +func (o DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput) SagemakerImageArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec) *string { + if v == nil { + return nil + } + return v.SagemakerImageArn + }).(pulumi.StringPtrOutput) +} + type EndpointConfigurationDataCaptureConfig struct { // The content type headers to capture. Fields are documented below. CaptureContentTypeHeader *EndpointConfigurationDataCaptureConfigCaptureContentTypeHeader `pulumi:"captureContentTypeHeader"` @@ -1572,6 +2984,24 @@ func (o ModelVpcConfigPtrOutput) Subnets() pulumi.StringArrayOutput { func init() { pulumi.RegisterOutputType(CodeRepositoryGitConfigOutput{}) pulumi.RegisterOutputType(CodeRepositoryGitConfigPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArrayOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsSharingSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsSharingSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsTensorBoardAppSettingsOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsTensorBoardAppSettingsPtrOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecOutput{}) + pulumi.RegisterOutputType(DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecPtrOutput{}) pulumi.RegisterOutputType(EndpointConfigurationDataCaptureConfigOutput{}) pulumi.RegisterOutputType(EndpointConfigurationDataCaptureConfigPtrOutput{}) pulumi.RegisterOutputType(EndpointConfigurationDataCaptureConfigCaptureContentTypeHeaderOutput{}) diff --git a/sdk/go/aws/ssoadmin/accountAssignment.go b/sdk/go/aws/ssoadmin/accountAssignment.go new file mode 100644 index 00000000000..4090a2630eb --- /dev/null +++ b/sdk/go/aws/ssoadmin/accountAssignment.go @@ -0,0 +1,189 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package ssoadmin + +import ( + "context" + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides a Single Sign-On (SSO) Account Assignment resource +// +// ## Import +// +// SSO Account Assignments can be imported using the `principal_id`, `principal_type`, `target_id`, `target_type`, `permission_set_arn`, `instance_arn` separated by commas (`,`) e.g. +// +// ```sh +// $ pulumi import aws:ssoadmin/accountAssignment:AccountAssignment example f81d4fae-7dec-11d0-a765-00a0c91e6bf6,GROUP,1234567890,AWS_ACCOUNT,arn:aws:sso:::permissionSet/ssoins-0123456789abcdef/ps-0123456789abcdef,arn:aws:sso:::instance/ssoins-0123456789abcdef +// ``` +type AccountAssignment struct { + pulumi.CustomResourceState + + // The Amazon Resource Name (ARN) of the SSO Instance. + InstanceArn pulumi.StringOutput `pulumi:"instanceArn"` + // The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + PermissionSetArn pulumi.StringOutput `pulumi:"permissionSetArn"` + // An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + PrincipalId pulumi.StringOutput `pulumi:"principalId"` + // The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + PrincipalType pulumi.StringOutput `pulumi:"principalType"` + // An AWS account identifier, typically a 10-12 digit string. + TargetId pulumi.StringOutput `pulumi:"targetId"` + // The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + TargetType pulumi.StringPtrOutput `pulumi:"targetType"` +} + +// NewAccountAssignment registers a new resource with the given unique name, arguments, and options. +func NewAccountAssignment(ctx *pulumi.Context, + name string, args *AccountAssignmentArgs, opts ...pulumi.ResourceOption) (*AccountAssignment, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.InstanceArn == nil { + return nil, errors.New("invalid value for required argument 'InstanceArn'") + } + if args.PermissionSetArn == nil { + return nil, errors.New("invalid value for required argument 'PermissionSetArn'") + } + if args.PrincipalId == nil { + return nil, errors.New("invalid value for required argument 'PrincipalId'") + } + if args.PrincipalType == nil { + return nil, errors.New("invalid value for required argument 'PrincipalType'") + } + if args.TargetId == nil { + return nil, errors.New("invalid value for required argument 'TargetId'") + } + var resource AccountAssignment + err := ctx.RegisterResource("aws:ssoadmin/accountAssignment:AccountAssignment", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetAccountAssignment gets an existing AccountAssignment resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetAccountAssignment(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *AccountAssignmentState, opts ...pulumi.ResourceOption) (*AccountAssignment, error) { + var resource AccountAssignment + err := ctx.ReadResource("aws:ssoadmin/accountAssignment:AccountAssignment", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering AccountAssignment resources. +type accountAssignmentState struct { + // The Amazon Resource Name (ARN) of the SSO Instance. + InstanceArn *string `pulumi:"instanceArn"` + // The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + PermissionSetArn *string `pulumi:"permissionSetArn"` + // An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + PrincipalId *string `pulumi:"principalId"` + // The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + PrincipalType *string `pulumi:"principalType"` + // An AWS account identifier, typically a 10-12 digit string. + TargetId *string `pulumi:"targetId"` + // The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + TargetType *string `pulumi:"targetType"` +} + +type AccountAssignmentState struct { + // The Amazon Resource Name (ARN) of the SSO Instance. + InstanceArn pulumi.StringPtrInput + // The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + PermissionSetArn pulumi.StringPtrInput + // An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + PrincipalId pulumi.StringPtrInput + // The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + PrincipalType pulumi.StringPtrInput + // An AWS account identifier, typically a 10-12 digit string. + TargetId pulumi.StringPtrInput + // The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + TargetType pulumi.StringPtrInput +} + +func (AccountAssignmentState) ElementType() reflect.Type { + return reflect.TypeOf((*accountAssignmentState)(nil)).Elem() +} + +type accountAssignmentArgs struct { + // The Amazon Resource Name (ARN) of the SSO Instance. + InstanceArn string `pulumi:"instanceArn"` + // The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + PermissionSetArn string `pulumi:"permissionSetArn"` + // An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + PrincipalId string `pulumi:"principalId"` + // The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + PrincipalType string `pulumi:"principalType"` + // An AWS account identifier, typically a 10-12 digit string. + TargetId string `pulumi:"targetId"` + // The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + TargetType *string `pulumi:"targetType"` +} + +// The set of arguments for constructing a AccountAssignment resource. +type AccountAssignmentArgs struct { + // The Amazon Resource Name (ARN) of the SSO Instance. + InstanceArn pulumi.StringInput + // The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + PermissionSetArn pulumi.StringInput + // An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + PrincipalId pulumi.StringInput + // The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + PrincipalType pulumi.StringInput + // An AWS account identifier, typically a 10-12 digit string. + TargetId pulumi.StringInput + // The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + TargetType pulumi.StringPtrInput +} + +func (AccountAssignmentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*accountAssignmentArgs)(nil)).Elem() +} + +type AccountAssignmentInput interface { + pulumi.Input + + ToAccountAssignmentOutput() AccountAssignmentOutput + ToAccountAssignmentOutputWithContext(ctx context.Context) AccountAssignmentOutput +} + +func (*AccountAssignment) ElementType() reflect.Type { + return reflect.TypeOf((*AccountAssignment)(nil)) +} + +func (i *AccountAssignment) ToAccountAssignmentOutput() AccountAssignmentOutput { + return i.ToAccountAssignmentOutputWithContext(context.Background()) +} + +func (i *AccountAssignment) ToAccountAssignmentOutputWithContext(ctx context.Context) AccountAssignmentOutput { + return pulumi.ToOutputWithContext(ctx, i).(AccountAssignmentOutput) +} + +type AccountAssignmentOutput struct { + *pulumi.OutputState +} + +func (AccountAssignmentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AccountAssignment)(nil)) +} + +func (o AccountAssignmentOutput) ToAccountAssignmentOutput() AccountAssignmentOutput { + return o +} + +func (o AccountAssignmentOutput) ToAccountAssignmentOutputWithContext(ctx context.Context) AccountAssignmentOutput { + return o +} + +func init() { + pulumi.RegisterOutputType(AccountAssignmentOutput{}) +} diff --git a/sdk/go/aws/workspaces/directory.go b/sdk/go/aws/workspaces/directory.go index 94e8997033c..fd3b5b679a7 100644 --- a/sdk/go/aws/workspaces/directory.go +++ b/sdk/go/aws/workspaces/directory.go @@ -108,6 +108,15 @@ import ( // RestartWorkspace: pulumi.Bool(true), // SwitchRunningMode: pulumi.Bool(true), // }, +// WorkspaceAccessProperties: &workspaces.DirectoryWorkspaceAccessPropertiesArgs{ +// DeviceTypeAndroid: pulumi.String("ALLOW"), +// DeviceTypeChromeos: pulumi.String("ALLOW"), +// DeviceTypeIos: pulumi.String("ALLOW"), +// DeviceTypeOsx: pulumi.String("ALLOW"), +// DeviceTypeWeb: pulumi.String("DENY"), +// DeviceTypeWindows: pulumi.String("DENY"), +// DeviceTypeZeroclient: pulumi.String("DENY"), +// }, // WorkspaceCreationProperties: &workspaces.DirectoryWorkspaceCreationPropertiesArgs{ // CustomSecurityGroupId: pulumi.Any(aws_security_group.Example.Id), // DefaultOu: pulumi.String("OU=AWS,DC=Workgroup,DC=Example,DC=com"), @@ -221,6 +230,8 @@ type Directory struct { SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapOutput `pulumi:"tags"` + // Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties DirectoryWorkspaceAccessPropertiesOutput `pulumi:"workspaceAccessProperties"` // Default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesOutput `pulumi:"workspaceCreationProperties"` // The identifier of the security group that is assigned to new WorkSpaces. @@ -283,6 +294,8 @@ type directoryState struct { SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties *DirectoryWorkspaceAccessProperties `pulumi:"workspaceAccessProperties"` // Default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties *DirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` // The identifier of the security group that is assigned to new WorkSpaces. @@ -314,6 +327,8 @@ type DirectoryState struct { SubnetIds pulumi.StringArrayInput // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapInput + // Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties DirectoryWorkspaceAccessPropertiesPtrInput // Default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesPtrInput // The identifier of the security group that is assigned to new WorkSpaces. @@ -335,6 +350,8 @@ type directoryArgs struct { SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties *DirectoryWorkspaceAccessProperties `pulumi:"workspaceAccessProperties"` // Default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties *DirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` } @@ -351,6 +368,8 @@ type DirectoryArgs struct { SubnetIds pulumi.StringArrayInput // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapInput + // Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties DirectoryWorkspaceAccessPropertiesPtrInput // Default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesPtrInput } diff --git a/sdk/go/aws/workspaces/getDirectory.go b/sdk/go/aws/workspaces/getDirectory.go index 81811feee58..571f23dd1f1 100644 --- a/sdk/go/aws/workspaces/getDirectory.go +++ b/sdk/go/aws/workspaces/getDirectory.go @@ -46,8 +46,6 @@ type LookupDirectoryArgs struct { DirectoryId string `pulumi:"directoryId"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` - // The default properties that are used for creating WorkSpaces. Defined below. - WorkspaceCreationProperties *GetDirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` } // A collection of values returned by getDirectory. @@ -77,6 +75,8 @@ type LookupDirectoryResult struct { SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // (Optional) Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + WorkspaceAccessProperties []GetDirectoryWorkspaceAccessProperty `pulumi:"workspaceAccessProperties"` // The default properties that are used for creating WorkSpaces. Defined below. WorkspaceCreationProperties GetDirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` // The identifier of the security group that is assigned to new WorkSpaces. Defined below. diff --git a/sdk/go/aws/workspaces/pulumiTypes.go b/sdk/go/aws/workspaces/pulumiTypes.go index 817b794f149..6a7af5376d4 100644 --- a/sdk/go/aws/workspaces/pulumiTypes.go +++ b/sdk/go/aws/workspaces/pulumiTypes.go @@ -217,6 +217,251 @@ func (o DirectorySelfServicePermissionsPtrOutput) SwitchRunningMode() pulumi.Boo }).(pulumi.BoolPtrOutput) } +type DirectoryWorkspaceAccessProperties struct { + // Indicates whether users can use Android devices to access their WorkSpaces. + DeviceTypeAndroid *string `pulumi:"deviceTypeAndroid"` + // Indicates whether users can use Chromebooks to access their WorkSpaces. + DeviceTypeChromeos *string `pulumi:"deviceTypeChromeos"` + // Indicates whether users can use iOS devices to access their WorkSpaces. + DeviceTypeIos *string `pulumi:"deviceTypeIos"` + // Indicates whether users can use macOS clients to access their WorkSpaces. + DeviceTypeOsx *string `pulumi:"deviceTypeOsx"` + // Indicates whether users can access their WorkSpaces through a web browser. + DeviceTypeWeb *string `pulumi:"deviceTypeWeb"` + // Indicates whether users can use Windows clients to access their WorkSpaces. + DeviceTypeWindows *string `pulumi:"deviceTypeWindows"` + // Indicates whether users can use zero client devices to access their WorkSpaces. + DeviceTypeZeroclient *string `pulumi:"deviceTypeZeroclient"` +} + +// DirectoryWorkspaceAccessPropertiesInput is an input type that accepts DirectoryWorkspaceAccessPropertiesArgs and DirectoryWorkspaceAccessPropertiesOutput values. +// You can construct a concrete instance of `DirectoryWorkspaceAccessPropertiesInput` via: +// +// DirectoryWorkspaceAccessPropertiesArgs{...} +type DirectoryWorkspaceAccessPropertiesInput interface { + pulumi.Input + + ToDirectoryWorkspaceAccessPropertiesOutput() DirectoryWorkspaceAccessPropertiesOutput + ToDirectoryWorkspaceAccessPropertiesOutputWithContext(context.Context) DirectoryWorkspaceAccessPropertiesOutput +} + +type DirectoryWorkspaceAccessPropertiesArgs struct { + // Indicates whether users can use Android devices to access their WorkSpaces. + DeviceTypeAndroid pulumi.StringPtrInput `pulumi:"deviceTypeAndroid"` + // Indicates whether users can use Chromebooks to access their WorkSpaces. + DeviceTypeChromeos pulumi.StringPtrInput `pulumi:"deviceTypeChromeos"` + // Indicates whether users can use iOS devices to access their WorkSpaces. + DeviceTypeIos pulumi.StringPtrInput `pulumi:"deviceTypeIos"` + // Indicates whether users can use macOS clients to access their WorkSpaces. + DeviceTypeOsx pulumi.StringPtrInput `pulumi:"deviceTypeOsx"` + // Indicates whether users can access their WorkSpaces through a web browser. + DeviceTypeWeb pulumi.StringPtrInput `pulumi:"deviceTypeWeb"` + // Indicates whether users can use Windows clients to access their WorkSpaces. + DeviceTypeWindows pulumi.StringPtrInput `pulumi:"deviceTypeWindows"` + // Indicates whether users can use zero client devices to access their WorkSpaces. + DeviceTypeZeroclient pulumi.StringPtrInput `pulumi:"deviceTypeZeroclient"` +} + +func (DirectoryWorkspaceAccessPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DirectoryWorkspaceAccessProperties)(nil)).Elem() +} + +func (i DirectoryWorkspaceAccessPropertiesArgs) ToDirectoryWorkspaceAccessPropertiesOutput() DirectoryWorkspaceAccessPropertiesOutput { + return i.ToDirectoryWorkspaceAccessPropertiesOutputWithContext(context.Background()) +} + +func (i DirectoryWorkspaceAccessPropertiesArgs) ToDirectoryWorkspaceAccessPropertiesOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceAccessPropertiesOutput) +} + +func (i DirectoryWorkspaceAccessPropertiesArgs) ToDirectoryWorkspaceAccessPropertiesPtrOutput() DirectoryWorkspaceAccessPropertiesPtrOutput { + return i.ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(context.Background()) +} + +func (i DirectoryWorkspaceAccessPropertiesArgs) ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceAccessPropertiesOutput).ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(ctx) +} + +// DirectoryWorkspaceAccessPropertiesPtrInput is an input type that accepts DirectoryWorkspaceAccessPropertiesArgs, DirectoryWorkspaceAccessPropertiesPtr and DirectoryWorkspaceAccessPropertiesPtrOutput values. +// You can construct a concrete instance of `DirectoryWorkspaceAccessPropertiesPtrInput` via: +// +// DirectoryWorkspaceAccessPropertiesArgs{...} +// +// or: +// +// nil +type DirectoryWorkspaceAccessPropertiesPtrInput interface { + pulumi.Input + + ToDirectoryWorkspaceAccessPropertiesPtrOutput() DirectoryWorkspaceAccessPropertiesPtrOutput + ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(context.Context) DirectoryWorkspaceAccessPropertiesPtrOutput +} + +type directoryWorkspaceAccessPropertiesPtrType DirectoryWorkspaceAccessPropertiesArgs + +func DirectoryWorkspaceAccessPropertiesPtr(v *DirectoryWorkspaceAccessPropertiesArgs) DirectoryWorkspaceAccessPropertiesPtrInput { + return (*directoryWorkspaceAccessPropertiesPtrType)(v) +} + +func (*directoryWorkspaceAccessPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DirectoryWorkspaceAccessProperties)(nil)).Elem() +} + +func (i *directoryWorkspaceAccessPropertiesPtrType) ToDirectoryWorkspaceAccessPropertiesPtrOutput() DirectoryWorkspaceAccessPropertiesPtrOutput { + return i.ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *directoryWorkspaceAccessPropertiesPtrType) ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceAccessPropertiesPtrOutput) +} + +type DirectoryWorkspaceAccessPropertiesOutput struct{ *pulumi.OutputState } + +func (DirectoryWorkspaceAccessPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DirectoryWorkspaceAccessProperties)(nil)).Elem() +} + +func (o DirectoryWorkspaceAccessPropertiesOutput) ToDirectoryWorkspaceAccessPropertiesOutput() DirectoryWorkspaceAccessPropertiesOutput { + return o +} + +func (o DirectoryWorkspaceAccessPropertiesOutput) ToDirectoryWorkspaceAccessPropertiesOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesOutput { + return o +} + +func (o DirectoryWorkspaceAccessPropertiesOutput) ToDirectoryWorkspaceAccessPropertiesPtrOutput() DirectoryWorkspaceAccessPropertiesPtrOutput { + return o.ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(context.Background()) +} + +func (o DirectoryWorkspaceAccessPropertiesOutput) ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *DirectoryWorkspaceAccessProperties { + return &v + }).(DirectoryWorkspaceAccessPropertiesPtrOutput) +} + +// Indicates whether users can use Android devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeAndroid() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeAndroid }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use Chromebooks to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeChromeos() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeChromeos }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use iOS devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeIos() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeIos }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use macOS clients to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeOsx() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeOsx }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can access their WorkSpaces through a web browser. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeWeb() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeWeb }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use Windows clients to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeWindows() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeWindows }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use zero client devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesOutput) DeviceTypeZeroclient() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceAccessProperties) *string { return v.DeviceTypeZeroclient }).(pulumi.StringPtrOutput) +} + +type DirectoryWorkspaceAccessPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (DirectoryWorkspaceAccessPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DirectoryWorkspaceAccessProperties)(nil)).Elem() +} + +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) ToDirectoryWorkspaceAccessPropertiesPtrOutput() DirectoryWorkspaceAccessPropertiesPtrOutput { + return o +} + +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) ToDirectoryWorkspaceAccessPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceAccessPropertiesPtrOutput { + return o +} + +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) Elem() DirectoryWorkspaceAccessPropertiesOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) DirectoryWorkspaceAccessProperties { return *v }).(DirectoryWorkspaceAccessPropertiesOutput) +} + +// Indicates whether users can use Android devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeAndroid() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeAndroid + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use Chromebooks to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeChromeos() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeChromeos + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use iOS devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeIos() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeIos + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use macOS clients to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeOsx() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeOsx + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can access their WorkSpaces through a web browser. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeWeb() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeWeb + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use Windows clients to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeWindows() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeWindows + }).(pulumi.StringPtrOutput) +} + +// Indicates whether users can use zero client devices to access their WorkSpaces. +func (o DirectoryWorkspaceAccessPropertiesPtrOutput) DeviceTypeZeroclient() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceAccessProperties) *string { + if v == nil { + return nil + } + return v.DeviceTypeZeroclient + }).(pulumi.StringPtrOutput) +} + type DirectoryWorkspaceCreationProperties struct { // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. CustomSecurityGroupId *string `pulumi:"customSecurityGroupId"` @@ -1161,17 +1406,168 @@ func (o GetDirectorySelfServicePermissionArrayOutput) Index(i pulumi.IntInput) G }).(GetDirectorySelfServicePermissionOutput) } +type GetDirectoryWorkspaceAccessProperty struct { + // (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + DeviceTypeAndroid string `pulumi:"deviceTypeAndroid"` + // (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + DeviceTypeChromeos string `pulumi:"deviceTypeChromeos"` + // (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + DeviceTypeIos string `pulumi:"deviceTypeIos"` + // (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + DeviceTypeOsx string `pulumi:"deviceTypeOsx"` + // (Optional) Indicates whether users can access their WorkSpaces through a web browser. + DeviceTypeWeb string `pulumi:"deviceTypeWeb"` + // (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + DeviceTypeWindows string `pulumi:"deviceTypeWindows"` + // (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + DeviceTypeZeroclient string `pulumi:"deviceTypeZeroclient"` +} + +// GetDirectoryWorkspaceAccessPropertyInput is an input type that accepts GetDirectoryWorkspaceAccessPropertyArgs and GetDirectoryWorkspaceAccessPropertyOutput values. +// You can construct a concrete instance of `GetDirectoryWorkspaceAccessPropertyInput` via: +// +// GetDirectoryWorkspaceAccessPropertyArgs{...} +type GetDirectoryWorkspaceAccessPropertyInput interface { + pulumi.Input + + ToGetDirectoryWorkspaceAccessPropertyOutput() GetDirectoryWorkspaceAccessPropertyOutput + ToGetDirectoryWorkspaceAccessPropertyOutputWithContext(context.Context) GetDirectoryWorkspaceAccessPropertyOutput +} + +type GetDirectoryWorkspaceAccessPropertyArgs struct { + // (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + DeviceTypeAndroid pulumi.StringInput `pulumi:"deviceTypeAndroid"` + // (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + DeviceTypeChromeos pulumi.StringInput `pulumi:"deviceTypeChromeos"` + // (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + DeviceTypeIos pulumi.StringInput `pulumi:"deviceTypeIos"` + // (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + DeviceTypeOsx pulumi.StringInput `pulumi:"deviceTypeOsx"` + // (Optional) Indicates whether users can access their WorkSpaces through a web browser. + DeviceTypeWeb pulumi.StringInput `pulumi:"deviceTypeWeb"` + // (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + DeviceTypeWindows pulumi.StringInput `pulumi:"deviceTypeWindows"` + // (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + DeviceTypeZeroclient pulumi.StringInput `pulumi:"deviceTypeZeroclient"` +} + +func (GetDirectoryWorkspaceAccessPropertyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDirectoryWorkspaceAccessProperty)(nil)).Elem() +} + +func (i GetDirectoryWorkspaceAccessPropertyArgs) ToGetDirectoryWorkspaceAccessPropertyOutput() GetDirectoryWorkspaceAccessPropertyOutput { + return i.ToGetDirectoryWorkspaceAccessPropertyOutputWithContext(context.Background()) +} + +func (i GetDirectoryWorkspaceAccessPropertyArgs) ToGetDirectoryWorkspaceAccessPropertyOutputWithContext(ctx context.Context) GetDirectoryWorkspaceAccessPropertyOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDirectoryWorkspaceAccessPropertyOutput) +} + +// GetDirectoryWorkspaceAccessPropertyArrayInput is an input type that accepts GetDirectoryWorkspaceAccessPropertyArray and GetDirectoryWorkspaceAccessPropertyArrayOutput values. +// You can construct a concrete instance of `GetDirectoryWorkspaceAccessPropertyArrayInput` via: +// +// GetDirectoryWorkspaceAccessPropertyArray{ GetDirectoryWorkspaceAccessPropertyArgs{...} } +type GetDirectoryWorkspaceAccessPropertyArrayInput interface { + pulumi.Input + + ToGetDirectoryWorkspaceAccessPropertyArrayOutput() GetDirectoryWorkspaceAccessPropertyArrayOutput + ToGetDirectoryWorkspaceAccessPropertyArrayOutputWithContext(context.Context) GetDirectoryWorkspaceAccessPropertyArrayOutput +} + +type GetDirectoryWorkspaceAccessPropertyArray []GetDirectoryWorkspaceAccessPropertyInput + +func (GetDirectoryWorkspaceAccessPropertyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDirectoryWorkspaceAccessProperty)(nil)).Elem() +} + +func (i GetDirectoryWorkspaceAccessPropertyArray) ToGetDirectoryWorkspaceAccessPropertyArrayOutput() GetDirectoryWorkspaceAccessPropertyArrayOutput { + return i.ToGetDirectoryWorkspaceAccessPropertyArrayOutputWithContext(context.Background()) +} + +func (i GetDirectoryWorkspaceAccessPropertyArray) ToGetDirectoryWorkspaceAccessPropertyArrayOutputWithContext(ctx context.Context) GetDirectoryWorkspaceAccessPropertyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDirectoryWorkspaceAccessPropertyArrayOutput) +} + +type GetDirectoryWorkspaceAccessPropertyOutput struct{ *pulumi.OutputState } + +func (GetDirectoryWorkspaceAccessPropertyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDirectoryWorkspaceAccessProperty)(nil)).Elem() +} + +func (o GetDirectoryWorkspaceAccessPropertyOutput) ToGetDirectoryWorkspaceAccessPropertyOutput() GetDirectoryWorkspaceAccessPropertyOutput { + return o +} + +func (o GetDirectoryWorkspaceAccessPropertyOutput) ToGetDirectoryWorkspaceAccessPropertyOutputWithContext(ctx context.Context) GetDirectoryWorkspaceAccessPropertyOutput { + return o +} + +// (Optional) Indicates whether users can use Android devices to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeAndroid() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeAndroid }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeChromeos() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeChromeos }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeIos() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeIos }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeOsx() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeOsx }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can access their WorkSpaces through a web browser. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeWeb() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeWeb }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeWindows() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeWindows }).(pulumi.StringOutput) +} + +// (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. +func (o GetDirectoryWorkspaceAccessPropertyOutput) DeviceTypeZeroclient() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceAccessProperty) string { return v.DeviceTypeZeroclient }).(pulumi.StringOutput) +} + +type GetDirectoryWorkspaceAccessPropertyArrayOutput struct{ *pulumi.OutputState } + +func (GetDirectoryWorkspaceAccessPropertyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetDirectoryWorkspaceAccessProperty)(nil)).Elem() +} + +func (o GetDirectoryWorkspaceAccessPropertyArrayOutput) ToGetDirectoryWorkspaceAccessPropertyArrayOutput() GetDirectoryWorkspaceAccessPropertyArrayOutput { + return o +} + +func (o GetDirectoryWorkspaceAccessPropertyArrayOutput) ToGetDirectoryWorkspaceAccessPropertyArrayOutputWithContext(ctx context.Context) GetDirectoryWorkspaceAccessPropertyArrayOutput { + return o +} + +func (o GetDirectoryWorkspaceAccessPropertyArrayOutput) Index(i pulumi.IntInput) GetDirectoryWorkspaceAccessPropertyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetDirectoryWorkspaceAccessProperty { + return vs[0].([]GetDirectoryWorkspaceAccessProperty)[vs[1].(int)] + }).(GetDirectoryWorkspaceAccessPropertyOutput) +} + type GetDirectoryWorkspaceCreationProperties struct { // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. CustomSecurityGroupId string `pulumi:"customSecurityGroupId"` // The default organizational unit (OU) for your WorkSpace directories. - DefaultOu *string `pulumi:"defaultOu"` + DefaultOu string `pulumi:"defaultOu"` // Indicates whether internet access is enabled for your WorkSpaces. - EnableInternetAccess *bool `pulumi:"enableInternetAccess"` + EnableInternetAccess bool `pulumi:"enableInternetAccess"` // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). - EnableMaintenanceMode *bool `pulumi:"enableMaintenanceMode"` + EnableMaintenanceMode bool `pulumi:"enableMaintenanceMode"` // Indicates whether users are local administrators of their WorkSpaces. - UserEnabledAsLocalAdministrator *bool `pulumi:"userEnabledAsLocalAdministrator"` + UserEnabledAsLocalAdministrator bool `pulumi:"userEnabledAsLocalAdministrator"` } // GetDirectoryWorkspaceCreationPropertiesInput is an input type that accepts GetDirectoryWorkspaceCreationPropertiesArgs and GetDirectoryWorkspaceCreationPropertiesOutput values. @@ -1189,13 +1585,13 @@ type GetDirectoryWorkspaceCreationPropertiesArgs struct { // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. CustomSecurityGroupId pulumi.StringInput `pulumi:"customSecurityGroupId"` // The default organizational unit (OU) for your WorkSpace directories. - DefaultOu pulumi.StringPtrInput `pulumi:"defaultOu"` + DefaultOu pulumi.StringInput `pulumi:"defaultOu"` // Indicates whether internet access is enabled for your WorkSpaces. - EnableInternetAccess pulumi.BoolPtrInput `pulumi:"enableInternetAccess"` + EnableInternetAccess pulumi.BoolInput `pulumi:"enableInternetAccess"` // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). - EnableMaintenanceMode pulumi.BoolPtrInput `pulumi:"enableMaintenanceMode"` + EnableMaintenanceMode pulumi.BoolInput `pulumi:"enableMaintenanceMode"` // Indicates whether users are local administrators of their WorkSpaces. - UserEnabledAsLocalAdministrator pulumi.BoolPtrInput `pulumi:"userEnabledAsLocalAdministrator"` + UserEnabledAsLocalAdministrator pulumi.BoolInput `pulumi:"userEnabledAsLocalAdministrator"` } func (GetDirectoryWorkspaceCreationPropertiesArgs) ElementType() reflect.Type { @@ -1230,23 +1626,23 @@ func (o GetDirectoryWorkspaceCreationPropertiesOutput) CustomSecurityGroupId() p } // The default organizational unit (OU) for your WorkSpace directories. -func (o GetDirectoryWorkspaceCreationPropertiesOutput) DefaultOu() pulumi.StringPtrOutput { - return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *string { return v.DefaultOu }).(pulumi.StringPtrOutput) +func (o GetDirectoryWorkspaceCreationPropertiesOutput) DefaultOu() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) string { return v.DefaultOu }).(pulumi.StringOutput) } // Indicates whether internet access is enabled for your WorkSpaces. -func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableInternetAccess() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.EnableInternetAccess }).(pulumi.BoolPtrOutput) +func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableInternetAccess() pulumi.BoolOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) bool { return v.EnableInternetAccess }).(pulumi.BoolOutput) } // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). -func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableMaintenanceMode() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.EnableMaintenanceMode }).(pulumi.BoolPtrOutput) +func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableMaintenanceMode() pulumi.BoolOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) bool { return v.EnableMaintenanceMode }).(pulumi.BoolOutput) } // Indicates whether users are local administrators of their WorkSpaces. -func (o GetDirectoryWorkspaceCreationPropertiesOutput) UserEnabledAsLocalAdministrator() pulumi.BoolPtrOutput { - return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.UserEnabledAsLocalAdministrator }).(pulumi.BoolPtrOutput) +func (o GetDirectoryWorkspaceCreationPropertiesOutput) UserEnabledAsLocalAdministrator() pulumi.BoolOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) bool { return v.UserEnabledAsLocalAdministrator }).(pulumi.BoolOutput) } type GetWorkspaceWorkspaceProperty struct { @@ -1385,6 +1781,8 @@ func (o GetWorkspaceWorkspacePropertyArrayOutput) Index(i pulumi.IntInput) GetWo func init() { pulumi.RegisterOutputType(DirectorySelfServicePermissionsOutput{}) pulumi.RegisterOutputType(DirectorySelfServicePermissionsPtrOutput{}) + pulumi.RegisterOutputType(DirectoryWorkspaceAccessPropertiesOutput{}) + pulumi.RegisterOutputType(DirectoryWorkspaceAccessPropertiesPtrOutput{}) pulumi.RegisterOutputType(DirectoryWorkspaceCreationPropertiesOutput{}) pulumi.RegisterOutputType(DirectoryWorkspaceCreationPropertiesPtrOutput{}) pulumi.RegisterOutputType(IpGroupRuleOutput{}) @@ -1399,6 +1797,8 @@ func init() { pulumi.RegisterOutputType(GetBundleUserStorageArrayOutput{}) pulumi.RegisterOutputType(GetDirectorySelfServicePermissionOutput{}) pulumi.RegisterOutputType(GetDirectorySelfServicePermissionArrayOutput{}) + pulumi.RegisterOutputType(GetDirectoryWorkspaceAccessPropertyOutput{}) + pulumi.RegisterOutputType(GetDirectoryWorkspaceAccessPropertyArrayOutput{}) pulumi.RegisterOutputType(GetDirectoryWorkspaceCreationPropertiesOutput{}) pulumi.RegisterOutputType(GetWorkspaceWorkspacePropertyOutput{}) pulumi.RegisterOutputType(GetWorkspaceWorkspacePropertyArrayOutput{}) diff --git a/sdk/nodejs/apigateway/domainName.ts b/sdk/nodejs/apigateway/domainName.ts index edc1685bd26..c06d9978c8e 100644 --- a/sdk/nodejs/apigateway/domainName.ts +++ b/sdk/nodejs/apigateway/domainName.ts @@ -233,6 +233,10 @@ export class DomainName extends pulumi.CustomResource { * Configuration block defining API endpoint information including type. Defined below. */ public readonly endpointConfiguration!: pulumi.Output; + /** + * The mutual TLS authentication configuration for the domain name. Defined below. + */ + public readonly mutualTlsAuthentication!: pulumi.Output; /** * The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. */ @@ -282,6 +286,7 @@ export class DomainName extends pulumi.CustomResource { inputs["cloudfrontZoneId"] = state ? state.cloudfrontZoneId : undefined; inputs["domainName"] = state ? state.domainName : undefined; inputs["endpointConfiguration"] = state ? state.endpointConfiguration : undefined; + inputs["mutualTlsAuthentication"] = state ? state.mutualTlsAuthentication : undefined; inputs["regionalCertificateArn"] = state ? state.regionalCertificateArn : undefined; inputs["regionalCertificateName"] = state ? state.regionalCertificateName : undefined; inputs["regionalDomainName"] = state ? state.regionalDomainName : undefined; @@ -300,6 +305,7 @@ export class DomainName extends pulumi.CustomResource { inputs["certificatePrivateKey"] = args ? args.certificatePrivateKey : undefined; inputs["domainName"] = args ? args.domainName : undefined; inputs["endpointConfiguration"] = args ? args.endpointConfiguration : undefined; + inputs["mutualTlsAuthentication"] = args ? args.mutualTlsAuthentication : undefined; inputs["regionalCertificateArn"] = args ? args.regionalCertificateArn : undefined; inputs["regionalCertificateName"] = args ? args.regionalCertificateName : undefined; inputs["securityPolicy"] = args ? args.securityPolicy : undefined; @@ -380,6 +386,10 @@ export interface DomainNameState { * Configuration block defining API endpoint information including type. Defined below. */ readonly endpointConfiguration?: pulumi.Input; + /** + * The mutual TLS authentication configuration for the domain name. Defined below. + */ + readonly mutualTlsAuthentication?: pulumi.Input; /** * The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. */ @@ -447,6 +457,10 @@ export interface DomainNameArgs { * Configuration block defining API endpoint information including type. Defined below. */ readonly endpointConfiguration?: pulumi.Input; + /** + * The mutual TLS authentication configuration for the domain name. Defined below. + */ + readonly mutualTlsAuthentication?: pulumi.Input; /** * The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificateArn`, `certificateName`, `certificateBody`, `certificateChain`, and `certificatePrivateKey`. */ diff --git a/sdk/nodejs/apigateway/getDomainName.ts b/sdk/nodejs/apigateway/getDomainName.ts new file mode 100644 index 00000000000..18951dba596 --- /dev/null +++ b/sdk/nodejs/apigateway/getDomainName.ts @@ -0,0 +1,111 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get the custom domain name for use with AWS API Gateway. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = pulumi.output(aws.apigateway.getDomainName({ + * domainName: "api.example.com", + * }, { async: true })); + * ``` + */ +export function getDomainName(args: GetDomainNameArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("aws:apigateway/getDomainName:getDomainName", { + "domainName": args.domainName, + "tags": args.tags, + }, opts); +} + +/** + * A collection of arguments for invoking getDomainName. + */ +export interface GetDomainNameArgs { + /** + * The fully-qualified domain name to look up. If no domain name is found, an error will be returned. + */ + readonly domainName: string; + /** + * Key-value map of tags for the resource. + */ + readonly tags?: {[key: string]: string}; +} + +/** + * A collection of values returned by getDomainName. + */ +export interface GetDomainNameResult { + /** + * The ARN of the found custom domain name. + */ + readonly arn: string; + /** + * The ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name. + */ + readonly certificateArn: string; + /** + * The name of the certificate that is used by edge-optimized endpoint for this domain name. + */ + readonly certificateName: string; + /** + * The upload date associated with the domain certificate. + */ + readonly certificateUploadDate: string; + /** + * The hostname created by Cloudfront to represent the distribution that implements this domain name mapping. + */ + readonly cloudfrontDomainName: string; + /** + * For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution. + */ + readonly cloudfrontZoneId: string; + readonly domainName: string; + /** + * List of objects with the endpoint configuration of this domain name. + */ + readonly endpointConfigurations: outputs.apigateway.GetDomainNameEndpointConfiguration[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + /** + * The ARN for an AWS-managed certificate that is used for validating the regional domain name. + */ + readonly regionalCertificateArn: string; + /** + * The user-friendly name of the certificate that is used by regional endpoint for this domain name. + */ + readonly regionalCertificateName: string; + /** + * The hostname for the custom domain's regional endpoint. + */ + readonly regionalDomainName: string; + /** + * The hosted zone ID that can be used to create a Route53 alias record for the regional endpoint. + */ + readonly regionalZoneId: string; + /** + * The security policy for the domain name. + */ + readonly securityPolicy: string; + /** + * Key-value map of tags for the resource. + */ + readonly tags?: {[key: string]: string}; +} diff --git a/sdk/nodejs/apigateway/index.ts b/sdk/nodejs/apigateway/index.ts index 8ebda174658..733888424e2 100644 --- a/sdk/nodejs/apigateway/index.ts +++ b/sdk/nodejs/apigateway/index.ts @@ -14,6 +14,7 @@ export * from "./deployment"; export * from "./documentationPart"; export * from "./documentationVersion"; export * from "./domainName"; +export * from "./getDomainName"; export * from "./getKey"; export * from "./getResource"; export * from "./getRestApi"; diff --git a/sdk/nodejs/apigateway/integration.ts b/sdk/nodejs/apigateway/integration.ts index e580c497a07..2ad0c290078 100644 --- a/sdk/nodejs/apigateway/integration.ts +++ b/sdk/nodejs/apigateway/integration.ts @@ -2,6 +2,7 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; import * as utilities from "../utilities"; import {RestApi} from "./index"; @@ -197,6 +198,10 @@ export class Integration extends pulumi.CustomResource { * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. */ public readonly timeoutMilliseconds!: pulumi.Output; + /** + * Configuration block specifying the TLS configuration for an integration. Defined below. + */ + public readonly tlsConfig!: pulumi.Output; /** * The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. */ @@ -234,6 +239,7 @@ export class Integration extends pulumi.CustomResource { inputs["resourceId"] = state ? state.resourceId : undefined; inputs["restApi"] = state ? state.restApi : undefined; inputs["timeoutMilliseconds"] = state ? state.timeoutMilliseconds : undefined; + inputs["tlsConfig"] = state ? state.tlsConfig : undefined; inputs["type"] = state ? state.type : undefined; inputs["uri"] = state ? state.uri : undefined; } else { @@ -264,6 +270,7 @@ export class Integration extends pulumi.CustomResource { inputs["resourceId"] = args ? args.resourceId : undefined; inputs["restApi"] = args ? args.restApi : undefined; inputs["timeoutMilliseconds"] = args ? args.timeoutMilliseconds : undefined; + inputs["tlsConfig"] = args ? args.tlsConfig : undefined; inputs["type"] = args ? args.type : undefined; inputs["uri"] = args ? args.uri : undefined; } @@ -344,6 +351,10 @@ export interface IntegrationState { * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. */ readonly timeoutMilliseconds?: pulumi.Input; + /** + * Configuration block specifying the TLS configuration for an integration. Defined below. + */ + readonly tlsConfig?: pulumi.Input; /** * The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. */ @@ -422,6 +433,10 @@ export interface IntegrationArgs { * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. */ readonly timeoutMilliseconds?: pulumi.Input; + /** + * Configuration block specifying the TLS configuration for an integration. Defined below. + */ + readonly tlsConfig?: pulumi.Input; /** * The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connectionType` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. */ diff --git a/sdk/nodejs/apigateway/method.ts b/sdk/nodejs/apigateway/method.ts index 8c233289ae9..435b11504f4 100644 --- a/sdk/nodejs/apigateway/method.ts +++ b/sdk/nodejs/apigateway/method.ts @@ -118,6 +118,10 @@ export class Method extends pulumi.CustomResource { * The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) */ public readonly httpMethod!: pulumi.Output; + /** + * The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + */ + public readonly operationName!: pulumi.Output; /** * A map of the API models used for the request's content type * where key is the content type (e.g. `application/json`) @@ -159,6 +163,7 @@ export class Method extends pulumi.CustomResource { inputs["authorizationScopes"] = state ? state.authorizationScopes : undefined; inputs["authorizerId"] = state ? state.authorizerId : undefined; inputs["httpMethod"] = state ? state.httpMethod : undefined; + inputs["operationName"] = state ? state.operationName : undefined; inputs["requestModels"] = state ? state.requestModels : undefined; inputs["requestParameters"] = state ? state.requestParameters : undefined; inputs["requestValidatorId"] = state ? state.requestValidatorId : undefined; @@ -183,6 +188,7 @@ export class Method extends pulumi.CustomResource { inputs["authorizationScopes"] = args ? args.authorizationScopes : undefined; inputs["authorizerId"] = args ? args.authorizerId : undefined; inputs["httpMethod"] = args ? args.httpMethod : undefined; + inputs["operationName"] = args ? args.operationName : undefined; inputs["requestModels"] = args ? args.requestModels : undefined; inputs["requestParameters"] = args ? args.requestParameters : undefined; inputs["requestValidatorId"] = args ? args.requestValidatorId : undefined; @@ -224,6 +230,10 @@ export interface MethodState { * The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) */ readonly httpMethod?: pulumi.Input; + /** + * The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + */ + readonly operationName?: pulumi.Input; /** * A map of the API models used for the request's content type * where key is the content type (e.g. `application/json`) @@ -273,6 +283,10 @@ export interface MethodArgs { * The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) */ readonly httpMethod: pulumi.Input; + /** + * The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + */ + readonly operationName?: pulumi.Input; /** * A map of the API models used for the request's content type * where key is the content type (e.g. `application/json`) diff --git a/sdk/nodejs/apigateway/methodSettings.ts b/sdk/nodejs/apigateway/methodSettings.ts index f3fcea6efe8..362a74ea522 100644 --- a/sdk/nodejs/apigateway/methodSettings.ts +++ b/sdk/nodejs/apigateway/methodSettings.ts @@ -10,58 +10,6 @@ import {RestApi} from "./index"; /** * Provides an API Gateway Method Settings, e.g. logging or monitoring. * - * ## Example Usage - * - * ```typescript - * import * as pulumi from "@pulumi/pulumi"; - * import * as aws from "@pulumi/aws"; - * - * const testRestApi = new aws.apigateway.RestApi("testRestApi", {description: "This is my API for demonstration purposes"}); - * const testResource = new aws.apigateway.Resource("testResource", { - * restApi: testRestApi.id, - * parentId: testRestApi.rootResourceId, - * pathPart: "mytestresource", - * }); - * const testMethod = new aws.apigateway.Method("testMethod", { - * restApi: testRestApi.id, - * resourceId: testResource.id, - * httpMethod: "GET", - * authorization: "NONE", - * }); - * const testIntegration = new aws.apigateway.Integration("testIntegration", { - * restApi: testRestApi.id, - * resourceId: testResource.id, - * httpMethod: testMethod.httpMethod, - * type: "MOCK", - * requestTemplates: { - * "application/xml": `{ - * "body" : $input.json('$') - * } - * `, - * }, - * }); - * const testDeployment = new aws.apigateway.Deployment("testDeployment", { - * restApi: testRestApi.id, - * stageName: "dev", - * }, { - * dependsOn: [testIntegration], - * }); - * const testStage = new aws.apigateway.Stage("testStage", { - * stageName: "prod", - * restApi: testRestApi.id, - * deployment: testDeployment.id, - * }); - * const methodSettings = new aws.apigateway.MethodSettings("methodSettings", { - * restApi: testRestApi.id, - * stageName: testStage.stageName, - * methodPath: pulumi.interpolate`${testResource.pathPart}/${testMethod.httpMethod}`, - * settings: { - * metricsEnabled: true, - * loggingLevel: "INFO", - * }, - * }); - * ``` - * * ## Import * * `aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g. diff --git a/sdk/nodejs/apigateway/response.ts b/sdk/nodejs/apigateway/response.ts index ddd7abe967e..a3d4cece81a 100644 --- a/sdk/nodejs/apigateway/response.ts +++ b/sdk/nodejs/apigateway/response.ts @@ -19,7 +19,7 @@ import * as utilities from "../utilities"; * statusCode: "401", * responseType: "UNAUTHORIZED", * responseTemplates: { - * "application/json": `{'message':$context.error.messageString}`, + * "application/json": `{"message":$context.error.messageString}`, * }, * responseParameters: { * "gatewayresponse.header.Authorization": "'Basic'", diff --git a/sdk/nodejs/apigateway/restApi.ts b/sdk/nodejs/apigateway/restApi.ts index b2899d29302..1fe9f475615 100644 --- a/sdk/nodejs/apigateway/restApi.ts +++ b/sdk/nodejs/apigateway/restApi.ts @@ -94,6 +94,10 @@ export class RestApi extends pulumi.CustomResource { * The description of the REST API */ public readonly description!: pulumi.Output; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + */ + public readonly disableExecuteApiEndpoint!: pulumi.Output; /** * Nested argument defining API endpoint configuration including endpoint type. Defined below. */ @@ -112,6 +116,10 @@ export class RestApi extends pulumi.CustomResource { * The name of the REST API */ public readonly name!: pulumi.Output; + /** + * Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + */ + public readonly parameters!: pulumi.Output<{[key: string]: string} | undefined>; /** * JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. */ @@ -143,10 +151,12 @@ export class RestApi extends pulumi.CustomResource { inputs["body"] = state ? state.body : undefined; inputs["createdDate"] = state ? state.createdDate : undefined; inputs["description"] = state ? state.description : undefined; + inputs["disableExecuteApiEndpoint"] = state ? state.disableExecuteApiEndpoint : undefined; inputs["endpointConfiguration"] = state ? state.endpointConfiguration : undefined; inputs["executionArn"] = state ? state.executionArn : undefined; inputs["minimumCompressionSize"] = state ? state.minimumCompressionSize : undefined; inputs["name"] = state ? state.name : undefined; + inputs["parameters"] = state ? state.parameters : undefined; inputs["policy"] = state ? state.policy : undefined; inputs["rootResourceId"] = state ? state.rootResourceId : undefined; inputs["tags"] = state ? state.tags : undefined; @@ -156,9 +166,11 @@ export class RestApi extends pulumi.CustomResource { inputs["binaryMediaTypes"] = args ? args.binaryMediaTypes : undefined; inputs["body"] = args ? args.body : undefined; inputs["description"] = args ? args.description : undefined; + inputs["disableExecuteApiEndpoint"] = args ? args.disableExecuteApiEndpoint : undefined; inputs["endpointConfiguration"] = args ? args.endpointConfiguration : undefined; inputs["minimumCompressionSize"] = args ? args.minimumCompressionSize : undefined; inputs["name"] = args ? args.name : undefined; + inputs["parameters"] = args ? args.parameters : undefined; inputs["policy"] = args ? args.policy : undefined; inputs["tags"] = args ? args.tags : undefined; inputs["arn"] = undefined /*out*/; @@ -205,6 +217,10 @@ export interface RestApiState { * The description of the REST API */ readonly description?: pulumi.Input; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + */ + readonly disableExecuteApiEndpoint?: pulumi.Input; /** * Nested argument defining API endpoint configuration including endpoint type. Defined below. */ @@ -223,6 +239,10 @@ export interface RestApiState { * The name of the REST API */ readonly name?: pulumi.Input; + /** + * Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + */ + readonly parameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. */ @@ -257,6 +277,10 @@ export interface RestApiArgs { * The description of the REST API */ readonly description?: pulumi.Input; + /** + * Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + */ + readonly disableExecuteApiEndpoint?: pulumi.Input; /** * Nested argument defining API endpoint configuration including endpoint type. Defined below. */ @@ -269,6 +293,10 @@ export interface RestApiArgs { * The name of the REST API */ readonly name?: pulumi.Input; + /** + * Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + */ + readonly parameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** * JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `aws.apigateway.RestApiPolicy` resource instead. */ diff --git a/sdk/nodejs/apigatewayv2/integration.ts b/sdk/nodejs/apigatewayv2/integration.ts index 9833e470eaa..ef970e618df 100644 --- a/sdk/nodejs/apigatewayv2/integration.ts +++ b/sdk/nodejs/apigatewayv2/integration.ts @@ -155,14 +155,20 @@ export class Integration extends pulumi.CustomResource { */ public readonly payloadFormatVersion!: pulumi.Output; /** - * A key-value map specifying request parameters that are passed from the method request to the backend. - * Supported only for WebSocket APIs. + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + * For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + * For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. */ public readonly requestParameters!: pulumi.Output<{[key: string]: string} | undefined>; /** - * A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + * A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. */ public readonly requestTemplates!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + */ + public readonly responseParameters!: pulumi.Output; /** * The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. */ @@ -200,6 +206,7 @@ export class Integration extends pulumi.CustomResource { inputs["payloadFormatVersion"] = state ? state.payloadFormatVersion : undefined; inputs["requestParameters"] = state ? state.requestParameters : undefined; inputs["requestTemplates"] = state ? state.requestTemplates : undefined; + inputs["responseParameters"] = state ? state.responseParameters : undefined; inputs["templateSelectionExpression"] = state ? state.templateSelectionExpression : undefined; inputs["timeoutMilliseconds"] = state ? state.timeoutMilliseconds : undefined; inputs["tlsConfig"] = state ? state.tlsConfig : undefined; @@ -225,6 +232,7 @@ export class Integration extends pulumi.CustomResource { inputs["payloadFormatVersion"] = args ? args.payloadFormatVersion : undefined; inputs["requestParameters"] = args ? args.requestParameters : undefined; inputs["requestTemplates"] = args ? args.requestTemplates : undefined; + inputs["responseParameters"] = args ? args.responseParameters : undefined; inputs["templateSelectionExpression"] = args ? args.templateSelectionExpression : undefined; inputs["timeoutMilliseconds"] = args ? args.timeoutMilliseconds : undefined; inputs["tlsConfig"] = args ? args.tlsConfig : undefined; @@ -301,14 +309,20 @@ export interface IntegrationState { */ readonly payloadFormatVersion?: pulumi.Input; /** - * A key-value map specifying request parameters that are passed from the method request to the backend. - * Supported only for WebSocket APIs. + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + * For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + * For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. */ readonly requestParameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + * A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. */ readonly requestTemplates?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + */ + readonly responseParameters?: pulumi.Input[]>; /** * The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. */ @@ -376,14 +390,20 @@ export interface IntegrationArgs { */ readonly payloadFormatVersion?: pulumi.Input; /** - * A key-value map specifying request parameters that are passed from the method request to the backend. - * Supported only for WebSocket APIs. + * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + * For HTTP APIs with a specified `integrationSubtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + * For HTTP APIs without a specified `integrationSubtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. */ readonly requestParameters?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + * A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. */ readonly requestTemplates?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + */ + readonly responseParameters?: pulumi.Input[]>; /** * The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. */ diff --git a/sdk/nodejs/cloudwatch/compositeAlarm.ts b/sdk/nodejs/cloudwatch/compositeAlarm.ts new file mode 100644 index 00000000000..6cf8d3ba769 --- /dev/null +++ b/sdk/nodejs/cloudwatch/compositeAlarm.ts @@ -0,0 +1,209 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * ## Import + * + * Use the `alarm_name` to import a CloudWatch Composite Alarm. For example + * + * ```sh + * $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm + * ``` + */ +export class CompositeAlarm extends pulumi.CustomResource { + /** + * Get an existing CompositeAlarm resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CompositeAlarmState, opts?: pulumi.CustomResourceOptions): CompositeAlarm { + return new CompositeAlarm(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:cloudwatch/compositeAlarm:CompositeAlarm'; + + /** + * Returns true if the given object is an instance of CompositeAlarm. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CompositeAlarm { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CompositeAlarm.__pulumiType; + } + + /** + * Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + */ + public readonly actionsEnabled!: pulumi.Output; + /** + * The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + public readonly alarmActions!: pulumi.Output; + /** + * The description for the composite alarm. + */ + public readonly alarmDescription!: pulumi.Output; + /** + * The name for the composite alarm. This name must be unique within the region. + */ + public readonly alarmName!: pulumi.Output; + /** + * An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + */ + public readonly alarmRule!: pulumi.Output; + /** + * The ARN of the composite alarm. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + public readonly insufficientDataActions!: pulumi.Output; + /** + * The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + public readonly okActions!: pulumi.Output; + /** + * A map of tags to associate with the alarm. Up to 50 tags are allowed. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a CompositeAlarm resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CompositeAlarmArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CompositeAlarmArgs | CompositeAlarmState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as CompositeAlarmState | undefined; + inputs["actionsEnabled"] = state ? state.actionsEnabled : undefined; + inputs["alarmActions"] = state ? state.alarmActions : undefined; + inputs["alarmDescription"] = state ? state.alarmDescription : undefined; + inputs["alarmName"] = state ? state.alarmName : undefined; + inputs["alarmRule"] = state ? state.alarmRule : undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["insufficientDataActions"] = state ? state.insufficientDataActions : undefined; + inputs["okActions"] = state ? state.okActions : undefined; + inputs["tags"] = state ? state.tags : undefined; + } else { + const args = argsOrState as CompositeAlarmArgs | undefined; + if ((!args || args.alarmName === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'alarmName'"); + } + if ((!args || args.alarmRule === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'alarmRule'"); + } + inputs["actionsEnabled"] = args ? args.actionsEnabled : undefined; + inputs["alarmActions"] = args ? args.alarmActions : undefined; + inputs["alarmDescription"] = args ? args.alarmDescription : undefined; + inputs["alarmName"] = args ? args.alarmName : undefined; + inputs["alarmRule"] = args ? args.alarmRule : undefined; + inputs["insufficientDataActions"] = args ? args.insufficientDataActions : undefined; + inputs["okActions"] = args ? args.okActions : undefined; + inputs["tags"] = args ? args.tags : undefined; + inputs["arn"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(CompositeAlarm.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CompositeAlarm resources. + */ +export interface CompositeAlarmState { + /** + * Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + */ + readonly actionsEnabled?: pulumi.Input; + /** + * The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly alarmActions?: pulumi.Input[]>; + /** + * The description for the composite alarm. + */ + readonly alarmDescription?: pulumi.Input; + /** + * The name for the composite alarm. This name must be unique within the region. + */ + readonly alarmName?: pulumi.Input; + /** + * An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + */ + readonly alarmRule?: pulumi.Input; + /** + * The ARN of the composite alarm. + */ + readonly arn?: pulumi.Input; + /** + * The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly insufficientDataActions?: pulumi.Input[]>; + /** + * The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly okActions?: pulumi.Input[]>; + /** + * A map of tags to associate with the alarm. Up to 50 tags are allowed. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a CompositeAlarm resource. + */ +export interface CompositeAlarmArgs { + /** + * Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + */ + readonly actionsEnabled?: pulumi.Input; + /** + * The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly alarmActions?: pulumi.Input[]>; + /** + * The description for the composite alarm. + */ + readonly alarmDescription?: pulumi.Input; + /** + * The name for the composite alarm. This name must be unique within the region. + */ + readonly alarmName: pulumi.Input; + /** + * An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + */ + readonly alarmRule: pulumi.Input; + /** + * The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly insufficientDataActions?: pulumi.Input[]>; + /** + * The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + */ + readonly okActions?: pulumi.Input[]>; + /** + * A map of tags to associate with the alarm. Up to 50 tags are allowed. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/cloudwatch/index.ts b/sdk/nodejs/cloudwatch/index.ts index 10151ccce9f..3b477ea0f82 100644 --- a/sdk/nodejs/cloudwatch/index.ts +++ b/sdk/nodejs/cloudwatch/index.ts @@ -6,6 +6,7 @@ import * as utilities from "../utilities"; // Export members: export * from "./cloudwatchMixins"; +export * from "./compositeAlarm"; export * from "./dashboard"; export * from "./eventBus"; export * from "./eventPermission"; @@ -24,6 +25,7 @@ export * from "./logSubscriptionFilter"; export * from "./metricAlarm"; // Import resources to register: +import { CompositeAlarm } from "./compositeAlarm"; import { Dashboard } from "./dashboard"; import { EventBus } from "./eventBus"; import { EventPermission } from "./eventPermission"; @@ -42,6 +44,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:cloudwatch/compositeAlarm:CompositeAlarm": + return new CompositeAlarm(name, undefined, { urn }) case "aws:cloudwatch/dashboard:Dashboard": return new Dashboard(name, undefined, { urn }) case "aws:cloudwatch/eventBus:EventBus": @@ -73,6 +77,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "cloudwatch/compositeAlarm", _module) pulumi.runtime.registerResourceModule("aws", "cloudwatch/dashboard", _module) pulumi.runtime.registerResourceModule("aws", "cloudwatch/eventBus", _module) pulumi.runtime.registerResourceModule("aws", "cloudwatch/eventPermission", _module) diff --git a/sdk/nodejs/codepipeline/pipeline.ts b/sdk/nodejs/codepipeline/pipeline.ts index c14e64d2bab..aa1d9b4b285 100644 --- a/sdk/nodejs/codepipeline/pipeline.ts +++ b/sdk/nodejs/codepipeline/pipeline.ts @@ -14,6 +14,7 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * + * const example = new aws.codestarconnections.Connection("example", {providerType: "GitHub"}); * const codepipelineBucket = new aws.s3.Bucket("codepipelineBucket", {acl: "private"}); * const codepipelineRole = new aws.iam.Role("codepipelineRole", {assumeRolePolicy: `{ * "Version": "2012-10-17", @@ -47,15 +48,14 @@ import * as utilities from "../utilities"; * actions: [{ * name: "Source", * category: "Source", - * owner: "ThirdParty", - * provider: "GitHub", + * owner: "AWS", + * provider: "CodeStarSourceConnection", * version: "1", * outputArtifacts: ["source_output"], * configuration: { - * Owner: "my-organization", - * Repo: "test", - * Branch: "master", - * OAuthToken: _var.github_token, + * ConnectionArn: example.arn, + * FullRepositoryId: "my-organization/example", + * BranchName: "main", * }, * }], * }, diff --git a/sdk/nodejs/codestarconnections/connection.ts b/sdk/nodejs/codestarconnections/connection.ts index d354bbe96df..d19788a13f0 100644 --- a/sdk/nodejs/codestarconnections/connection.ts +++ b/sdk/nodejs/codestarconnections/connection.ts @@ -30,10 +30,9 @@ import * as utilities from "../utilities"; * version: "1", * outputArtifacts: ["source_output"], * configuration: { - * Owner: "my-organization", * ConnectionArn: exampleConnection.arn, - * Repo: "foo/test", - * Branch: "master", + * FullRepositoryId: "my-organization/test", + * BranchName: "main", * }, * }], * }, diff --git a/sdk/nodejs/ec2/instance.ts b/sdk/nodejs/ec2/instance.ts index db7e5421b22..d764af090ae 100644 --- a/sdk/nodejs/ec2/instance.ts +++ b/sdk/nodejs/ec2/instance.ts @@ -8,10 +8,10 @@ import * as utilities from "../utilities"; import {InstanceProfile} from "../iam"; /** - * Provides an EC2 instance resource. This allows instances to be created, updated, - * and deleted. + * Provides an EC2 instance resource. This allows instances to be created, updated, and deleted. * * ## Example Usage + * ### Basic Example Using AMI Lookup * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -39,6 +39,45 @@ import {InstanceProfile} from "../iam"; * }, * }); * ``` + * ### Network and Credit Specification Example + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const myVpc = new aws.ec2.Vpc("myVpc", { + * cidrBlock: "172.16.0.0/16", + * tags: { + * Name: "tf-example", + * }, + * }); + * const mySubnet = new aws.ec2.Subnet("mySubnet", { + * vpcId: myVpc.id, + * cidrBlock: "172.16.10.0/24", + * availabilityZone: "us-west-2a", + * tags: { + * Name: "tf-example", + * }, + * }); + * const fooNetworkInterface = new aws.ec2.NetworkInterface("fooNetworkInterface", { + * subnetId: mySubnet.id, + * privateIps: ["172.16.10.100"], + * tags: { + * Name: "primary_network_interface", + * }, + * }); + * const fooInstance = new aws.ec2.Instance("fooInstance", { + * ami: "ami-005e54dee72cc1d00", + * instanceType: "t2.micro", + * networkInterfaces: [{ + * networkInterfaceId: fooNetworkInterface.id, + * deviceIndex: 0, + * }], + * creditSpecification: { + * cpuCredits: "unlimited", + * }, + * }); + * ``` * * ## Import * @@ -77,7 +116,7 @@ export class Instance extends pulumi.CustomResource { } /** - * The AMI to use for the instance. + * AMI to use for the instance. */ public readonly ami!: pulumi.Output; /** @@ -85,17 +124,15 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly arn!: pulumi.Output; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ public readonly associatePublicIpAddress!: pulumi.Output; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ public readonly availabilityZone!: pulumi.Output; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ public readonly cpuCoreCount!: pulumi.Output; /** @@ -107,21 +144,15 @@ export class Instance extends pulumi.CustomResource { */ public readonly creditSpecification!: pulumi.Output; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ public readonly disableApiTermination!: pulumi.Output; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ public readonly ebsBlockDevices!: pulumi.Output; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ public readonly ebsOptimized!: pulumi.Output; /** @@ -129,8 +160,7 @@ export class Instance extends pulumi.CustomResource { */ public readonly enclaveOptions!: pulumi.Output; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ public readonly ephemeralBlockDevices!: pulumi.Output; /** @@ -142,19 +172,15 @@ export class Instance extends pulumi.CustomResource { */ public readonly hibernation!: pulumi.Output; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ public readonly hostId!: pulumi.Output; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ public readonly iamInstanceProfile!: pulumi.Output; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ public readonly instanceInitiatedShutdownBehavior!: pulumi.Output; /** @@ -162,7 +188,7 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly instanceState!: pulumi.Output; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ public readonly instanceType!: pulumi.Output; /** @@ -174,7 +200,7 @@ export class Instance extends pulumi.CustomResource { */ public readonly ipv6Addresses!: pulumi.Output; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ public readonly keyName!: pulumi.Output; /** @@ -194,15 +220,11 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly outpostArn!: pulumi.Output; /** - * Base-64 encoded encrypted password data for the instance. - * Useful for getting the administrator password for instances running Microsoft Windows. - * This attribute is only exported if `getPasswordData` is true. - * Note that this encrypted value will be stored in the state file, as with all exported attributes. - * See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + * Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `getPasswordData` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. */ public /*out*/ readonly passwordData!: pulumi.Output; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ public readonly placementGroup!: pulumi.Output; /** @@ -210,28 +232,23 @@ export class Instance extends pulumi.CustomResource { */ public /*out*/ readonly primaryNetworkInterfaceId!: pulumi.Output; /** - * The private DNS name assigned to the instance. Can only be - * used inside the Amazon EC2, and only available if you've enabled DNS hostnames - * for your VPC + * The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. */ public /*out*/ readonly privateDns!: pulumi.Output; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ public readonly privateIp!: pulumi.Output; /** - * The public DNS name assigned to the instance. For EC2-VPC, this - * is only available if you've enabled DNS hostnames for your VPC + * The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. */ public /*out*/ readonly publicDns!: pulumi.Output; /** - * The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp`, as this field will change after the EIP is attached. + * The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp` as this field will change after the EIP is attached. */ public /*out*/ readonly publicIp!: pulumi.Output; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ public readonly rootBlockDevice!: pulumi.Output; /** @@ -245,24 +262,23 @@ export class Instance extends pulumi.CustomResource { */ public readonly securityGroups!: pulumi.Output; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ public readonly sourceDestCheck!: pulumi.Output; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ public readonly subnetId!: pulumi.Output; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ public readonly tenancy!: pulumi.Output; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ public readonly userData!: pulumi.Output; /** @@ -270,9 +286,9 @@ export class Instance extends pulumi.CustomResource { */ public readonly userDataBase64!: pulumi.Output; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ - public readonly volumeTags!: pulumi.Output<{[key: string]: string}>; + public readonly volumeTags!: pulumi.Output<{[key: string]: string} | undefined>; /** * A list of security group IDs to associate with. */ @@ -403,7 +419,7 @@ export class Instance extends pulumi.CustomResource { */ export interface InstanceState { /** - * The AMI to use for the instance. + * AMI to use for the instance. */ readonly ami?: pulumi.Input; /** @@ -411,17 +427,15 @@ export interface InstanceState { */ readonly arn?: pulumi.Input; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ readonly associatePublicIpAddress?: pulumi.Input; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ readonly availabilityZone?: pulumi.Input; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ readonly cpuCoreCount?: pulumi.Input; /** @@ -433,21 +447,15 @@ export interface InstanceState { */ readonly creditSpecification?: pulumi.Input; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ readonly disableApiTermination?: pulumi.Input; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ readonly ebsBlockDevices?: pulumi.Input[]>; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ readonly ebsOptimized?: pulumi.Input; /** @@ -455,8 +463,7 @@ export interface InstanceState { */ readonly enclaveOptions?: pulumi.Input; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ readonly ephemeralBlockDevices?: pulumi.Input[]>; /** @@ -468,19 +475,15 @@ export interface InstanceState { */ readonly hibernation?: pulumi.Input; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ readonly hostId?: pulumi.Input; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ readonly iamInstanceProfile?: pulumi.Input; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ readonly instanceInitiatedShutdownBehavior?: pulumi.Input; /** @@ -488,7 +491,7 @@ export interface InstanceState { */ readonly instanceState?: pulumi.Input; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ readonly instanceType?: pulumi.Input; /** @@ -500,7 +503,7 @@ export interface InstanceState { */ readonly ipv6Addresses?: pulumi.Input[]>; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ readonly keyName?: pulumi.Input; /** @@ -520,15 +523,11 @@ export interface InstanceState { */ readonly outpostArn?: pulumi.Input; /** - * Base-64 encoded encrypted password data for the instance. - * Useful for getting the administrator password for instances running Microsoft Windows. - * This attribute is only exported if `getPasswordData` is true. - * Note that this encrypted value will be stored in the state file, as with all exported attributes. - * See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + * Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `getPasswordData` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. */ readonly passwordData?: pulumi.Input; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ readonly placementGroup?: pulumi.Input; /** @@ -536,28 +535,23 @@ export interface InstanceState { */ readonly primaryNetworkInterfaceId?: pulumi.Input; /** - * The private DNS name assigned to the instance. Can only be - * used inside the Amazon EC2, and only available if you've enabled DNS hostnames - * for your VPC + * The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. */ readonly privateDns?: pulumi.Input; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ readonly privateIp?: pulumi.Input; /** - * The public DNS name assigned to the instance. For EC2-VPC, this - * is only available if you've enabled DNS hostnames for your VPC + * The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. */ readonly publicDns?: pulumi.Input; /** - * The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp`, as this field will change after the EIP is attached. + * The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `aws.ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `publicIp` as this field will change after the EIP is attached. */ readonly publicIp?: pulumi.Input; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ readonly rootBlockDevice?: pulumi.Input; /** @@ -571,24 +565,23 @@ export interface InstanceState { */ readonly securityGroups?: pulumi.Input[]>; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ readonly sourceDestCheck?: pulumi.Input; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ readonly subnetId?: pulumi.Input; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ readonly tenancy?: pulumi.Input; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ readonly userData?: pulumi.Input; /** @@ -596,7 +589,7 @@ export interface InstanceState { */ readonly userDataBase64?: pulumi.Input; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ readonly volumeTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -610,21 +603,19 @@ export interface InstanceState { */ export interface InstanceArgs { /** - * The AMI to use for the instance. + * AMI to use for the instance. */ readonly ami: pulumi.Input; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ readonly associatePublicIpAddress?: pulumi.Input; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ readonly availabilityZone?: pulumi.Input; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ readonly cpuCoreCount?: pulumi.Input; /** @@ -636,21 +627,15 @@ export interface InstanceArgs { */ readonly creditSpecification?: pulumi.Input; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ readonly disableApiTermination?: pulumi.Input; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ readonly ebsBlockDevices?: pulumi.Input[]>; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ readonly ebsOptimized?: pulumi.Input; /** @@ -658,8 +643,7 @@ export interface InstanceArgs { */ readonly enclaveOptions?: pulumi.Input; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ readonly ephemeralBlockDevices?: pulumi.Input[]>; /** @@ -671,23 +655,19 @@ export interface InstanceArgs { */ readonly hibernation?: pulumi.Input; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ readonly hostId?: pulumi.Input; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ readonly iamInstanceProfile?: pulumi.Input; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ readonly instanceInitiatedShutdownBehavior?: pulumi.Input; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ readonly instanceType: pulumi.Input; /** @@ -699,7 +679,7 @@ export interface InstanceArgs { */ readonly ipv6Addresses?: pulumi.Input[]>; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ readonly keyName?: pulumi.Input; /** @@ -715,17 +695,15 @@ export interface InstanceArgs { */ readonly networkInterfaces?: pulumi.Input[]>; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ readonly placementGroup?: pulumi.Input; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ readonly privateIp?: pulumi.Input; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ readonly rootBlockDevice?: pulumi.Input; /** @@ -739,24 +717,23 @@ export interface InstanceArgs { */ readonly securityGroups?: pulumi.Input[]>; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ readonly sourceDestCheck?: pulumi.Input; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ readonly subnetId?: pulumi.Input; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ readonly tenancy?: pulumi.Input; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ readonly userData?: pulumi.Input; /** @@ -764,7 +741,7 @@ export interface InstanceArgs { */ readonly userDataBase64?: pulumi.Input; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ readonly volumeTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** diff --git a/sdk/nodejs/ec2/spotInstanceRequest.ts b/sdk/nodejs/ec2/spotInstanceRequest.ts index 4f4ca28c30e..cbd7495d82c 100644 --- a/sdk/nodejs/ec2/spotInstanceRequest.ts +++ b/sdk/nodejs/ec2/spotInstanceRequest.ts @@ -75,16 +75,16 @@ export class SpotInstanceRequest extends pulumi.CustomResource { } /** - * The AMI to use for the instance. + * AMI to use for the instance. */ public readonly ami!: pulumi.Output; public /*out*/ readonly arn!: pulumi.Output; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ public readonly associatePublicIpAddress!: pulumi.Output; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ public readonly availabilityZone!: pulumi.Output; /** @@ -94,9 +94,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly blockDurationMinutes!: pulumi.Output; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ public readonly cpuCoreCount!: pulumi.Output; /** @@ -108,21 +106,15 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly creditSpecification!: pulumi.Output; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ public readonly disableApiTermination!: pulumi.Output; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ public readonly ebsBlockDevices!: pulumi.Output; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ public readonly ebsOptimized!: pulumi.Output; /** @@ -130,8 +122,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly enclaveOptions!: pulumi.Output; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ public readonly ephemeralBlockDevices!: pulumi.Output; /** @@ -143,19 +134,15 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly hibernation!: pulumi.Output; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ public readonly hostId!: pulumi.Output; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ public readonly iamInstanceProfile!: pulumi.Output; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ public readonly instanceInitiatedShutdownBehavior!: pulumi.Output; /** @@ -164,7 +151,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { public readonly instanceInterruptionBehaviour!: pulumi.Output; public /*out*/ readonly instanceState!: pulumi.Output; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ public readonly instanceType!: pulumi.Output; /** @@ -176,7 +163,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly ipv6Addresses!: pulumi.Output; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ public readonly keyName!: pulumi.Output; /** @@ -199,7 +186,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { public /*out*/ readonly outpostArn!: pulumi.Output; public /*out*/ readonly passwordData!: pulumi.Output; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ public readonly placementGroup!: pulumi.Output; public /*out*/ readonly primaryNetworkInterfaceId!: pulumi.Output; @@ -210,8 +197,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public /*out*/ readonly privateDns!: pulumi.Output; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ public readonly privateIp!: pulumi.Output; /** @@ -224,8 +210,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public /*out*/ readonly publicIp!: pulumi.Output; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ public readonly rootBlockDevice!: pulumi.Output; /** @@ -237,8 +222,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly securityGroups!: pulumi.Output; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ public readonly sourceDestCheck!: pulumi.Output; /** @@ -266,19 +250,19 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly spotType!: pulumi.Output; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ public readonly subnetId!: pulumi.Output; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ public readonly tenancy!: pulumi.Output; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ public readonly userData!: pulumi.Output; /** @@ -294,7 +278,7 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ public readonly validUntil!: pulumi.Output; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ public readonly volumeTags!: pulumi.Output<{[key: string]: string} | undefined>; /** @@ -455,16 +439,16 @@ export class SpotInstanceRequest extends pulumi.CustomResource { */ export interface SpotInstanceRequestState { /** - * The AMI to use for the instance. + * AMI to use for the instance. */ readonly ami?: pulumi.Input; readonly arn?: pulumi.Input; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ readonly associatePublicIpAddress?: pulumi.Input; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ readonly availabilityZone?: pulumi.Input; /** @@ -474,9 +458,7 @@ export interface SpotInstanceRequestState { */ readonly blockDurationMinutes?: pulumi.Input; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ readonly cpuCoreCount?: pulumi.Input; /** @@ -488,21 +470,15 @@ export interface SpotInstanceRequestState { */ readonly creditSpecification?: pulumi.Input; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ readonly disableApiTermination?: pulumi.Input; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ readonly ebsBlockDevices?: pulumi.Input[]>; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ readonly ebsOptimized?: pulumi.Input; /** @@ -510,8 +486,7 @@ export interface SpotInstanceRequestState { */ readonly enclaveOptions?: pulumi.Input; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ readonly ephemeralBlockDevices?: pulumi.Input[]>; /** @@ -523,19 +498,15 @@ export interface SpotInstanceRequestState { */ readonly hibernation?: pulumi.Input; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ readonly hostId?: pulumi.Input; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ readonly iamInstanceProfile?: pulumi.Input; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ readonly instanceInitiatedShutdownBehavior?: pulumi.Input; /** @@ -544,7 +515,7 @@ export interface SpotInstanceRequestState { readonly instanceInterruptionBehaviour?: pulumi.Input; readonly instanceState?: pulumi.Input; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ readonly instanceType?: pulumi.Input; /** @@ -556,7 +527,7 @@ export interface SpotInstanceRequestState { */ readonly ipv6Addresses?: pulumi.Input[]>; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ readonly keyName?: pulumi.Input; /** @@ -579,7 +550,7 @@ export interface SpotInstanceRequestState { readonly outpostArn?: pulumi.Input; readonly passwordData?: pulumi.Input; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ readonly placementGroup?: pulumi.Input; readonly primaryNetworkInterfaceId?: pulumi.Input; @@ -590,8 +561,7 @@ export interface SpotInstanceRequestState { */ readonly privateDns?: pulumi.Input; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ readonly privateIp?: pulumi.Input; /** @@ -604,8 +574,7 @@ export interface SpotInstanceRequestState { */ readonly publicIp?: pulumi.Input; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ readonly rootBlockDevice?: pulumi.Input; /** @@ -617,8 +586,7 @@ export interface SpotInstanceRequestState { */ readonly securityGroups?: pulumi.Input[]>; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ readonly sourceDestCheck?: pulumi.Input; /** @@ -646,19 +614,19 @@ export interface SpotInstanceRequestState { */ readonly spotType?: pulumi.Input; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ readonly subnetId?: pulumi.Input; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ readonly tenancy?: pulumi.Input; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ readonly userData?: pulumi.Input; /** @@ -674,7 +642,7 @@ export interface SpotInstanceRequestState { */ readonly validUntil?: pulumi.Input; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ readonly volumeTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** @@ -694,15 +662,15 @@ export interface SpotInstanceRequestState { */ export interface SpotInstanceRequestArgs { /** - * The AMI to use for the instance. + * AMI to use for the instance. */ readonly ami: pulumi.Input; /** - * Associate a public ip address with an instance in a VPC. Boolean value. + * Whether to associate a public IP address with an instance in a VPC. */ readonly associatePublicIpAddress?: pulumi.Input; /** - * The AZ to start the instance in. + * AZ to start the instance in. */ readonly availabilityZone?: pulumi.Input; /** @@ -712,9 +680,7 @@ export interface SpotInstanceRequestArgs { */ readonly blockDurationMinutes?: pulumi.Input; /** - * Sets the number of CPU cores for an instance. This option is - * only supported on creation of instance type that support CPU Options - * [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + * Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. */ readonly cpuCoreCount?: pulumi.Input; /** @@ -726,21 +692,15 @@ export interface SpotInstanceRequestArgs { */ readonly creditSpecification?: pulumi.Input; /** - * If true, enables [EC2 Instance - * Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + * If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). */ readonly disableApiTermination?: pulumi.Input; /** - * Additional EBS block devices to attach to the - * instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + * Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. */ readonly ebsBlockDevices?: pulumi.Input[]>; /** - * If true, the launched EC2 instance will be EBS-optimized. - * Note that if this is not set on an instance type that is optimized by default then - * this will show as disabled but if the instance type is optimized by default then - * there is no need to set this and there is no effect to disabling it. - * See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + * If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. */ readonly ebsOptimized?: pulumi.Input; /** @@ -748,8 +708,7 @@ export interface SpotInstanceRequestArgs { */ readonly enclaveOptions?: pulumi.Input; /** - * Customize Ephemeral (also known as - * "Instance Store") volumes on the instance. See Block Devices below for details. + * Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. */ readonly ephemeralBlockDevices?: pulumi.Input[]>; /** @@ -761,19 +720,15 @@ export interface SpotInstanceRequestArgs { */ readonly hibernation?: pulumi.Input; /** - * The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + * ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. */ readonly hostId?: pulumi.Input; /** - * The IAM Instance Profile to - * launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + * IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. */ readonly iamInstanceProfile?: pulumi.Input; /** - * Shutdown behavior for the - * instance. Amazon defaults this to `stop` for EBS-backed instances and - * `terminate` for instance-store instances. Cannot be set on instance-store - * instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + * Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. */ readonly instanceInitiatedShutdownBehavior?: pulumi.Input; /** @@ -781,7 +736,7 @@ export interface SpotInstanceRequestArgs { */ readonly instanceInterruptionBehaviour?: pulumi.Input; /** - * The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + * Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. */ readonly instanceType: pulumi.Input; /** @@ -793,7 +748,7 @@ export interface SpotInstanceRequestArgs { */ readonly ipv6Addresses?: pulumi.Input[]>; /** - * The key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. + * Key name of the Key Pair to use for the instance; which can be managed using the `aws.ec2.KeyPair` resource. */ readonly keyName?: pulumi.Input; /** @@ -814,17 +769,15 @@ export interface SpotInstanceRequestArgs { */ readonly networkInterfaces?: pulumi.Input[]>; /** - * The Placement Group to start the instance in. + * Placement Group to start the instance in. */ readonly placementGroup?: pulumi.Input; /** - * Private IP address to associate with the - * instance in a VPC. + * Private IP address to associate with the instance in a VPC. */ readonly privateIp?: pulumi.Input; /** - * Customize details about the root block - * device of the instance. See Block Devices below for details. + * Customize details about the root block device of the instance. See Block Devices below for details. */ readonly rootBlockDevice?: pulumi.Input; /** @@ -836,8 +789,7 @@ export interface SpotInstanceRequestArgs { */ readonly securityGroups?: pulumi.Input[]>; /** - * Controls if traffic is routed to the instance when - * the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + * Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. */ readonly sourceDestCheck?: pulumi.Input; /** @@ -850,19 +802,19 @@ export interface SpotInstanceRequestArgs { */ readonly spotType?: pulumi.Input; /** - * The VPC Subnet ID to launch in. + * VPC Subnet ID to launch in. */ readonly subnetId?: pulumi.Input; /** - * A map of tags to assign to the resource. + * A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + * Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. */ readonly tenancy?: pulumi.Input; /** - * The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. + * User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. */ readonly userData?: pulumi.Input; /** @@ -878,7 +830,7 @@ export interface SpotInstanceRequestArgs { */ readonly validUntil?: pulumi.Input; /** - * A map of tags to assign to the devices created by the instance at launch time. + * A map of tags to assign, at instance-creation time, to root and EBS volumes. */ readonly volumeTags?: pulumi.Input<{[key: string]: pulumi.Input}>; /** diff --git a/sdk/nodejs/elasticache/cluster.ts b/sdk/nodejs/elasticache/cluster.ts index fb7c49cdf8f..89af35cb094 100644 --- a/sdk/nodejs/elasticache/cluster.ts +++ b/sdk/nodejs/elasticache/cluster.ts @@ -139,6 +139,10 @@ export class Cluster extends pulumi.CustomResource { * in the AWS Documentation center for supported versions */ public readonly engineVersion!: pulumi.Output; + /** + * The name of your final cluster snapshot. If omitted, no final snapshot will be made. + */ + public readonly finalSnapshotIdentifier!: pulumi.Output; /** * Specifies the weekly time range for when maintenance * on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -246,6 +250,7 @@ export class Cluster extends pulumi.CustomResource { inputs["configurationEndpoint"] = state ? state.configurationEndpoint : undefined; inputs["engine"] = state ? state.engine : undefined; inputs["engineVersion"] = state ? state.engineVersion : undefined; + inputs["finalSnapshotIdentifier"] = state ? state.finalSnapshotIdentifier : undefined; inputs["maintenanceWindow"] = state ? state.maintenanceWindow : undefined; inputs["nodeType"] = state ? state.nodeType : undefined; inputs["notificationTopicArn"] = state ? state.notificationTopicArn : undefined; @@ -270,6 +275,7 @@ export class Cluster extends pulumi.CustomResource { inputs["clusterId"] = args ? args.clusterId : undefined; inputs["engine"] = args ? args.engine : undefined; inputs["engineVersion"] = args ? args.engineVersion : undefined; + inputs["finalSnapshotIdentifier"] = args ? args.finalSnapshotIdentifier : undefined; inputs["maintenanceWindow"] = args ? args.maintenanceWindow : undefined; inputs["nodeType"] = args ? args.nodeType : undefined; inputs["notificationTopicArn"] = args ? args.notificationTopicArn : undefined; @@ -351,6 +357,10 @@ export interface ClusterState { * in the AWS Documentation center for supported versions */ readonly engineVersion?: pulumi.Input; + /** + * The name of your final cluster snapshot. If omitted, no final snapshot will be made. + */ + readonly finalSnapshotIdentifier?: pulumi.Input; /** * Specifies the weekly time range for when maintenance * on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -472,6 +482,10 @@ export interface ClusterArgs { * in the AWS Documentation center for supported versions */ readonly engineVersion?: pulumi.Input; + /** + * The name of your final cluster snapshot. If omitted, no final snapshot will be made. + */ + readonly finalSnapshotIdentifier?: pulumi.Input; /** * Specifies the weekly time range for when maintenance * on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). diff --git a/sdk/nodejs/elasticache/replicationGroup.ts b/sdk/nodejs/elasticache/replicationGroup.ts index cb0f19033c3..b476e66185a 100644 --- a/sdk/nodejs/elasticache/replicationGroup.ts +++ b/sdk/nodejs/elasticache/replicationGroup.ts @@ -161,7 +161,7 @@ export class ReplicationGroup extends pulumi.CustomResource { */ public /*out*/ readonly clusterEnabled!: pulumi.Output; /** - * Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + * Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. */ public readonly clusterMode!: pulumi.Output; /** @@ -176,6 +176,10 @@ export class ReplicationGroup extends pulumi.CustomResource { * The version number of the cache engine to be used for the cache clusters in this replication group. */ public readonly engineVersion!: pulumi.Output; + /** + * The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + */ + public readonly finalSnapshotIdentifier!: pulumi.Output; /** * The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. */ @@ -295,6 +299,7 @@ export class ReplicationGroup extends pulumi.CustomResource { inputs["configurationEndpointAddress"] = state ? state.configurationEndpointAddress : undefined; inputs["engine"] = state ? state.engine : undefined; inputs["engineVersion"] = state ? state.engineVersion : undefined; + inputs["finalSnapshotIdentifier"] = state ? state.finalSnapshotIdentifier : undefined; inputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; inputs["maintenanceWindow"] = state ? state.maintenanceWindow : undefined; inputs["memberClusters"] = state ? state.memberClusters : undefined; @@ -330,6 +335,7 @@ export class ReplicationGroup extends pulumi.CustomResource { inputs["clusterMode"] = args ? args.clusterMode : undefined; inputs["engine"] = args ? args.engine : undefined; inputs["engineVersion"] = args ? args.engineVersion : undefined; + inputs["finalSnapshotIdentifier"] = args ? args.finalSnapshotIdentifier : undefined; inputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; inputs["maintenanceWindow"] = args ? args.maintenanceWindow : undefined; inputs["nodeType"] = args ? args.nodeType : undefined; @@ -398,7 +404,7 @@ export interface ReplicationGroupState { */ readonly clusterEnabled?: pulumi.Input; /** - * Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + * Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. */ readonly clusterMode?: pulumi.Input; /** @@ -413,6 +419,10 @@ export interface ReplicationGroupState { * The version number of the cache engine to be used for the cache clusters in this replication group. */ readonly engineVersion?: pulumi.Input; + /** + * The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + */ + readonly finalSnapshotIdentifier?: pulumi.Input; /** * The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. */ @@ -539,7 +549,7 @@ export interface ReplicationGroupArgs { */ readonly availabilityZones?: pulumi.Input[]>; /** - * Create a native redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + * Create a native Redis cluster. `automaticFailoverEnabled` must be set to true. Cluster Mode documented below. Only 1 `clusterMode` block is allowed. One of `numberCacheClusters` or `clusterMode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. */ readonly clusterMode?: pulumi.Input; /** @@ -550,6 +560,10 @@ export interface ReplicationGroupArgs { * The version number of the cache engine to be used for the cache clusters in this replication group. */ readonly engineVersion?: pulumi.Input; + /** + * The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + */ + readonly finalSnapshotIdentifier?: pulumi.Input; /** * The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `atRestEncryptionEnabled = true`. */ diff --git a/sdk/nodejs/fms/index.ts b/sdk/nodejs/fms/index.ts index 8c402a92e4a..59772590e24 100644 --- a/sdk/nodejs/fms/index.ts +++ b/sdk/nodejs/fms/index.ts @@ -6,9 +6,11 @@ import * as utilities from "../utilities"; // Export members: export * from "./adminAccount"; +export * from "./policy"; // Import resources to register: import { AdminAccount } from "./adminAccount"; +import { Policy } from "./policy"; const _module = { version: utilities.getVersion(), @@ -16,9 +18,12 @@ const _module = { switch (type) { case "aws:fms/adminAccount:AdminAccount": return new AdminAccount(name, undefined, { urn }) + case "aws:fms/policy:Policy": + return new Policy(name, undefined, { urn }) default: throw new Error(`unknown resource type ${type}`); } }, }; pulumi.runtime.registerResourceModule("aws", "fms/adminAccount", _module) +pulumi.runtime.registerResourceModule("aws", "fms/policy", _module) diff --git a/sdk/nodejs/fms/policy.ts b/sdk/nodejs/fms/policy.ts new file mode 100644 index 00000000000..25945049b83 --- /dev/null +++ b/sdk/nodejs/fms/policy.ts @@ -0,0 +1,268 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Provides a resource to create an AWS Firewall Manager policy. You need to be using AWS organizations and have enabled the Firewall Manager administrator account. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = new aws.wafregional.RuleGroup("test", { + * metricName: "WAFRuleGroupExample", + * }); + * const example = new aws.fms.Policy("example", { + * excludeResourceTags: false, + * remediationEnabled: false, + * resourceTypeLists: ["AWS::ElasticLoadBalancingV2::LoadBalancer"], + * securityServicePolicyData: { + * managedServiceData: pulumi.interpolate` { + * "type": "WAF", + * "ruleGroups": + * [{ + * "id":"${test.id}", + * "overrideAction" : { + * "type": "COUNT" + * } + * }], + * "defaultAction": + * { + * "type": "BLOCK" + * }, + * "overrideCustomerWebACLAssociation": false + * } + * `, + * type: "WAF", + * }, + * }); + * ``` + * + * ## Import + * + * Firewall Manager policies can be imported using the policy ID, e.g. + * + * ```sh + * $ pulumi import aws:fms/policy:Policy example 5be49585-a7e3-4c49-dde1-a179fe4a619a + * ``` + */ +export class Policy extends pulumi.CustomResource { + /** + * Get an existing Policy resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: PolicyState, opts?: pulumi.CustomResourceOptions): Policy { + return new Policy(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:fms/policy:Policy'; + + /** + * Returns true if the given object is an instance of Policy. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Policy { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Policy.__pulumiType; + } + + public /*out*/ readonly arn!: pulumi.Output; + /** + * If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + */ + public readonly deleteAllPolicyResources!: pulumi.Output; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + */ + public readonly excludeMap!: pulumi.Output; + /** + * A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + */ + public readonly excludeResourceTags!: pulumi.Output; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + */ + public readonly includeMap!: pulumi.Output; + /** + * The friendly name of the AWS Firewall Manager Policy. + */ + public readonly name!: pulumi.Output; + /** + * A unique identifier for each update to the policy. + */ + public /*out*/ readonly policyUpdateToken!: pulumi.Output; + /** + * A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + */ + public readonly remediationEnabled!: pulumi.Output; + /** + * A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + */ + public readonly resourceTags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + */ + public readonly resourceTypeLists!: pulumi.Output; + /** + * The objects to include in Security Service Policy Data. Documented below. + */ + public readonly securityServicePolicyData!: pulumi.Output; + + /** + * Create a Policy resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: PolicyArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: PolicyArgs | PolicyState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as PolicyState | undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["deleteAllPolicyResources"] = state ? state.deleteAllPolicyResources : undefined; + inputs["excludeMap"] = state ? state.excludeMap : undefined; + inputs["excludeResourceTags"] = state ? state.excludeResourceTags : undefined; + inputs["includeMap"] = state ? state.includeMap : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["policyUpdateToken"] = state ? state.policyUpdateToken : undefined; + inputs["remediationEnabled"] = state ? state.remediationEnabled : undefined; + inputs["resourceTags"] = state ? state.resourceTags : undefined; + inputs["resourceTypeLists"] = state ? state.resourceTypeLists : undefined; + inputs["securityServicePolicyData"] = state ? state.securityServicePolicyData : undefined; + } else { + const args = argsOrState as PolicyArgs | undefined; + if ((!args || args.excludeResourceTags === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'excludeResourceTags'"); + } + if ((!args || args.resourceTypeLists === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'resourceTypeLists'"); + } + if ((!args || args.securityServicePolicyData === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'securityServicePolicyData'"); + } + inputs["deleteAllPolicyResources"] = args ? args.deleteAllPolicyResources : undefined; + inputs["excludeMap"] = args ? args.excludeMap : undefined; + inputs["excludeResourceTags"] = args ? args.excludeResourceTags : undefined; + inputs["includeMap"] = args ? args.includeMap : undefined; + inputs["name"] = args ? args.name : undefined; + inputs["remediationEnabled"] = args ? args.remediationEnabled : undefined; + inputs["resourceTags"] = args ? args.resourceTags : undefined; + inputs["resourceTypeLists"] = args ? args.resourceTypeLists : undefined; + inputs["securityServicePolicyData"] = args ? args.securityServicePolicyData : undefined; + inputs["arn"] = undefined /*out*/; + inputs["policyUpdateToken"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(Policy.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Policy resources. + */ +export interface PolicyState { + readonly arn?: pulumi.Input; + /** + * If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + */ + readonly deleteAllPolicyResources?: pulumi.Input; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + */ + readonly excludeMap?: pulumi.Input; + /** + * A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + */ + readonly excludeResourceTags?: pulumi.Input; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + */ + readonly includeMap?: pulumi.Input; + /** + * The friendly name of the AWS Firewall Manager Policy. + */ + readonly name?: pulumi.Input; + /** + * A unique identifier for each update to the policy. + */ + readonly policyUpdateToken?: pulumi.Input; + /** + * A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + */ + readonly remediationEnabled?: pulumi.Input; + /** + * A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + */ + readonly resourceTags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + */ + readonly resourceTypeLists?: pulumi.Input[]>; + /** + * The objects to include in Security Service Policy Data. Documented below. + */ + readonly securityServicePolicyData?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Policy resource. + */ +export interface PolicyArgs { + /** + * If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + */ + readonly deleteAllPolicyResources?: pulumi.Input; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + */ + readonly excludeMap?: pulumi.Input; + /** + * A boolean value, if true the tags that are specified in the `resourceTags` are not protected by this policy. If set to false and resourceTags are populated, resources that contain tags will be protected by this policy. + */ + readonly excludeResourceTags: pulumi.Input; + /** + * A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + */ + readonly includeMap?: pulumi.Input; + /** + * The friendly name of the AWS Firewall Manager Policy. + */ + readonly name?: pulumi.Input; + /** + * A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + */ + readonly remediationEnabled?: pulumi.Input; + /** + * A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + */ + readonly resourceTags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + */ + readonly resourceTypeLists: pulumi.Input[]>; + /** + * The objects to include in Security Service Policy Data. Documented below. + */ + readonly securityServicePolicyData: pulumi.Input; +} diff --git a/sdk/nodejs/getPartition.ts b/sdk/nodejs/getPartition.ts index 12edb29d7fe..ae5170ba6c5 100644 --- a/sdk/nodejs/getPartition.ts +++ b/sdk/nodejs/getPartition.ts @@ -52,4 +52,8 @@ export interface GetPartitionResult { * Identifier of the current partition (e.g. `aws` in AWS Commercial, `aws-cn` in AWS China). */ readonly partition: string; + /** + * Prefix of service names (e.g. `com.amazonaws` in AWS Commercial, `cn.com.amazonaws` in AWS China). + */ + readonly reverseDnsPrefix: string; } diff --git a/sdk/nodejs/identitystore/getGroup.ts b/sdk/nodejs/identitystore/getGroup.ts new file mode 100644 index 00000000000..c1c2aed0844 --- /dev/null +++ b/sdk/nodejs/identitystore/getGroup.ts @@ -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! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get an Identity Store Group. + */ +export function getGroup(args: GetGroupArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("aws:identitystore/getGroup:getGroup", { + "filters": args.filters, + "groupId": args.groupId, + "identityStoreId": args.identityStoreId, + }, opts); +} + +/** + * A collection of arguments for invoking getGroup. + */ +export interface GetGroupArgs { + /** + * Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + */ + readonly filters: inputs.identitystore.GetGroupFilter[]; + /** + * The identifier for a group in the Identity Store. + */ + readonly groupId?: string; + /** + * The Identity Store ID associated with the Single Sign-On Instance. + */ + readonly identityStoreId: string; +} + +/** + * A collection of values returned by getGroup. + */ +export interface GetGroupResult { + /** + * The group's display name value. + */ + readonly displayName: string; + readonly filters: outputs.identitystore.GetGroupFilter[]; + readonly groupId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly identityStoreId: string; +} diff --git a/sdk/nodejs/identitystore/getUser.ts b/sdk/nodejs/identitystore/getUser.ts new file mode 100644 index 00000000000..af184a19c29 --- /dev/null +++ b/sdk/nodejs/identitystore/getUser.ts @@ -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! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Use this data source to get an Identity Store User. + */ +export function getUser(args: GetUserArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("aws:identitystore/getUser:getUser", { + "filters": args.filters, + "identityStoreId": args.identityStoreId, + "userId": args.userId, + }, opts); +} + +/** + * A collection of arguments for invoking getUser. + */ +export interface GetUserArgs { + /** + * Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + */ + readonly filters: inputs.identitystore.GetUserFilter[]; + /** + * The Identity Store ID associated with the Single Sign-On Instance. + */ + readonly identityStoreId: string; + /** + * The identifier for a user in the Identity Store. + */ + readonly userId?: string; +} + +/** + * A collection of values returned by getUser. + */ +export interface GetUserResult { + readonly filters: outputs.identitystore.GetUserFilter[]; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly identityStoreId: string; + readonly userId: string; + /** + * The user's user name value. + */ + readonly userName: string; +} diff --git a/sdk/nodejs/identitystore/index.ts b/sdk/nodejs/identitystore/index.ts new file mode 100644 index 00000000000..a58b7787b9c --- /dev/null +++ b/sdk/nodejs/identitystore/index.ts @@ -0,0 +1,6 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Export members: +export * from "./getGroup"; +export * from "./getUser"; diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 087b36f89fc..24a5a49f90a 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -98,6 +98,7 @@ import * as globalaccelerator from "./globalaccelerator"; import * as glue from "./glue"; import * as guardduty from "./guardduty"; import * as iam from "./iam"; +import * as identitystore from "./identitystore"; import * as imagebuilder from "./imagebuilder"; import * as inspector from "./inspector"; import * as iot from "./iot"; @@ -229,6 +230,7 @@ export { glue, guardduty, iam, + identitystore, imagebuilder, inspector, iot, diff --git a/sdk/nodejs/rds/instance.ts b/sdk/nodejs/rds/instance.ts index 3ddcb1a3510..4f92e15a055 100644 --- a/sdk/nodejs/rds/instance.ts +++ b/sdk/nodejs/rds/instance.ts @@ -216,7 +216,7 @@ export class Instance extends pulumi.CustomResource { /** * The name of your final DB snapshot * when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - * set to `false`. + * set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. */ public readonly finalSnapshotIdentifier!: pulumi.Output; /** @@ -687,7 +687,7 @@ export interface InstanceState { /** * The name of your final DB snapshot * when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - * set to `false`. + * set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. */ readonly finalSnapshotIdentifier?: pulumi.Input; /** @@ -998,7 +998,7 @@ export interface InstanceArgs { /** * The name of your final DB snapshot * when this DB instance is deleted. Must be provided if `skipFinalSnapshot` is - * set to `false`. + * set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. */ readonly finalSnapshotIdentifier?: pulumi.Input; /** diff --git a/sdk/nodejs/route53/index.ts b/sdk/nodejs/route53/index.ts index 2d350278a88..d6cbb58b0ac 100644 --- a/sdk/nodejs/route53/index.ts +++ b/sdk/nodejs/route53/index.ts @@ -15,6 +15,7 @@ export * from "./healthCheck"; export * from "./queryLog"; export * from "./record"; export * from "./recordType"; +export * from "./resolverDnsSecConfig"; export * from "./resolverEndpoint"; export * from "./resolverQueryLogConfig"; export * from "./resolverQueryLogConfigAssociation"; @@ -32,6 +33,7 @@ import { DelegationSet } from "./delegationSet"; import { HealthCheck } from "./healthCheck"; import { QueryLog } from "./queryLog"; import { Record } from "./record"; +import { ResolverDnsSecConfig } from "./resolverDnsSecConfig"; import { ResolverEndpoint } from "./resolverEndpoint"; import { ResolverQueryLogConfig } from "./resolverQueryLogConfig"; import { ResolverQueryLogConfigAssociation } from "./resolverQueryLogConfigAssociation"; @@ -53,6 +55,8 @@ const _module = { return new QueryLog(name, undefined, { urn }) case "aws:route53/record:Record": return new Record(name, undefined, { urn }) + case "aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig": + return new ResolverDnsSecConfig(name, undefined, { urn }) case "aws:route53/resolverEndpoint:ResolverEndpoint": return new ResolverEndpoint(name, undefined, { urn }) case "aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig": @@ -78,6 +82,7 @@ pulumi.runtime.registerResourceModule("aws", "route53/delegationSet", _module) pulumi.runtime.registerResourceModule("aws", "route53/healthCheck", _module) pulumi.runtime.registerResourceModule("aws", "route53/queryLog", _module) pulumi.runtime.registerResourceModule("aws", "route53/record", _module) +pulumi.runtime.registerResourceModule("aws", "route53/resolverDnsSecConfig", _module) pulumi.runtime.registerResourceModule("aws", "route53/resolverEndpoint", _module) pulumi.runtime.registerResourceModule("aws", "route53/resolverQueryLogConfig", _module) pulumi.runtime.registerResourceModule("aws", "route53/resolverQueryLogConfigAssociation", _module) diff --git a/sdk/nodejs/route53/resolverDnsSecConfig.ts b/sdk/nodejs/route53/resolverDnsSecConfig.ts new file mode 100644 index 00000000000..68024eedbbf --- /dev/null +++ b/sdk/nodejs/route53/resolverDnsSecConfig.ts @@ -0,0 +1,144 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Provides a Route 53 Resolver DNSSEC config resource. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const exampleVpc = new aws.ec2.Vpc("exampleVpc", { + * cidrBlock: "10.0.0.0/16", + * enableDnsSupport: true, + * enableDnsHostnames: true, + * }); + * const exampleResolverDnsSecConfig = new aws.route53.ResolverDnsSecConfig("exampleResolverDnsSecConfig", {resourceId: exampleVpc.id}); + * ``` + * + * ## Import + * + * Route 53 Resolver DNSSEC configs can be imported using the Route 53 Resolver DNSSEC config ID, e.g. + * + * ```sh + * $ pulumi import aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig example rdsc-be1866ecc1683e95 + * ``` + */ +export class ResolverDnsSecConfig extends pulumi.CustomResource { + /** + * Get an existing ResolverDnsSecConfig resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: ResolverDnsSecConfigState, opts?: pulumi.CustomResourceOptions): ResolverDnsSecConfig { + return new ResolverDnsSecConfig(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig'; + + /** + * Returns true if the given object is an instance of ResolverDnsSecConfig. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is ResolverDnsSecConfig { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ResolverDnsSecConfig.__pulumiType; + } + + /** + * The ARN for a configuration for DNSSEC validation. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + */ + public /*out*/ readonly ownerId!: pulumi.Output; + /** + * The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + */ + public readonly resourceId!: pulumi.Output; + /** + * The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + */ + public /*out*/ readonly validationStatus!: pulumi.Output; + + /** + * Create a ResolverDnsSecConfig resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: ResolverDnsSecConfigArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ResolverDnsSecConfigArgs | ResolverDnsSecConfigState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as ResolverDnsSecConfigState | undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["ownerId"] = state ? state.ownerId : undefined; + inputs["resourceId"] = state ? state.resourceId : undefined; + inputs["validationStatus"] = state ? state.validationStatus : undefined; + } else { + const args = argsOrState as ResolverDnsSecConfigArgs | undefined; + if ((!args || args.resourceId === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'resourceId'"); + } + inputs["resourceId"] = args ? args.resourceId : undefined; + inputs["arn"] = undefined /*out*/; + inputs["ownerId"] = undefined /*out*/; + inputs["validationStatus"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(ResolverDnsSecConfig.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ResolverDnsSecConfig resources. + */ +export interface ResolverDnsSecConfigState { + /** + * The ARN for a configuration for DNSSEC validation. + */ + readonly arn?: pulumi.Input; + /** + * The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + */ + readonly ownerId?: pulumi.Input; + /** + * The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + */ + readonly resourceId?: pulumi.Input; + /** + * The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + */ + readonly validationStatus?: pulumi.Input; +} + +/** + * The set of arguments for constructing a ResolverDnsSecConfig resource. + */ +export interface ResolverDnsSecConfigArgs { + /** + * The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + */ + readonly resourceId: pulumi.Input; +} diff --git a/sdk/nodejs/sagemaker/domain.ts b/sdk/nodejs/sagemaker/domain.ts new file mode 100644 index 00000000000..2173a307cc2 --- /dev/null +++ b/sdk/nodejs/sagemaker/domain.ts @@ -0,0 +1,282 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { input as inputs, output as outputs, enums } from "../types"; +import * as utilities from "../utilities"; + +/** + * Provides a Sagemaker Domain resource. + * + * ## Example Usage + * ### Basic usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const exampleDomain = new aws.sagemaker.Domain("exampleDomain", { + * domainName: "example", + * authMode: "IAM", + * vpcId: aws_vpc.test.id, + * subnetIds: [aws_subnet.test.id], + * defaultUserSettings: { + * executionRole: aws_iam_role.test.arn, + * }, + * }); + * const examplePolicyDocument = aws.iam.getPolicyDocument({ + * statements: [{ + * actions: ["sts:AssumeRole"], + * principals: [{ + * type: "Service", + * identifiers: ["sagemaker.amazonaws.com"], + * }], + * }], + * }); + * const exampleRole = new aws.iam.Role("exampleRole", { + * path: "/", + * assumeRolePolicy: examplePolicyDocument.then(examplePolicyDocument => examplePolicyDocument.json), + * }); + * ``` + * + * ## Import + * + * Sagemaker Code Domains can be imported using the `id`, e.g. + * + * ```sh + * $ pulumi import aws:sagemaker/domain:Domain test_domain d-8jgsjtilstu8 + * ``` + */ +export class Domain extends pulumi.CustomResource { + /** + * Get an existing Domain resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: DomainState, opts?: pulumi.CustomResourceOptions): Domain { + return new Domain(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:sagemaker/domain:Domain'; + + /** + * Returns true if the given object is an instance of Domain. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is Domain { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === Domain.__pulumiType; + } + + /** + * Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + */ + public readonly appNetworkAccessType!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Domain. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + */ + public readonly authMode!: pulumi.Output; + /** + * The default user settings. See Default User Settings below. + */ + public readonly defaultUserSettings!: pulumi.Output; + /** + * The domain name. + */ + public readonly domainName!: pulumi.Output; + /** + * The ID of the Amazon Elastic File System (EFS) managed by this Domain. + */ + public /*out*/ readonly homeEfsFileSystemId!: pulumi.Output; + /** + * The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + */ + public readonly kmsKeyId!: pulumi.Output; + /** + * The SSO managed application instance ID. + */ + public /*out*/ readonly singleSignOnManagedApplicationInstanceId!: pulumi.Output; + /** + * The VPC subnets that Studio uses for communication. + */ + public readonly subnetIds!: pulumi.Output; + /** + * A map of tags to assign to the resource. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The domain's URL. + */ + public /*out*/ readonly url!: pulumi.Output; + /** + * The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + */ + public readonly vpcId!: pulumi.Output; + + /** + * Create a Domain resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: DomainArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: DomainArgs | DomainState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as DomainState | undefined; + inputs["appNetworkAccessType"] = state ? state.appNetworkAccessType : undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["authMode"] = state ? state.authMode : undefined; + inputs["defaultUserSettings"] = state ? state.defaultUserSettings : undefined; + inputs["domainName"] = state ? state.domainName : undefined; + inputs["homeEfsFileSystemId"] = state ? state.homeEfsFileSystemId : undefined; + inputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; + inputs["singleSignOnManagedApplicationInstanceId"] = state ? state.singleSignOnManagedApplicationInstanceId : undefined; + inputs["subnetIds"] = state ? state.subnetIds : undefined; + inputs["tags"] = state ? state.tags : undefined; + inputs["url"] = state ? state.url : undefined; + inputs["vpcId"] = state ? state.vpcId : undefined; + } else { + const args = argsOrState as DomainArgs | undefined; + if ((!args || args.authMode === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'authMode'"); + } + if ((!args || args.defaultUserSettings === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'defaultUserSettings'"); + } + if ((!args || args.domainName === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'domainName'"); + } + if ((!args || args.subnetIds === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'subnetIds'"); + } + if ((!args || args.vpcId === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'vpcId'"); + } + inputs["appNetworkAccessType"] = args ? args.appNetworkAccessType : undefined; + inputs["authMode"] = args ? args.authMode : undefined; + inputs["defaultUserSettings"] = args ? args.defaultUserSettings : undefined; + inputs["domainName"] = args ? args.domainName : undefined; + inputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; + inputs["subnetIds"] = args ? args.subnetIds : undefined; + inputs["tags"] = args ? args.tags : undefined; + inputs["vpcId"] = args ? args.vpcId : undefined; + inputs["arn"] = undefined /*out*/; + inputs["homeEfsFileSystemId"] = undefined /*out*/; + inputs["singleSignOnManagedApplicationInstanceId"] = undefined /*out*/; + inputs["url"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(Domain.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering Domain resources. + */ +export interface DomainState { + /** + * Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + */ + readonly appNetworkAccessType?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) assigned by AWS to this Domain. + */ + readonly arn?: pulumi.Input; + /** + * The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + */ + readonly authMode?: pulumi.Input; + /** + * The default user settings. See Default User Settings below. + */ + readonly defaultUserSettings?: pulumi.Input; + /** + * The domain name. + */ + readonly domainName?: pulumi.Input; + /** + * The ID of the Amazon Elastic File System (EFS) managed by this Domain. + */ + readonly homeEfsFileSystemId?: pulumi.Input; + /** + * The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + */ + readonly kmsKeyId?: pulumi.Input; + /** + * The SSO managed application instance ID. + */ + readonly singleSignOnManagedApplicationInstanceId?: pulumi.Input; + /** + * The VPC subnets that Studio uses for communication. + */ + readonly subnetIds?: pulumi.Input[]>; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The domain's URL. + */ + readonly url?: pulumi.Input; + /** + * The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + */ + readonly vpcId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a Domain resource. + */ +export interface DomainArgs { + /** + * Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + */ + readonly appNetworkAccessType?: pulumi.Input; + /** + * The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + */ + readonly authMode: pulumi.Input; + /** + * The default user settings. See Default User Settings below. + */ + readonly defaultUserSettings: pulumi.Input; + /** + * The domain name. + */ + readonly domainName: pulumi.Input; + /** + * The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + */ + readonly kmsKeyId?: pulumi.Input; + /** + * The VPC subnets that Studio uses for communication. + */ + readonly subnetIds: pulumi.Input[]>; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + */ + readonly vpcId: pulumi.Input; +} diff --git a/sdk/nodejs/sagemaker/index.ts b/sdk/nodejs/sagemaker/index.ts index 37f9e0269d1..810661055e8 100644 --- a/sdk/nodejs/sagemaker/index.ts +++ b/sdk/nodejs/sagemaker/index.ts @@ -6,6 +6,7 @@ import * as utilities from "../utilities"; // Export members: export * from "./codeRepository"; +export * from "./domain"; export * from "./endpoint"; export * from "./endpointConfiguration"; export * from "./getPrebuiltEcrImage"; @@ -16,6 +17,7 @@ export * from "./notebookInstanceLifecycleConfiguration"; // Import resources to register: import { CodeRepository } from "./codeRepository"; +import { Domain } from "./domain"; import { Endpoint } from "./endpoint"; import { EndpointConfiguration } from "./endpointConfiguration"; import { Image } from "./image"; @@ -29,6 +31,8 @@ const _module = { switch (type) { case "aws:sagemaker/codeRepository:CodeRepository": return new CodeRepository(name, undefined, { urn }) + case "aws:sagemaker/domain:Domain": + return new Domain(name, undefined, { urn }) case "aws:sagemaker/endpoint:Endpoint": return new Endpoint(name, undefined, { urn }) case "aws:sagemaker/endpointConfiguration:EndpointConfiguration": @@ -47,6 +51,7 @@ const _module = { }, }; pulumi.runtime.registerResourceModule("aws", "sagemaker/codeRepository", _module) +pulumi.runtime.registerResourceModule("aws", "sagemaker/domain", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/endpoint", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/endpointConfiguration", _module) pulumi.runtime.registerResourceModule("aws", "sagemaker/image", _module) diff --git a/sdk/nodejs/ssoadmin/accountAssignment.ts b/sdk/nodejs/ssoadmin/accountAssignment.ts new file mode 100644 index 00000000000..a8687534565 --- /dev/null +++ b/sdk/nodejs/ssoadmin/accountAssignment.ts @@ -0,0 +1,182 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Provides a Single Sign-On (SSO) Account Assignment resource + * + * ## Import + * + * SSO Account Assignments can be imported using the `principal_id`, `principal_type`, `target_id`, `target_type`, `permission_set_arn`, `instance_arn` separated by commas (`,`) e.g. + * + * ```sh + * $ pulumi import aws:ssoadmin/accountAssignment:AccountAssignment example f81d4fae-7dec-11d0-a765-00a0c91e6bf6,GROUP,1234567890,AWS_ACCOUNT,arn:aws:sso:::permissionSet/ssoins-0123456789abcdef/ps-0123456789abcdef,arn:aws:sso:::instance/ssoins-0123456789abcdef + * ``` + */ +export class AccountAssignment extends pulumi.CustomResource { + /** + * Get an existing AccountAssignment resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: AccountAssignmentState, opts?: pulumi.CustomResourceOptions): AccountAssignment { + return new AccountAssignment(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:ssoadmin/accountAssignment:AccountAssignment'; + + /** + * Returns true if the given object is an instance of AccountAssignment. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is AccountAssignment { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === AccountAssignment.__pulumiType; + } + + /** + * The Amazon Resource Name (ARN) of the SSO Instance. + */ + public readonly instanceArn!: pulumi.Output; + /** + * The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + */ + public readonly permissionSetArn!: pulumi.Output; + /** + * An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + */ + public readonly principalId!: pulumi.Output; + /** + * The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + */ + public readonly principalType!: pulumi.Output; + /** + * An AWS account identifier, typically a 10-12 digit string. + */ + public readonly targetId!: pulumi.Output; + /** + * The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + */ + public readonly targetType!: pulumi.Output; + + /** + * Create a AccountAssignment resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: AccountAssignmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: AccountAssignmentArgs | AccountAssignmentState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as AccountAssignmentState | undefined; + inputs["instanceArn"] = state ? state.instanceArn : undefined; + inputs["permissionSetArn"] = state ? state.permissionSetArn : undefined; + inputs["principalId"] = state ? state.principalId : undefined; + inputs["principalType"] = state ? state.principalType : undefined; + inputs["targetId"] = state ? state.targetId : undefined; + inputs["targetType"] = state ? state.targetType : undefined; + } else { + const args = argsOrState as AccountAssignmentArgs | undefined; + if ((!args || args.instanceArn === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'instanceArn'"); + } + if ((!args || args.permissionSetArn === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'permissionSetArn'"); + } + if ((!args || args.principalId === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'principalId'"); + } + if ((!args || args.principalType === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'principalType'"); + } + if ((!args || args.targetId === undefined) && !(opts && opts.urn)) { + throw new Error("Missing required property 'targetId'"); + } + inputs["instanceArn"] = args ? args.instanceArn : undefined; + inputs["permissionSetArn"] = args ? args.permissionSetArn : undefined; + inputs["principalId"] = args ? args.principalId : undefined; + inputs["principalType"] = args ? args.principalType : undefined; + inputs["targetId"] = args ? args.targetId : undefined; + inputs["targetType"] = args ? args.targetType : undefined; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(AccountAssignment.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering AccountAssignment resources. + */ +export interface AccountAssignmentState { + /** + * The Amazon Resource Name (ARN) of the SSO Instance. + */ + readonly instanceArn?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + */ + readonly permissionSetArn?: pulumi.Input; + /** + * An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + */ + readonly principalId?: pulumi.Input; + /** + * The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + */ + readonly principalType?: pulumi.Input; + /** + * An AWS account identifier, typically a 10-12 digit string. + */ + readonly targetId?: pulumi.Input; + /** + * The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + */ + readonly targetType?: pulumi.Input; +} + +/** + * The set of arguments for constructing a AccountAssignment resource. + */ +export interface AccountAssignmentArgs { + /** + * The Amazon Resource Name (ARN) of the SSO Instance. + */ + readonly instanceArn: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + */ + readonly permissionSetArn: pulumi.Input; + /** + * An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + */ + readonly principalId: pulumi.Input; + /** + * The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + */ + readonly principalType: pulumi.Input; + /** + * An AWS account identifier, typically a 10-12 digit string. + */ + readonly targetId: pulumi.Input; + /** + * The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + */ + readonly targetType?: pulumi.Input; +} diff --git a/sdk/nodejs/ssoadmin/index.ts b/sdk/nodejs/ssoadmin/index.ts index e94d72ea9c8..3ceedcc7697 100644 --- a/sdk/nodejs/ssoadmin/index.ts +++ b/sdk/nodejs/ssoadmin/index.ts @@ -5,6 +5,7 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export * from "./accountAssignment"; export * from "./getInstances"; export * from "./getPermissionSet"; export * from "./managedPolicyAttachment"; @@ -12,6 +13,7 @@ export * from "./permissionSet"; export * from "./permissionSetInlinePolicy"; // Import resources to register: +import { AccountAssignment } from "./accountAssignment"; import { ManagedPolicyAttachment } from "./managedPolicyAttachment"; import { PermissionSet } from "./permissionSet"; import { PermissionSetInlinePolicy } from "./permissionSetInlinePolicy"; @@ -20,6 +22,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "aws:ssoadmin/accountAssignment:AccountAssignment": + return new AccountAssignment(name, undefined, { urn }) case "aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment": return new ManagedPolicyAttachment(name, undefined, { urn }) case "aws:ssoadmin/permissionSet:PermissionSet": @@ -31,6 +35,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("aws", "ssoadmin/accountAssignment", _module) pulumi.runtime.registerResourceModule("aws", "ssoadmin/managedPolicyAttachment", _module) pulumi.runtime.registerResourceModule("aws", "ssoadmin/permissionSet", _module) pulumi.runtime.registerResourceModule("aws", "ssoadmin/permissionSetInlinePolicy", _module) diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 55f2327a597..ad0a16e9050 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -43,6 +43,7 @@ "apigateway/documentationPart.ts", "apigateway/documentationVersion.ts", "apigateway/domainName.ts", + "apigateway/getDomainName.ts", "apigateway/getKey.ts", "apigateway/getResource.ts", "apigateway/getRestApi.ts", @@ -173,6 +174,7 @@ "cloudtrail/index.ts", "cloudtrail/trail.ts", "cloudwatch/cloudwatchMixins.ts", + "cloudwatch/compositeAlarm.ts", "cloudwatch/dashboard.ts", "cloudwatch/eventBus.ts", "cloudwatch/eventPermission.ts", @@ -544,6 +546,7 @@ "emr/securityConfiguration.ts", "fms/adminAccount.ts", "fms/index.ts", + "fms/policy.ts", "fsx/index.ts", "fsx/lustreFileSystem.ts", "fsx/windowsFileSystem.ts", @@ -639,6 +642,9 @@ "iam/userLoginProfile.ts", "iam/userPolicy.ts", "iam/userPolicyAttachment.ts", + "identitystore/getGroup.ts", + "identitystore/getUser.ts", + "identitystore/index.ts", "imagebuilder/component.ts", "imagebuilder/distributionConfiguration.ts", "imagebuilder/getComponent.ts", @@ -889,6 +895,7 @@ "route53/queryLog.ts", "route53/record.ts", "route53/recordType.ts", + "route53/resolverDnsSecConfig.ts", "route53/resolverEndpoint.ts", "route53/resolverQueryLogConfig.ts", "route53/resolverQueryLogConfigAssociation.ts", @@ -922,6 +929,7 @@ "s3outposts/endpoint.ts", "s3outposts/index.ts", "sagemaker/codeRepository.ts", + "sagemaker/domain.ts", "sagemaker/endpoint.ts", "sagemaker/endpointConfiguration.ts", "sagemaker/getPrebuiltEcrImage.ts", @@ -1020,6 +1028,7 @@ "ssm/patchBaseline.ts", "ssm/patchGroup.ts", "ssm/resourceDataSync.ts", + "ssoadmin/accountAssignment.ts", "ssoadmin/getInstances.ts", "ssoadmin/getPermissionSet.ts", "ssoadmin/index.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index f8cf72a682f..49af6551c53 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -962,6 +962,25 @@ export namespace apigateway { types: pulumi.Input; } + export interface DomainNameMutualTlsAuthentication { + /** + * An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + * The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + */ + truststoreUri: pulumi.Input; + /** + * The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + truststoreVersion?: pulumi.Input; + } + + export interface IntegrationTlsConfig { + /** + * Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + */ + insecureSkipVerification?: pulumi.Input; + } + export interface MethodSettingsSettings { /** * Specifies whether the cached responses are encrypted. @@ -1141,6 +1160,18 @@ export namespace apigatewayv2 { truststoreVersion?: pulumi.Input; } + export interface IntegrationResponseParameter { + /** + * A 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. + * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + */ + mappings: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The HTTP status code in the range 200-599. + */ + statusCode: pulumi.Input; + } + export interface IntegrationTlsConfig { /** * If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. @@ -2053,7 +2084,7 @@ export namespace appmesh { /** * The criteria for determining an gRPC request match. */ - match: pulumi.Input; + match?: pulumi.Input; /** * The retry policy. */ @@ -3700,6 +3731,9 @@ export namespace autoscaling { } export interface GroupInstanceRefreshPreferences { + /** + * The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + */ instanceWarmup?: pulumi.Input; /** * The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. @@ -5995,7 +6029,7 @@ export namespace codepipeline { */ owner: pulumi.Input; /** - * The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + * The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. */ provider: pulumi.Input; /** @@ -6698,6 +6732,10 @@ export namespace dms { * Delimiter used to separate rows in the source files. Defaults to `\n`. */ csvRowDelimiter?: pulumi.Input; + /** + * Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + */ + datePartitionEnabled?: pulumi.Input; /** * JSON document that describes how AWS DMS should interpret the data. */ @@ -7791,31 +7829,26 @@ export namespace ec2 { export interface InstanceCreditSpecification { /** - * The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + * Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. */ cpuCredits?: pulumi.Input; } export interface InstanceEbsBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: pulumi.Input; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: pulumi.Input; /** - * Enables [EBS - * encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - * on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + * Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. */ encrypted?: pulumi.Input; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - * Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops?: pulumi.Input; /** @@ -7823,27 +7856,34 @@ export namespace ec2 { */ kmsKeyId?: pulumi.Input; /** - * The Snapshot ID to mount. + * Snapshot ID to mount. */ snapshotId?: pulumi.Input; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput?: pulumi.Input; + /** + * ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + */ volumeId?: pulumi.Input; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize?: pulumi.Input; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType?: pulumi.Input; } export interface InstanceEnclaveOptions { /** - * Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + * Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. */ enabled?: pulumi.Input; } @@ -7858,24 +7898,22 @@ export namespace ec2 { */ noDevice?: pulumi.Input; /** - * The [Instance Store Device - * Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - * (e.g. `"ephemeral0"`). + * [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). */ virtualName?: pulumi.Input; } export interface InstanceMetadataOptions { /** - * Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + * Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. */ httpEndpoint?: pulumi.Input; /** - * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + * Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. */ httpPutResponseHopLimit?: pulumi.Input; /** - * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. */ httpTokens?: pulumi.Input; } @@ -7886,32 +7924,30 @@ export namespace ec2 { */ deleteOnTermination?: pulumi.Input; /** - * The integer index of the network interface attachment. Limited by instance type. + * Integer index of the network interface attachment. Limited by instance type. */ deviceIndex: pulumi.Input; /** - * The ID of the network interface to attach. + * ID of the network interface to attach. */ networkInterfaceId: pulumi.Input; } export interface InstanceRootBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: pulumi.Input; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName?: pulumi.Input; /** - * Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + * Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. */ encrypted?: pulumi.Input; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops?: pulumi.Input; /** @@ -7919,16 +7955,23 @@ export namespace ec2 { */ kmsKeyId?: pulumi.Input; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput?: pulumi.Input; + /** + * ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + */ volumeId?: pulumi.Input; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize?: pulumi.Input; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType?: pulumi.Input; } @@ -8674,31 +8717,26 @@ export namespace ec2 { export interface SpotInstanceRequestCreditSpecification { /** - * The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + * Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. */ cpuCredits?: pulumi.Input; } export interface SpotInstanceRequestEbsBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: pulumi.Input; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: pulumi.Input; /** - * Enables [EBS - * encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - * on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + * Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. */ encrypted?: pulumi.Input; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - * Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops?: pulumi.Input; /** @@ -8706,27 +8744,31 @@ export namespace ec2 { */ kmsKeyId?: pulumi.Input; /** - * The Snapshot ID to mount. + * Snapshot ID to mount. */ snapshotId?: pulumi.Input; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput?: pulumi.Input; volumeId?: pulumi.Input; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize?: pulumi.Input; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType?: pulumi.Input; } export interface SpotInstanceRequestEnclaveOptions { /** - * Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + * Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. */ enabled?: pulumi.Input; } @@ -8741,24 +8783,22 @@ export namespace ec2 { */ noDevice?: pulumi.Input; /** - * The [Instance Store Device - * Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - * (e.g. `"ephemeral0"`). + * [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). */ virtualName?: pulumi.Input; } export interface SpotInstanceRequestMetadataOptions { /** - * Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + * Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. */ httpEndpoint?: pulumi.Input; /** - * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + * Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. */ httpPutResponseHopLimit?: pulumi.Input; /** - * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. */ httpTokens?: pulumi.Input; } @@ -8769,32 +8809,30 @@ export namespace ec2 { */ deleteOnTermination?: pulumi.Input; /** - * The integer index of the network interface attachment. Limited by instance type. + * Integer index of the network interface attachment. Limited by instance type. */ deviceIndex: pulumi.Input; /** - * The ID of the network interface to attach. + * ID of the network interface to attach. */ networkInterfaceId: pulumi.Input; } export interface SpotInstanceRequestRootBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: pulumi.Input; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName?: pulumi.Input; /** - * Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + * Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. */ encrypted?: pulumi.Input; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops?: pulumi.Input; /** @@ -8802,16 +8840,20 @@ export namespace ec2 { */ kmsKeyId?: pulumi.Input; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput?: pulumi.Input; volumeId?: pulumi.Input; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize?: pulumi.Input; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType?: pulumi.Input; } @@ -11398,6 +11440,35 @@ export namespace emr { } } +export namespace fms { + export interface PolicyExcludeMap { + /** + * A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + */ + accounts?: pulumi.Input[]>; + orgunits?: pulumi.Input[]>; + } + + export interface PolicyIncludeMap { + /** + * A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + */ + accounts?: pulumi.Input[]>; + orgunits?: pulumi.Input[]>; + } + + export interface PolicySecurityServicePolicyData { + /** + * Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + */ + managedServiceData?: pulumi.Input; + /** + * valid values are `BLOCK` or `COUNT`. + */ + type: pulumi.Input; + } +} + export namespace fsx { export interface WindowsFileSystemSelfManagedActiveDirectory { /** @@ -12451,6 +12522,30 @@ export namespace iam { } } +export namespace identitystore { + export interface GetGroupFilter { + /** + * The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + */ + attributePath: string; + /** + * The value for an attribute. + */ + attributeValue: string; + } + + export interface GetUserFilter { + /** + * The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + */ + attributePath: string; + /** + * The value for an attribute. + */ + attributeValue: string; + } +} + export namespace imagebuilder { export interface DistributionConfigurationDistribution { /** @@ -18552,6 +18647,121 @@ export namespace sagemaker { secretArn?: pulumi.Input; } + export interface DomainDefaultUserSettings { + /** + * The execution role ARN for the user. + */ + executionRole: pulumi.Input; + /** + * The Jupyter server's app settings. See Jupyter Server App Settings below. + */ + jupyterServerAppSettings?: pulumi.Input; + /** + * The kernel gateway app settings. See Kernel Gateway App Settings below. + */ + kernelGatewayAppSettings?: pulumi.Input; + /** + * The security groups. + */ + securityGroups?: pulumi.Input[]>; + /** + * The sharing settings. See Sharing Settings below. + */ + sharingSettings?: pulumi.Input; + /** + * The TensorBoard app settings. See TensorBoard App Settings below. + */ + tensorBoardAppSettings?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsJupyterServerAppSettings { + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: pulumi.Input; + } + + export interface DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettings { + /** + * A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + */ + customImages?: pulumi.Input[]>; + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: pulumi.Input; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage { + /** + * The name of the App Image Config. + */ + appImageConfigName: pulumi.Input; + /** + * The name of the Custom Image. + */ + imageName: pulumi.Input; + /** + * The version number of the Custom Image. + */ + imageVersionNumber?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsSharingSettings { + /** + * Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + */ + notebookOutputOption?: pulumi.Input; + /** + * When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + */ + s3KmsKeyId?: pulumi.Input; + /** + * When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + */ + s3OutputPath?: pulumi.Input; + } + + export interface DomainDefaultUserSettingsTensorBoardAppSettings { + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: pulumi.Input; + } + + export interface DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: pulumi.Input; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: pulumi.Input; + } + export interface EndpointConfigurationDataCaptureConfig { /** * The content type headers to capture. Fields are documented below. @@ -54690,50 +54900,58 @@ export namespace workspaces { switchRunningMode?: pulumi.Input; } - export interface DirectoryWorkspaceCreationProperties { + export interface DirectoryWorkspaceAccessProperties { /** - * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + * Indicates whether users can use Android devices to access their WorkSpaces. */ - customSecurityGroupId?: pulumi.Input; + deviceTypeAndroid?: pulumi.Input; /** - * The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + * Indicates whether users can use Chromebooks to access their WorkSpaces. */ - defaultOu?: pulumi.Input; + deviceTypeChromeos?: pulumi.Input; /** - * Indicates whether internet access is enabled for your WorkSpaces. + * Indicates whether users can use iOS devices to access their WorkSpaces. */ - enableInternetAccess?: pulumi.Input; + deviceTypeIos?: pulumi.Input; /** - * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + * Indicates whether users can use macOS clients to access their WorkSpaces. */ - enableMaintenanceMode?: pulumi.Input; + deviceTypeOsx?: pulumi.Input; /** - * Indicates whether users are local administrators of their WorkSpaces. + * Indicates whether users can access their WorkSpaces through a web browser. */ - userEnabledAsLocalAdministrator?: pulumi.Input; + deviceTypeWeb?: pulumi.Input; + /** + * Indicates whether users can use Windows clients to access their WorkSpaces. + */ + deviceTypeWindows?: pulumi.Input; + /** + * Indicates whether users can use zero client devices to access their WorkSpaces. + */ + deviceTypeZeroclient?: pulumi.Input; } - export interface GetDirectoryWorkspaceCreationProperties { + export interface DirectoryWorkspaceCreationProperties { /** * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. */ - customSecurityGroupId?: string; + customSecurityGroupId?: pulumi.Input; /** - * The default organizational unit (OU) for your WorkSpace directories. + * The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. */ - defaultOu?: string; + defaultOu?: pulumi.Input; /** * Indicates whether internet access is enabled for your WorkSpaces. */ - enableInternetAccess?: boolean; + enableInternetAccess?: pulumi.Input; /** - * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. */ - enableMaintenanceMode?: boolean; + enableMaintenanceMode?: pulumi.Input; /** * Indicates whether users are local administrators of their WorkSpaces. */ - userEnabledAsLocalAdministrator?: boolean; + userEnabledAsLocalAdministrator?: pulumi.Input; } export interface IpGroupRule { diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 4af6068fd53..8c26c7287e1 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -1058,11 +1058,37 @@ export namespace apigateway { types: string; } + export interface DomainNameMutualTlsAuthentication { + /** + * An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + * The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + */ + truststoreUri: string; + /** + * The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + */ + truststoreVersion?: string; + } + + export interface GetDomainNameEndpointConfiguration { + /** + * List of endpoint types. + */ + types: string[]; + } + export interface GetRestApiEndpointConfiguration { types: string[]; vpcEndpointIds: string[]; } + export interface IntegrationTlsConfig { + /** + * Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + */ + insecureSkipVerification?: boolean; + } + export interface MethodSettingsSettings { /** * Specifies whether the cached responses are encrypted. @@ -1242,6 +1268,18 @@ export namespace apigatewayv2 { truststoreVersion?: string; } + export interface IntegrationResponseParameter { + /** + * A 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. + * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + */ + mappings: {[key: string]: string}; + /** + * The HTTP status code in the range 200-599. + */ + statusCode: string; + } + export interface IntegrationTlsConfig { /** * If you specify a server name, API Gateway uses it to verify the hostname on the integration's certificate. The server name is also included in the TLS handshake to support Server Name Indication (SNI) or virtual hosting. @@ -2238,7 +2276,7 @@ export namespace appmesh { /** * The criteria for determining an gRPC request match. */ - match: outputs.appmesh.RouteSpecGrpcRouteMatch; + match?: outputs.appmesh.RouteSpecGrpcRouteMatch; /** * The retry policy. */ @@ -3897,6 +3935,9 @@ export namespace autoscaling { } export interface GroupInstanceRefreshPreferences { + /** + * The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + */ instanceWarmup?: string; /** * The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. @@ -6204,7 +6245,7 @@ export namespace codepipeline { */ owner: string; /** - * The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + * The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. */ provider: string; /** @@ -7110,6 +7151,10 @@ export namespace dms { * Delimiter used to separate rows in the source files. Defaults to `\n`. */ csvRowDelimiter?: string; + /** + * Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + */ + datePartitionEnabled?: boolean; /** * JSON document that describes how AWS DMS should interpret the data. */ @@ -7861,6 +7906,10 @@ export namespace ec2 { * The ID of the snapshot. */ snapshotId: string; + /** + * A map of tags assigned to the Instance. + */ + tags: {[key: string]: string}; /** * The throughput of the volume, in MiB/s. */ @@ -7936,6 +7985,10 @@ export namespace ec2 { */ iops: number; kmsKeyId: string; + /** + * A map of tags assigned to the Instance. + */ + tags: {[key: string]: string}; /** * The throughput of the volume, in MiB/s. */ @@ -8713,31 +8766,26 @@ export namespace ec2 { export interface InstanceCreditSpecification { /** - * The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + * Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. */ cpuCredits?: string; } export interface InstanceEbsBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: boolean; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: string; /** - * Enables [EBS - * encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - * on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + * Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. */ encrypted: boolean; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - * Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops: number; /** @@ -8745,27 +8793,34 @@ export namespace ec2 { */ kmsKeyId: string; /** - * The Snapshot ID to mount. + * Snapshot ID to mount. */ snapshotId: string; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: {[key: string]: string}; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput: number; + /** + * ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + */ volumeId: string; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize: number; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType: string; } export interface InstanceEnclaveOptions { /** - * Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + * Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. */ enabled: boolean; } @@ -8780,24 +8835,22 @@ export namespace ec2 { */ noDevice?: boolean; /** - * The [Instance Store Device - * Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - * (e.g. `"ephemeral0"`). + * [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). */ virtualName?: string; } export interface InstanceMetadataOptions { /** - * Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + * Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. */ httpEndpoint: string; /** - * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + * Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. */ httpPutResponseHopLimit: number; /** - * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. */ httpTokens: string; } @@ -8808,32 +8861,30 @@ export namespace ec2 { */ deleteOnTermination?: boolean; /** - * The integer index of the network interface attachment. Limited by instance type. + * Integer index of the network interface attachment. Limited by instance type. */ deviceIndex: number; /** - * The ID of the network interface to attach. + * ID of the network interface to attach. */ networkInterfaceId: string; } export interface InstanceRootBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: boolean; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: string; /** - * Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + * Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. */ encrypted: boolean; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops: number; /** @@ -8841,16 +8892,23 @@ export namespace ec2 { */ kmsKeyId: string; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: {[key: string]: string}; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput: number; + /** + * ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + */ volumeId: string; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize: number; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType: string; } @@ -9596,31 +9654,26 @@ export namespace ec2 { export interface SpotInstanceRequestCreditSpecification { /** - * The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + * Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. */ cpuCredits?: string; } export interface SpotInstanceRequestEbsBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: boolean; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: string; /** - * Enables [EBS - * encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - * on the volume (Default: `false`). Cannot be used with `snapshotId`. Must be configured to perform drift detection. + * Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshotId`. Must be configured to perform drift detection. */ encrypted: boolean; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - * Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops: number; /** @@ -9628,27 +9681,31 @@ export namespace ec2 { */ kmsKeyId: string; /** - * The Snapshot ID to mount. + * Snapshot ID to mount. */ snapshotId: string; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: {[key: string]: string}; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput: number; volumeId: string; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize: number; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType: string; } export interface SpotInstanceRequestEnclaveOptions { /** - * Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + * Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. */ enabled: boolean; } @@ -9663,24 +9720,22 @@ export namespace ec2 { */ noDevice?: boolean; /** - * The [Instance Store Device - * Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - * (e.g. `"ephemeral0"`). + * [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). */ virtualName?: string; } export interface SpotInstanceRequestMetadataOptions { /** - * Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + * Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. */ httpEndpoint: string; /** - * The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + * Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. */ httpPutResponseHopLimit: number; /** - * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + * Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. */ httpTokens: string; } @@ -9691,32 +9746,30 @@ export namespace ec2 { */ deleteOnTermination?: boolean; /** - * The integer index of the network interface attachment. Limited by instance type. + * Integer index of the network interface attachment. Limited by instance type. */ deviceIndex: number; /** - * The ID of the network interface to attach. + * ID of the network interface to attach. */ networkInterfaceId: string; } export interface SpotInstanceRequestRootBlockDevice { /** - * Whether the volume should be destroyed - * on instance termination (Default: `true`). + * Whether the volume should be destroyed on instance termination. Defaults to `true`. */ deleteOnTermination?: boolean; /** - * The name of the device to mount. + * Name of the device to mount. */ deviceName: string; /** - * Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + * Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. */ encrypted: boolean; /** - * The amount of provisioned - * [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `"io1"`, `"io2"` or `"gp3"`. + * Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volumeType of `io1`, `io2` or `gp3`. */ iops: number; /** @@ -9724,16 +9777,20 @@ export namespace ec2 { */ kmsKeyId: string; /** - * The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `"gp3"`. + * A map of tags to assign to the device. + */ + tags?: {[key: string]: string}; + /** + * Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volumeType` of `gp3`. */ throughput: number; volumeId: string; /** - * The size of the volume in gibibytes (GiB). + * Size of the volume in gibibytes (GiB). */ volumeSize: number; /** - * The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + * Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. */ volumeType: string; } @@ -12766,6 +12823,35 @@ export namespace emr { } } +export namespace fms { + export interface PolicyExcludeMap { + /** + * A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + */ + accounts?: string[]; + orgunits?: string[]; + } + + export interface PolicyIncludeMap { + /** + * A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + */ + accounts?: string[]; + orgunits?: string[]; + } + + export interface PolicySecurityServicePolicyData { + /** + * Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + */ + managedServiceData?: string; + /** + * valid values are `BLOCK` or `COUNT`. + */ + type: string; + } +} + export namespace fsx { export interface WindowsFileSystemSelfManagedActiveDirectory { /** @@ -13838,6 +13924,30 @@ export namespace iam { } } +export namespace identitystore { + export interface GetGroupFilter { + /** + * The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + */ + attributePath: string; + /** + * The value for an attribute. + */ + attributeValue: string; + } + + export interface GetUserFilter { + /** + * The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + */ + attributePath: string; + /** + * The value for an attribute. + */ + attributeValue: string; + } +} + export namespace imagebuilder { export interface DistributionConfigurationDistribution { /** @@ -20354,6 +20464,121 @@ export namespace sagemaker { secretArn?: string; } + export interface DomainDefaultUserSettings { + /** + * The execution role ARN for the user. + */ + executionRole: string; + /** + * The Jupyter server's app settings. See Jupyter Server App Settings below. + */ + jupyterServerAppSettings?: outputs.sagemaker.DomainDefaultUserSettingsJupyterServerAppSettings; + /** + * The kernel gateway app settings. See Kernel Gateway App Settings below. + */ + kernelGatewayAppSettings?: outputs.sagemaker.DomainDefaultUserSettingsKernelGatewayAppSettings; + /** + * The security groups. + */ + securityGroups?: string[]; + /** + * The sharing settings. See Sharing Settings below. + */ + sharingSettings?: outputs.sagemaker.DomainDefaultUserSettingsSharingSettings; + /** + * The TensorBoard app settings. See TensorBoard App Settings below. + */ + tensorBoardAppSettings?: outputs.sagemaker.DomainDefaultUserSettingsTensorBoardAppSettings; + } + + export interface DomainDefaultUserSettingsJupyterServerAppSettings { + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: outputs.sagemaker.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec; + } + + export interface DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: string; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: string; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettings { + /** + * A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + */ + customImages?: outputs.sagemaker.DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage[]; + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: outputs.sagemaker.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage { + /** + * The name of the App Image Config. + */ + appImageConfigName: string; + /** + * The name of the Custom Image. + */ + imageName: string; + /** + * The version number of the Custom Image. + */ + imageVersionNumber?: number; + } + + export interface DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: string; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: string; + } + + export interface DomainDefaultUserSettingsSharingSettings { + /** + * Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + */ + notebookOutputOption?: string; + /** + * When `notebookOutputOption` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + */ + s3KmsKeyId?: string; + /** + * When `notebookOutputOption` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + */ + s3OutputPath?: string; + } + + export interface DomainDefaultUserSettingsTensorBoardAppSettings { + /** + * The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + */ + defaultResourceSpec: outputs.sagemaker.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec; + } + + export interface DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec { + /** + * The instance type. + */ + instanceType?: string; + /** + * The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + */ + sagemakerImageArn?: string; + } + export interface EndpointConfigurationDataCaptureConfig { /** * The content type headers to capture. Fields are documented below. @@ -56543,6 +56768,37 @@ export namespace workspaces { switchRunningMode?: boolean; } + export interface DirectoryWorkspaceAccessProperties { + /** + * Indicates whether users can use Android devices to access their WorkSpaces. + */ + deviceTypeAndroid?: string; + /** + * Indicates whether users can use Chromebooks to access their WorkSpaces. + */ + deviceTypeChromeos?: string; + /** + * Indicates whether users can use iOS devices to access their WorkSpaces. + */ + deviceTypeIos?: string; + /** + * Indicates whether users can use macOS clients to access their WorkSpaces. + */ + deviceTypeOsx?: string; + /** + * Indicates whether users can access their WorkSpaces through a web browser. + */ + deviceTypeWeb?: string; + /** + * Indicates whether users can use Windows clients to access their WorkSpaces. + */ + deviceTypeWindows?: string; + /** + * Indicates whether users can use zero client devices to access their WorkSpaces. + */ + deviceTypeZeroclient?: string; + } + export interface DirectoryWorkspaceCreationProperties { /** * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. @@ -56610,6 +56866,37 @@ export namespace workspaces { switchRunningMode: boolean; } + export interface GetDirectoryWorkspaceAccessProperty { + /** + * (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + */ + deviceTypeAndroid: string; + /** + * (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + */ + deviceTypeChromeos: string; + /** + * (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + */ + deviceTypeIos: string; + /** + * (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + */ + deviceTypeOsx: string; + /** + * (Optional) Indicates whether users can access their WorkSpaces through a web browser. + */ + deviceTypeWeb: string; + /** + * (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + */ + deviceTypeWindows: string; + /** + * (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + */ + deviceTypeZeroclient: string; + } + export interface GetDirectoryWorkspaceCreationProperties { /** * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. @@ -56618,19 +56905,19 @@ export namespace workspaces { /** * The default organizational unit (OU) for your WorkSpace directories. */ - defaultOu?: string; + defaultOu: string; /** * Indicates whether internet access is enabled for your WorkSpaces. */ - enableInternetAccess?: boolean; + enableInternetAccess: boolean; /** * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). */ - enableMaintenanceMode?: boolean; + enableMaintenanceMode: boolean; /** * Indicates whether users are local administrators of their WorkSpaces. */ - userEnabledAsLocalAdministrator?: boolean; + userEnabledAsLocalAdministrator: boolean; } export interface GetWorkspaceWorkspaceProperty { diff --git a/sdk/nodejs/workspaces/directory.ts b/sdk/nodejs/workspaces/directory.ts index 3fd3524de4f..d5bc6a61658 100644 --- a/sdk/nodejs/workspaces/directory.ts +++ b/sdk/nodejs/workspaces/directory.ts @@ -61,6 +61,15 @@ import * as utilities from "../utilities"; * restartWorkspace: true, * switchRunningMode: true, * }, + * workspaceAccessProperties: { + * deviceTypeAndroid: "ALLOW", + * deviceTypeChromeos: "ALLOW", + * deviceTypeIos: "ALLOW", + * deviceTypeOsx: "ALLOW", + * deviceTypeWeb: "DENY", + * deviceTypeWindows: "DENY", + * deviceTypeZeroclient: "DENY", + * }, * workspaceCreationProperties: { * customSecurityGroupId: aws_security_group.example.id, * defaultOu: "OU=AWS,DC=Workgroup,DC=Example,DC=com", @@ -194,6 +203,10 @@ export class Directory extends pulumi.CustomResource { * A map of tags assigned to the WorkSpaces directory. */ public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + */ + public readonly workspaceAccessProperties!: pulumi.Output; /** * Default properties that are used for creating WorkSpaces. Defined below. */ @@ -227,6 +240,7 @@ export class Directory extends pulumi.CustomResource { inputs["selfServicePermissions"] = state ? state.selfServicePermissions : undefined; inputs["subnetIds"] = state ? state.subnetIds : undefined; inputs["tags"] = state ? state.tags : undefined; + inputs["workspaceAccessProperties"] = state ? state.workspaceAccessProperties : undefined; inputs["workspaceCreationProperties"] = state ? state.workspaceCreationProperties : undefined; inputs["workspaceSecurityGroupId"] = state ? state.workspaceSecurityGroupId : undefined; } else { @@ -239,6 +253,7 @@ export class Directory extends pulumi.CustomResource { inputs["selfServicePermissions"] = args ? args.selfServicePermissions : undefined; inputs["subnetIds"] = args ? args.subnetIds : undefined; inputs["tags"] = args ? args.tags : undefined; + inputs["workspaceAccessProperties"] = args ? args.workspaceAccessProperties : undefined; inputs["workspaceCreationProperties"] = args ? args.workspaceCreationProperties : undefined; inputs["alias"] = undefined /*out*/; inputs["customerUserName"] = undefined /*out*/; @@ -312,6 +327,10 @@ export interface DirectoryState { * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + */ + readonly workspaceAccessProperties?: pulumi.Input; /** * Default properties that are used for creating WorkSpaces. Defined below. */ @@ -346,6 +365,10 @@ export interface DirectoryArgs { * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + */ + readonly workspaceAccessProperties?: pulumi.Input; /** * Default properties that are used for creating WorkSpaces. Defined below. */ diff --git a/sdk/nodejs/workspaces/getDirectory.ts b/sdk/nodejs/workspaces/getDirectory.ts index d703264da83..67de091f04c 100644 --- a/sdk/nodejs/workspaces/getDirectory.ts +++ b/sdk/nodejs/workspaces/getDirectory.ts @@ -30,7 +30,6 @@ export function getDirectory(args: GetDirectoryArgs, opts?: pulumi.InvokeOptions return pulumi.runtime.invoke("aws:workspaces/getDirectory:getDirectory", { "directoryId": args.directoryId, "tags": args.tags, - "workspaceCreationProperties": args.workspaceCreationProperties, }, opts); } @@ -46,10 +45,6 @@ export interface GetDirectoryArgs { * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: {[key: string]: string}; - /** - * The default properties that are used for creating WorkSpaces. Defined below. - */ - readonly workspaceCreationProperties?: inputs.workspaces.GetDirectoryWorkspaceCreationProperties; } /** @@ -105,6 +100,10 @@ export interface GetDirectoryResult { * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: {[key: string]: string}; + /** + * (Optional) Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + */ + readonly workspaceAccessProperties: outputs.workspaces.GetDirectoryWorkspaceAccessProperty[]; /** * The default properties that are used for creating WorkSpaces. Defined below. */ diff --git a/sdk/python/pulumi_aws/__init__.py b/sdk/python/pulumi_aws/__init__.py index 9d06a6dc7c9..532c62c7c63 100644 --- a/sdk/python/pulumi_aws/__init__.py +++ b/sdk/python/pulumi_aws/__init__.py @@ -92,6 +92,7 @@ glue, guardduty, iam, + identitystore, imagebuilder, inspector, iot, diff --git a/sdk/python/pulumi_aws/_tables.py b/sdk/python/pulumi_aws/_tables.py index 52b4ff49d1f..6754ed5d03a 100644 --- a/sdk/python/pulumi_aws/_tables.py +++ b/sdk/python/pulumi_aws/_tables.py @@ -46,6 +46,8 @@ "alarm_actions": "alarmActions", "alarm_configuration": "alarmConfiguration", "alarm_description": "alarmDescription", + "alarm_name": "alarmName", + "alarm_rule": "alarmRule", "alb_target_group_arn": "albTargetGroupArn", "alias_attributes": "aliasAttributes", "all_settings": "allSettings", @@ -88,6 +90,7 @@ "api_mapping_selection_expression": "apiMappingSelectionExpression", "api_stages": "apiStages", "app_name": "appName", + "app_network_access_type": "appNetworkAccessType", "app_server": "appServer", "app_server_version": "appServerVersion", "app_sources": "appSources", @@ -125,6 +128,7 @@ "audio_codec_options": "audioCodecOptions", "audit_destination_arn": "auditDestinationArn", "audit_stream_arn": "auditStreamArn", + "auth_mode": "authMode", "auth_token": "authToken", "auth_type": "authType", "authentication_configuration": "authenticationConfiguration", @@ -500,11 +504,13 @@ "default_ssh_key_name": "defaultSshKeyName", "default_storage_class": "defaultStorageClass", "default_subnet_id": "defaultSubnetId", + "default_user_settings": "defaultUserSettings", "default_value": "defaultValue", "default_version": "defaultVersion", "default_version_id": "defaultVersionId", "delay_seconds": "delaySeconds", "delegation_set_id": "delegationSetId", + "delete_all_policy_resources": "deleteAllPolicyResources", "delete_automated_backups": "deleteAutomatedBackups", "delete_ebs": "deleteEbs", "delete_eip": "deleteEip", @@ -702,6 +708,8 @@ "event_source_token": "eventSourceToken", "event_type_ids": "eventTypeIds", "excess_capacity_termination_policy": "excessCapacityTerminationPolicy", + "exclude_map": "excludeMap", + "exclude_resource_tags": "excludeResourceTags", "excluded_accounts": "excludedAccounts", "excluded_members": "excludedMembers", "execution_arn": "executionArn", @@ -817,6 +825,7 @@ "home_directory": "homeDirectory", "home_directory_mappings": "homeDirectoryMappings", "home_directory_type": "homeDirectoryType", + "home_efs_file_system_id": "homeEfsFileSystemId", "home_region": "homeRegion", "host_environment": "hostEnvironment", "host_id": "hostId", @@ -880,6 +889,7 @@ "imported_file_chunk_size": "importedFileChunkSize", "in_progress_validation_batches": "inProgressValidationBatches", "include_global_service_events": "includeGlobalServiceEvents", + "include_map": "includeMap", "include_original_headers": "includeOriginalHeaders", "included_object_versions": "includedObjectVersions", "inference_accelerators": "inferenceAccelerators", @@ -1330,6 +1340,7 @@ "policy_revision": "policyRevision", "policy_type": "policyType", "policy_type_name": "policyTypeName", + "policy_update_token": "policyUpdateToken", "policy_url": "policyUrl", "poll_interval": "pollInterval", "pool_name": "poolName", @@ -1351,6 +1362,8 @@ "primary_endpoint_address": "primaryEndpointAddress", "primary_network_interface_id": "primaryNetworkInterfaceId", "principal_arn": "principalArn", + "principal_id": "principalId", + "principal_type": "principalType", "private_address": "privateAddress", "private_dns": "privateDns", "private_dns_enabled": "privateDnsEnabled", @@ -1451,6 +1464,7 @@ "relay_state": "relayState", "release_label": "releaseLabel", "release_version": "releaseVersion", + "remediation_enabled": "remediationEnabled", "remote_access": "remoteAccess", "remote_administration_endpoint": "remoteAdministrationEndpoint", "remote_domain_name": "remoteDomainName", @@ -1520,6 +1534,7 @@ "resource_share_arn": "resourceShareArn", "resource_tags": "resourceTags", "resource_type": "resourceType", + "resource_type_lists": "resourceTypeLists", "resource_type_opt_in_preference": "resourceTypeOptInPreference", "resource_types_scopes": "resourceTypesScopes", "resource_uris": "resourceUris", @@ -1647,6 +1662,7 @@ "security_group_names": "securityGroupNames", "security_groups": "securityGroups", "security_policy": "securityPolicy", + "security_service_policy_data": "securityServicePolicyData", "selection_pattern": "selectionPattern", "selection_tags": "selectionTags", "self_managed_active_directory": "selfManagedActiveDirectory", @@ -1691,6 +1707,7 @@ "signed_objects": "signedObjects", "signing_job_arn": "signingJobArn", "signing_profile_version_arn": "signingProfileVersionArn", + "single_sign_on_managed_application_instance_id": "singleSignOnManagedApplicationInstanceId", "size_constraints": "sizeConstraints", "skip_credentials_validation": "skipCredentialsValidation", "skip_destroy": "skipDestroy", @@ -1997,6 +2014,7 @@ "validation_emails": "validationEmails", "validation_method": "validationMethod", "validation_record_fqdns": "validationRecordFqdns", + "validation_status": "validationStatus", "value_selection_strategy": "valueSelectionStrategy", "vault_name": "vaultName", "verification_message_template": "verificationMessageTemplate", @@ -2067,6 +2085,7 @@ "workflow_name": "workflowName", "working_directory": "workingDirectory", "workmail_actions": "workmailActions", + "workspace_access_properties": "workspaceAccessProperties", "workspace_creation_properties": "workspaceCreationProperties", "workspace_properties": "workspaceProperties", "workspace_security_group_id": "workspaceSecurityGroupId", @@ -2126,6 +2145,8 @@ "alarmActions": "alarm_actions", "alarmConfiguration": "alarm_configuration", "alarmDescription": "alarm_description", + "alarmName": "alarm_name", + "alarmRule": "alarm_rule", "albTargetGroupArn": "alb_target_group_arn", "aliasAttributes": "alias_attributes", "allSettings": "all_settings", @@ -2168,6 +2189,7 @@ "apiMappingSelectionExpression": "api_mapping_selection_expression", "apiStages": "api_stages", "appName": "app_name", + "appNetworkAccessType": "app_network_access_type", "appServer": "app_server", "appServerVersion": "app_server_version", "appSources": "app_sources", @@ -2205,6 +2227,7 @@ "audioCodecOptions": "audio_codec_options", "auditDestinationArn": "audit_destination_arn", "auditStreamArn": "audit_stream_arn", + "authMode": "auth_mode", "authToken": "auth_token", "authType": "auth_type", "authenticationConfiguration": "authentication_configuration", @@ -2580,11 +2603,13 @@ "defaultSshKeyName": "default_ssh_key_name", "defaultStorageClass": "default_storage_class", "defaultSubnetId": "default_subnet_id", + "defaultUserSettings": "default_user_settings", "defaultValue": "default_value", "defaultVersion": "default_version", "defaultVersionId": "default_version_id", "delaySeconds": "delay_seconds", "delegationSetId": "delegation_set_id", + "deleteAllPolicyResources": "delete_all_policy_resources", "deleteAutomatedBackups": "delete_automated_backups", "deleteEbs": "delete_ebs", "deleteEip": "delete_eip", @@ -2782,6 +2807,8 @@ "eventSourceToken": "event_source_token", "eventTypeIds": "event_type_ids", "excessCapacityTerminationPolicy": "excess_capacity_termination_policy", + "excludeMap": "exclude_map", + "excludeResourceTags": "exclude_resource_tags", "excludedAccounts": "excluded_accounts", "excludedMembers": "excluded_members", "executionArn": "execution_arn", @@ -2897,6 +2924,7 @@ "homeDirectory": "home_directory", "homeDirectoryMappings": "home_directory_mappings", "homeDirectoryType": "home_directory_type", + "homeEfsFileSystemId": "home_efs_file_system_id", "homeRegion": "home_region", "hostEnvironment": "host_environment", "hostId": "host_id", @@ -2960,6 +2988,7 @@ "importedFileChunkSize": "imported_file_chunk_size", "inProgressValidationBatches": "in_progress_validation_batches", "includeGlobalServiceEvents": "include_global_service_events", + "includeMap": "include_map", "includeOriginalHeaders": "include_original_headers", "includedObjectVersions": "included_object_versions", "inferenceAccelerators": "inference_accelerators", @@ -3410,6 +3439,7 @@ "policyRevision": "policy_revision", "policyType": "policy_type", "policyTypeName": "policy_type_name", + "policyUpdateToken": "policy_update_token", "policyUrl": "policy_url", "pollInterval": "poll_interval", "poolName": "pool_name", @@ -3431,6 +3461,8 @@ "primaryEndpointAddress": "primary_endpoint_address", "primaryNetworkInterfaceId": "primary_network_interface_id", "principalArn": "principal_arn", + "principalId": "principal_id", + "principalType": "principal_type", "privateAddress": "private_address", "privateDns": "private_dns", "privateDnsEnabled": "private_dns_enabled", @@ -3531,6 +3563,7 @@ "relayState": "relay_state", "releaseLabel": "release_label", "releaseVersion": "release_version", + "remediationEnabled": "remediation_enabled", "remoteAccess": "remote_access", "remoteAdministrationEndpoint": "remote_administration_endpoint", "remoteDomainName": "remote_domain_name", @@ -3600,6 +3633,7 @@ "resourceShareArn": "resource_share_arn", "resourceTags": "resource_tags", "resourceType": "resource_type", + "resourceTypeLists": "resource_type_lists", "resourceTypeOptInPreference": "resource_type_opt_in_preference", "resourceTypesScopes": "resource_types_scopes", "resourceUris": "resource_uris", @@ -3727,6 +3761,7 @@ "securityGroupNames": "security_group_names", "securityGroups": "security_groups", "securityPolicy": "security_policy", + "securityServicePolicyData": "security_service_policy_data", "selectionPattern": "selection_pattern", "selectionTags": "selection_tags", "selfManagedActiveDirectory": "self_managed_active_directory", @@ -3771,6 +3806,7 @@ "signedObjects": "signed_objects", "signingJobArn": "signing_job_arn", "signingProfileVersionArn": "signing_profile_version_arn", + "singleSignOnManagedApplicationInstanceId": "single_sign_on_managed_application_instance_id", "sizeConstraints": "size_constraints", "skipCredentialsValidation": "skip_credentials_validation", "skipDestroy": "skip_destroy", @@ -4077,6 +4113,7 @@ "validationEmails": "validation_emails", "validationMethod": "validation_method", "validationRecordFqdns": "validation_record_fqdns", + "validationStatus": "validation_status", "valueSelectionStrategy": "value_selection_strategy", "vaultName": "vault_name", "verificationMessageTemplate": "verification_message_template", @@ -4147,6 +4184,7 @@ "workflowName": "workflow_name", "workingDirectory": "working_directory", "workmailActions": "workmail_actions", + "workspaceAccessProperties": "workspace_access_properties", "workspaceCreationProperties": "workspace_creation_properties", "workspaceProperties": "workspace_properties", "workspaceSecurityGroupId": "workspace_security_group_id", diff --git a/sdk/python/pulumi_aws/apigateway/__init__.py b/sdk/python/pulumi_aws/apigateway/__init__.py index eb783bc32a2..044652f9aca 100644 --- a/sdk/python/pulumi_aws/apigateway/__init__.py +++ b/sdk/python/pulumi_aws/apigateway/__init__.py @@ -12,6 +12,7 @@ from .documentation_part import * from .documentation_version import * from .domain_name import * +from .get_domain_name import * from .get_key import * from .get_resource import * from .get_rest_api import * diff --git a/sdk/python/pulumi_aws/apigateway/_inputs.py b/sdk/python/pulumi_aws/apigateway/_inputs.py index d8728805ee8..33857620d6a 100644 --- a/sdk/python/pulumi_aws/apigateway/_inputs.py +++ b/sdk/python/pulumi_aws/apigateway/_inputs.py @@ -12,6 +12,8 @@ 'AccountThrottleSettingsArgs', 'DocumentationPartLocationArgs', 'DomainNameEndpointConfigurationArgs', + 'DomainNameMutualTlsAuthenticationArgs', + 'IntegrationTlsConfigArgs', 'MethodSettingsSettingsArgs', 'RestApiEndpointConfigurationArgs', 'StageAccessLogSettingsArgs', @@ -167,6 +169,69 @@ def types(self, value: pulumi.Input[str]): pulumi.set(self, "types", value) +@pulumi.input_type +class DomainNameMutualTlsAuthenticationArgs: + def __init__(__self__, *, + truststore_uri: pulumi.Input[str], + truststore_version: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] truststore_uri: An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + :param pulumi.Input[str] truststore_version: The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + """ + pulumi.set(__self__, "truststore_uri", truststore_uri) + if truststore_version is not None: + pulumi.set(__self__, "truststore_version", truststore_version) + + @property + @pulumi.getter(name="truststoreUri") + def truststore_uri(self) -> pulumi.Input[str]: + """ + An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + """ + return pulumi.get(self, "truststore_uri") + + @truststore_uri.setter + def truststore_uri(self, value: pulumi.Input[str]): + pulumi.set(self, "truststore_uri", value) + + @property + @pulumi.getter(name="truststoreVersion") + def truststore_version(self) -> Optional[pulumi.Input[str]]: + """ + The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + """ + return pulumi.get(self, "truststore_version") + + @truststore_version.setter + def truststore_version(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "truststore_version", value) + + +@pulumi.input_type +class IntegrationTlsConfigArgs: + def __init__(__self__, *, + insecure_skip_verification: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[bool] insecure_skip_verification: Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + """ + if insecure_skip_verification is not None: + pulumi.set(__self__, "insecure_skip_verification", insecure_skip_verification) + + @property + @pulumi.getter(name="insecureSkipVerification") + def insecure_skip_verification(self) -> Optional[pulumi.Input[bool]]: + """ + Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + """ + return pulumi.get(self, "insecure_skip_verification") + + @insecure_skip_verification.setter + def insecure_skip_verification(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "insecure_skip_verification", value) + + @pulumi.input_type class MethodSettingsSettingsArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/apigateway/domain_name.py b/sdk/python/pulumi_aws/apigateway/domain_name.py index 165f66facf7..a74a665b982 100644 --- a/sdk/python/pulumi_aws/apigateway/domain_name.py +++ b/sdk/python/pulumi_aws/apigateway/domain_name.py @@ -24,6 +24,7 @@ def __init__(__self__, certificate_private_key: Optional[pulumi.Input[str]] = None, domain_name: Optional[pulumi.Input[str]] = None, endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['DomainNameEndpointConfigurationArgs']]] = None, + mutual_tls_authentication: Optional[pulumi.Input[pulumi.InputType['DomainNameMutualTlsAuthenticationArgs']]] = None, regional_certificate_arn: Optional[pulumi.Input[str]] = None, regional_certificate_name: Optional[pulumi.Input[str]] = None, security_policy: Optional[pulumi.Input[str]] = None, @@ -184,6 +185,7 @@ def __init__(__self__, domain certificate given in `certificate_body`. Only valid for `EDGE` endpoint configuration type. Conflicts with `certificate_arn`, `regional_certificate_arn`, and `regional_certificate_name`. :param pulumi.Input[str] domain_name: The fully-qualified domain name to register :param pulumi.Input[pulumi.InputType['DomainNameEndpointConfigurationArgs']] endpoint_configuration: Configuration block defining API endpoint information including type. Defined below. + :param pulumi.Input[pulumi.InputType['DomainNameMutualTlsAuthenticationArgs']] mutual_tls_authentication: The mutual TLS authentication configuration for the domain name. Defined below. :param pulumi.Input[str] regional_certificate_arn: The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. :param pulumi.Input[str] regional_certificate_name: The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. @@ -216,6 +218,7 @@ def __init__(__self__, raise TypeError("Missing required property 'domain_name'") __props__['domain_name'] = domain_name __props__['endpoint_configuration'] = endpoint_configuration + __props__['mutual_tls_authentication'] = mutual_tls_authentication __props__['regional_certificate_arn'] = regional_certificate_arn __props__['regional_certificate_name'] = regional_certificate_name __props__['security_policy'] = security_policy @@ -247,6 +250,7 @@ def get(resource_name: str, cloudfront_zone_id: Optional[pulumi.Input[str]] = None, domain_name: Optional[pulumi.Input[str]] = None, endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['DomainNameEndpointConfigurationArgs']]] = None, + mutual_tls_authentication: Optional[pulumi.Input[pulumi.InputType['DomainNameMutualTlsAuthenticationArgs']]] = None, regional_certificate_arn: Optional[pulumi.Input[str]] = None, regional_certificate_name: Optional[pulumi.Input[str]] = None, regional_domain_name: Optional[pulumi.Input[str]] = None, @@ -281,6 +285,7 @@ def get(resource_name: str, that can be used to create a Route53 alias record for the distribution. :param pulumi.Input[str] domain_name: The fully-qualified domain name to register :param pulumi.Input[pulumi.InputType['DomainNameEndpointConfigurationArgs']] endpoint_configuration: Configuration block defining API endpoint information including type. Defined below. + :param pulumi.Input[pulumi.InputType['DomainNameMutualTlsAuthenticationArgs']] mutual_tls_authentication: The mutual TLS authentication configuration for the domain name. Defined below. :param pulumi.Input[str] regional_certificate_arn: The ARN for an AWS-managed certificate. AWS Certificate Manager is the only supported source. Used when a regional domain name is desired. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. :param pulumi.Input[str] regional_certificate_name: The user-friendly name of the certificate that will be used by regional endpoint for this domain name. Conflicts with `certificate_arn`, `certificate_name`, `certificate_body`, `certificate_chain`, and `certificate_private_key`. @@ -304,6 +309,7 @@ def get(resource_name: str, __props__["cloudfront_zone_id"] = cloudfront_zone_id __props__["domain_name"] = domain_name __props__["endpoint_configuration"] = endpoint_configuration + __props__["mutual_tls_authentication"] = mutual_tls_authentication __props__["regional_certificate_arn"] = regional_certificate_arn __props__["regional_certificate_name"] = regional_certificate_name __props__["regional_domain_name"] = regional_domain_name @@ -410,6 +416,14 @@ def endpoint_configuration(self) -> pulumi.Output['outputs.DomainNameEndpointCon """ return pulumi.get(self, "endpoint_configuration") + @property + @pulumi.getter(name="mutualTlsAuthentication") + def mutual_tls_authentication(self) -> pulumi.Output[Optional['outputs.DomainNameMutualTlsAuthentication']]: + """ + The mutual TLS authentication configuration for the domain name. Defined below. + """ + return pulumi.get(self, "mutual_tls_authentication") + @property @pulumi.getter(name="regionalCertificateArn") def regional_certificate_arn(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws/apigateway/get_domain_name.py b/sdk/python/pulumi_aws/apigateway/get_domain_name.py new file mode 100644 index 00000000000..b4660d55eee --- /dev/null +++ b/sdk/python/pulumi_aws/apigateway/get_domain_name.py @@ -0,0 +1,254 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs + +__all__ = [ + 'GetDomainNameResult', + 'AwaitableGetDomainNameResult', + 'get_domain_name', +] + +@pulumi.output_type +class GetDomainNameResult: + """ + A collection of values returned by getDomainName. + """ + def __init__(__self__, arn=None, certificate_arn=None, certificate_name=None, certificate_upload_date=None, cloudfront_domain_name=None, cloudfront_zone_id=None, domain_name=None, endpoint_configurations=None, id=None, regional_certificate_arn=None, regional_certificate_name=None, regional_domain_name=None, regional_zone_id=None, security_policy=None, tags=None): + if arn and not isinstance(arn, str): + raise TypeError("Expected argument 'arn' to be a str") + pulumi.set(__self__, "arn", arn) + if certificate_arn and not isinstance(certificate_arn, str): + raise TypeError("Expected argument 'certificate_arn' to be a str") + pulumi.set(__self__, "certificate_arn", certificate_arn) + if certificate_name and not isinstance(certificate_name, str): + raise TypeError("Expected argument 'certificate_name' to be a str") + pulumi.set(__self__, "certificate_name", certificate_name) + if certificate_upload_date and not isinstance(certificate_upload_date, str): + raise TypeError("Expected argument 'certificate_upload_date' to be a str") + pulumi.set(__self__, "certificate_upload_date", certificate_upload_date) + if cloudfront_domain_name and not isinstance(cloudfront_domain_name, str): + raise TypeError("Expected argument 'cloudfront_domain_name' to be a str") + pulumi.set(__self__, "cloudfront_domain_name", cloudfront_domain_name) + if cloudfront_zone_id and not isinstance(cloudfront_zone_id, str): + raise TypeError("Expected argument 'cloudfront_zone_id' to be a str") + pulumi.set(__self__, "cloudfront_zone_id", cloudfront_zone_id) + if domain_name and not isinstance(domain_name, str): + raise TypeError("Expected argument 'domain_name' to be a str") + pulumi.set(__self__, "domain_name", domain_name) + if endpoint_configurations and not isinstance(endpoint_configurations, list): + raise TypeError("Expected argument 'endpoint_configurations' to be a list") + pulumi.set(__self__, "endpoint_configurations", endpoint_configurations) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if regional_certificate_arn and not isinstance(regional_certificate_arn, str): + raise TypeError("Expected argument 'regional_certificate_arn' to be a str") + pulumi.set(__self__, "regional_certificate_arn", regional_certificate_arn) + if regional_certificate_name and not isinstance(regional_certificate_name, str): + raise TypeError("Expected argument 'regional_certificate_name' to be a str") + pulumi.set(__self__, "regional_certificate_name", regional_certificate_name) + if regional_domain_name and not isinstance(regional_domain_name, str): + raise TypeError("Expected argument 'regional_domain_name' to be a str") + pulumi.set(__self__, "regional_domain_name", regional_domain_name) + if regional_zone_id and not isinstance(regional_zone_id, str): + raise TypeError("Expected argument 'regional_zone_id' to be a str") + pulumi.set(__self__, "regional_zone_id", regional_zone_id) + if security_policy and not isinstance(security_policy, str): + raise TypeError("Expected argument 'security_policy' to be a str") + pulumi.set(__self__, "security_policy", security_policy) + if tags and not isinstance(tags, dict): + raise TypeError("Expected argument 'tags' to be a dict") + pulumi.set(__self__, "tags", tags) + + @property + @pulumi.getter + def arn(self) -> str: + """ + The ARN of the found custom domain name. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="certificateArn") + def certificate_arn(self) -> str: + """ + The ARN for an AWS-managed certificate that is used by edge-optimized endpoint for this domain name. + """ + return pulumi.get(self, "certificate_arn") + + @property + @pulumi.getter(name="certificateName") + def certificate_name(self) -> str: + """ + The name of the certificate that is used by edge-optimized endpoint for this domain name. + """ + return pulumi.get(self, "certificate_name") + + @property + @pulumi.getter(name="certificateUploadDate") + def certificate_upload_date(self) -> str: + """ + The upload date associated with the domain certificate. + """ + return pulumi.get(self, "certificate_upload_date") + + @property + @pulumi.getter(name="cloudfrontDomainName") + def cloudfront_domain_name(self) -> str: + """ + The hostname created by Cloudfront to represent the distribution that implements this domain name mapping. + """ + return pulumi.get(self, "cloudfront_domain_name") + + @property + @pulumi.getter(name="cloudfrontZoneId") + def cloudfront_zone_id(self) -> str: + """ + For convenience, the hosted zone ID (`Z2FDTNDATAQYW2`) that can be used to create a Route53 alias record for the distribution. + """ + return pulumi.get(self, "cloudfront_zone_id") + + @property + @pulumi.getter(name="domainName") + def domain_name(self) -> str: + return pulumi.get(self, "domain_name") + + @property + @pulumi.getter(name="endpointConfigurations") + def endpoint_configurations(self) -> Sequence['outputs.GetDomainNameEndpointConfigurationResult']: + """ + List of objects with the endpoint configuration of this domain name. + """ + return pulumi.get(self, "endpoint_configurations") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="regionalCertificateArn") + def regional_certificate_arn(self) -> str: + """ + The ARN for an AWS-managed certificate that is used for validating the regional domain name. + """ + return pulumi.get(self, "regional_certificate_arn") + + @property + @pulumi.getter(name="regionalCertificateName") + def regional_certificate_name(self) -> str: + """ + The user-friendly name of the certificate that is used by regional endpoint for this domain name. + """ + return pulumi.get(self, "regional_certificate_name") + + @property + @pulumi.getter(name="regionalDomainName") + def regional_domain_name(self) -> str: + """ + The hostname for the custom domain's regional endpoint. + """ + return pulumi.get(self, "regional_domain_name") + + @property + @pulumi.getter(name="regionalZoneId") + def regional_zone_id(self) -> str: + """ + The hosted zone ID that can be used to create a Route53 alias record for the regional endpoint. + """ + return pulumi.get(self, "regional_zone_id") + + @property + @pulumi.getter(name="securityPolicy") + def security_policy(self) -> str: + """ + The security policy for the domain name. + """ + return pulumi.get(self, "security_policy") + + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + Key-value map of tags for the resource. + """ + return pulumi.get(self, "tags") + + +class AwaitableGetDomainNameResult(GetDomainNameResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetDomainNameResult( + arn=self.arn, + certificate_arn=self.certificate_arn, + certificate_name=self.certificate_name, + certificate_upload_date=self.certificate_upload_date, + cloudfront_domain_name=self.cloudfront_domain_name, + cloudfront_zone_id=self.cloudfront_zone_id, + domain_name=self.domain_name, + endpoint_configurations=self.endpoint_configurations, + id=self.id, + regional_certificate_arn=self.regional_certificate_arn, + regional_certificate_name=self.regional_certificate_name, + regional_domain_name=self.regional_domain_name, + regional_zone_id=self.regional_zone_id, + security_policy=self.security_policy, + tags=self.tags) + + +def get_domain_name(domain_name: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDomainNameResult: + """ + Use this data source to get the custom domain name for use with AWS API Gateway. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.apigateway.get_domain_name(domain_name="api.example.com") + ``` + + + :param str domain_name: The fully-qualified domain name to look up. If no domain name is found, an error will be returned. + :param Mapping[str, str] tags: Key-value map of tags for the resource. + """ + __args__ = dict() + __args__['domainName'] = domain_name + __args__['tags'] = tags + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = _utilities.get_version() + __ret__ = pulumi.runtime.invoke('aws:apigateway/getDomainName:getDomainName', __args__, opts=opts, typ=GetDomainNameResult).value + + return AwaitableGetDomainNameResult( + arn=__ret__.arn, + certificate_arn=__ret__.certificate_arn, + certificate_name=__ret__.certificate_name, + certificate_upload_date=__ret__.certificate_upload_date, + cloudfront_domain_name=__ret__.cloudfront_domain_name, + cloudfront_zone_id=__ret__.cloudfront_zone_id, + domain_name=__ret__.domain_name, + endpoint_configurations=__ret__.endpoint_configurations, + id=__ret__.id, + regional_certificate_arn=__ret__.regional_certificate_arn, + regional_certificate_name=__ret__.regional_certificate_name, + regional_domain_name=__ret__.regional_domain_name, + regional_zone_id=__ret__.regional_zone_id, + security_policy=__ret__.security_policy, + tags=__ret__.tags) diff --git a/sdk/python/pulumi_aws/apigateway/integration.py b/sdk/python/pulumi_aws/apigateway/integration.py index 8a2af8e19d4..5510551031b 100644 --- a/sdk/python/pulumi_aws/apigateway/integration.py +++ b/sdk/python/pulumi_aws/apigateway/integration.py @@ -7,6 +7,8 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union from .. import _utilities, _tables +from . import outputs +from ._inputs import * __all__ = ['Integration'] @@ -29,6 +31,7 @@ def __init__(__self__, resource_id: Optional[pulumi.Input[str]] = None, rest_api: Optional[pulumi.Input[str]] = None, timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']]] = None, type: Optional[pulumi.Input[str]] = None, uri: Optional[pulumi.Input[str]] = None, __props__=None, @@ -150,6 +153,7 @@ def __init__(__self__, :param pulumi.Input[str] resource_id: The API resource ID. :param pulumi.Input[str] rest_api: The ID of the associated REST API. :param pulumi.Input[int] timeout_milliseconds: Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. + :param pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']] tls_config: Configuration block specifying the TLS configuration for an integration. Defined below. :param pulumi.Input[str] type: The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. :param pulumi.Input[str] uri: The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. @@ -192,6 +196,7 @@ def __init__(__self__, raise TypeError("Missing required property 'rest_api'") __props__['rest_api'] = rest_api __props__['timeout_milliseconds'] = timeout_milliseconds + __props__['tls_config'] = tls_config if type is None and not opts.urn: raise TypeError("Missing required property 'type'") __props__['type'] = type @@ -220,6 +225,7 @@ def get(resource_name: str, resource_id: Optional[pulumi.Input[str]] = None, rest_api: Optional[pulumi.Input[str]] = None, timeout_milliseconds: Optional[pulumi.Input[int]] = None, + tls_config: Optional[pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']]] = None, type: Optional[pulumi.Input[str]] = None, uri: Optional[pulumi.Input[str]] = None) -> 'Integration': """ @@ -249,6 +255,7 @@ def get(resource_name: str, :param pulumi.Input[str] resource_id: The API resource ID. :param pulumi.Input[str] rest_api: The ID of the associated REST API. :param pulumi.Input[int] timeout_milliseconds: Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds. + :param pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']] tls_config: Configuration block specifying the TLS configuration for an integration. Defined below. :param pulumi.Input[str] type: The integration input's [type](https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/). Valid values are `HTTP` (for HTTP backends), `MOCK` (not calling any real backend), `AWS` (for AWS services), `AWS_PROXY` (for Lambda proxy integration) and `HTTP_PROXY` (for HTTP proxy integration). An `HTTP` or `HTTP_PROXY` integration with a `connection_type` of `VPC_LINK` is referred to as a private integration and uses a VpcLink to connect API Gateway to a network load balancer of a VPC. :param pulumi.Input[str] uri: The input's URI. **Required** if `type` is `AWS`, `AWS_PROXY`, `HTTP` or `HTTP_PROXY`. For HTTP integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification . For AWS integrations, the URI should be of the form `arn:aws:apigateway:{region}:{subdomain.service|service}:{path|action}/{service_api}`. `region`, `subdomain` and `service` are used to determine the right endpoint. @@ -272,6 +279,7 @@ def get(resource_name: str, __props__["resource_id"] = resource_id __props__["rest_api"] = rest_api __props__["timeout_milliseconds"] = timeout_milliseconds + __props__["tls_config"] = tls_config __props__["type"] = type __props__["uri"] = uri return Integration(resource_name, opts=opts, __props__=__props__) @@ -394,6 +402,14 @@ def timeout_milliseconds(self) -> pulumi.Output[Optional[int]]: """ return pulumi.get(self, "timeout_milliseconds") + @property + @pulumi.getter(name="tlsConfig") + def tls_config(self) -> pulumi.Output[Optional['outputs.IntegrationTlsConfig']]: + """ + Configuration block specifying the TLS configuration for an integration. Defined below. + """ + return pulumi.get(self, "tls_config") + @property @pulumi.getter def type(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/apigateway/method.py b/sdk/python/pulumi_aws/apigateway/method.py index acd7503f321..87a9246acfd 100644 --- a/sdk/python/pulumi_aws/apigateway/method.py +++ b/sdk/python/pulumi_aws/apigateway/method.py @@ -20,6 +20,7 @@ def __init__(__self__, authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, authorizer_id: Optional[pulumi.Input[str]] = None, http_method: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, request_validator_id: Optional[pulumi.Input[str]] = None, @@ -92,6 +93,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] authorization_scopes: The authorization scopes used when the authorization is `COGNITO_USER_POOLS` :param pulumi.Input[str] authorizer_id: The authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS` :param pulumi.Input[str] http_method: The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) + :param pulumi.Input[str] operation_name: The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_models: A map of the API models used for the request's content type where key is the content type (e.g. `application/json`) and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -127,6 +129,7 @@ def __init__(__self__, if http_method is None and not opts.urn: raise TypeError("Missing required property 'http_method'") __props__['http_method'] = http_method + __props__['operation_name'] = operation_name __props__['request_models'] = request_models __props__['request_parameters'] = request_parameters __props__['request_validator_id'] = request_validator_id @@ -151,6 +154,7 @@ def get(resource_name: str, authorization_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, authorizer_id: Optional[pulumi.Input[str]] = None, http_method: Optional[pulumi.Input[str]] = None, + operation_name: Optional[pulumi.Input[str]] = None, request_models: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[bool]]]] = None, request_validator_id: Optional[pulumi.Input[str]] = None, @@ -168,6 +172,7 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] authorization_scopes: The authorization scopes used when the authorization is `COGNITO_USER_POOLS` :param pulumi.Input[str] authorizer_id: The authorizer id to be used when the authorization is `CUSTOM` or `COGNITO_USER_POOLS` :param pulumi.Input[str] http_method: The HTTP Method (`GET`, `POST`, `PUT`, `DELETE`, `HEAD`, `OPTIONS`, `ANY`) + :param pulumi.Input[str] operation_name: The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_models: A map of the API models used for the request's content type where key is the content type (e.g. `application/json`) and value is either `Error`, `Empty` (built-in models) or `apigateway.Model`'s `name`. @@ -186,6 +191,7 @@ def get(resource_name: str, __props__["authorization_scopes"] = authorization_scopes __props__["authorizer_id"] = authorizer_id __props__["http_method"] = http_method + __props__["operation_name"] = operation_name __props__["request_models"] = request_models __props__["request_parameters"] = request_parameters __props__["request_validator_id"] = request_validator_id @@ -233,6 +239,14 @@ def http_method(self) -> pulumi.Output[str]: """ return pulumi.get(self, "http_method") + @property + @pulumi.getter(name="operationName") + def operation_name(self) -> pulumi.Output[Optional[str]]: + """ + The function name that will be given to the method when generating an SDK through API Gateway. If omitted, API Gateway will generate a function name based on the resource path and HTTP verb. + """ + return pulumi.get(self, "operation_name") + @property @pulumi.getter(name="requestModels") def request_models(self) -> pulumi.Output[Optional[Mapping[str, str]]]: diff --git a/sdk/python/pulumi_aws/apigateway/method_settings.py b/sdk/python/pulumi_aws/apigateway/method_settings.py index d026c371e64..454a1495b72 100644 --- a/sdk/python/pulumi_aws/apigateway/method_settings.py +++ b/sdk/python/pulumi_aws/apigateway/method_settings.py @@ -27,51 +27,6 @@ def __init__(__self__, """ Provides an API Gateway Method Settings, e.g. logging or monitoring. - ## Example Usage - - ```python - import pulumi - import pulumi_aws as aws - - test_rest_api = aws.apigateway.RestApi("testRestApi", description="This is my API for demonstration purposes") - test_resource = aws.apigateway.Resource("testResource", - rest_api=test_rest_api.id, - parent_id=test_rest_api.root_resource_id, - path_part="mytestresource") - test_method = aws.apigateway.Method("testMethod", - rest_api=test_rest_api.id, - resource_id=test_resource.id, - http_method="GET", - authorization="NONE") - test_integration = aws.apigateway.Integration("testIntegration", - rest_api=test_rest_api.id, - resource_id=test_resource.id, - http_method=test_method.http_method, - type="MOCK", - request_templates={ - "application/xml": \"\"\"{ - "body" : $input.json('$') - } - \"\"\", - }) - test_deployment = aws.apigateway.Deployment("testDeployment", - rest_api=test_rest_api.id, - stage_name="dev", - opts=pulumi.ResourceOptions(depends_on=[test_integration])) - test_stage = aws.apigateway.Stage("testStage", - stage_name="prod", - rest_api=test_rest_api.id, - deployment=test_deployment.id) - method_settings = aws.apigateway.MethodSettings("methodSettings", - rest_api=test_rest_api.id, - stage_name=test_stage.stage_name, - method_path=pulumi.Output.all(test_resource.path_part, test_method.http_method).apply(lambda path_part, http_method: f"{path_part}/{http_method}"), - settings=aws.apigateway.MethodSettingsSettingsArgs( - metrics_enabled=True, - logging_level="INFO", - )) - ``` - ## Import `aws_api_gateway_method_settings` can be imported using `REST-API-ID/STAGE-NAME/METHOD-PATH`, e.g. diff --git a/sdk/python/pulumi_aws/apigateway/outputs.py b/sdk/python/pulumi_aws/apigateway/outputs.py index 8b971d12c7d..61af44f29b4 100644 --- a/sdk/python/pulumi_aws/apigateway/outputs.py +++ b/sdk/python/pulumi_aws/apigateway/outputs.py @@ -12,12 +12,15 @@ 'AccountThrottleSettings', 'DocumentationPartLocation', 'DomainNameEndpointConfiguration', + 'DomainNameMutualTlsAuthentication', + 'IntegrationTlsConfig', 'MethodSettingsSettings', 'RestApiEndpointConfiguration', 'StageAccessLogSettings', 'UsagePlanApiStage', 'UsagePlanQuotaSettings', 'UsagePlanThrottleSettings', + 'GetDomainNameEndpointConfigurationResult', 'GetRestApiEndpointConfigurationResult', ] @@ -145,6 +148,63 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class DomainNameMutualTlsAuthentication(dict): + def __init__(__self__, *, + truststore_uri: str, + truststore_version: Optional[str] = None): + """ + :param str truststore_uri: An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + :param str truststore_version: The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + """ + pulumi.set(__self__, "truststore_uri", truststore_uri) + if truststore_version is not None: + pulumi.set(__self__, "truststore_version", truststore_version) + + @property + @pulumi.getter(name="truststoreUri") + def truststore_uri(self) -> str: + """ + An Amazon S3 URL that specifies the truststore for mutual TLS authentication, for example, `s3://bucket-name/key-name`. + The truststore can contain certificates from public or private certificate authorities. To update the truststore, upload a new version to S3, and then update your custom domain name to use the new version. + """ + return pulumi.get(self, "truststore_uri") + + @property + @pulumi.getter(name="truststoreVersion") + def truststore_version(self) -> Optional[str]: + """ + The version of the S3 object that contains the truststore. To specify a version, you must have versioning enabled for the S3 bucket. + """ + return pulumi.get(self, "truststore_version") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class IntegrationTlsConfig(dict): + def __init__(__self__, *, + insecure_skip_verification: Optional[bool] = None): + """ + :param bool insecure_skip_verification: Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + """ + if insecure_skip_verification is not None: + pulumi.set(__self__, "insecure_skip_verification", insecure_skip_verification) + + @property + @pulumi.getter(name="insecureSkipVerification") + def insecure_skip_verification(self) -> Optional[bool]: + """ + Specifies whether or not API Gateway skips verification that the certificate for an integration endpoint is issued by a [supported certificate authority](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-supported-certificate-authorities-for-http-endpoints.html). This isn’t recommended, but it enables you to use certificates that are signed by private certificate authorities, or certificates that are self-signed. If enabled, API Gateway still performs basic certificate validation, which includes checking the certificate's expiration date, hostname, and presence of a root certificate authority. Supported only for `HTTP` and `HTTP_PROXY` integrations. + """ + return pulumi.get(self, "insecure_skip_verification") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class MethodSettingsSettings(dict): def __init__(__self__, *, @@ -452,6 +512,24 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class GetDomainNameEndpointConfigurationResult(dict): + def __init__(__self__, *, + types: Sequence[str]): + """ + :param Sequence[str] types: List of endpoint types. + """ + pulumi.set(__self__, "types", types) + + @property + @pulumi.getter + def types(self) -> Sequence[str]: + """ + List of endpoint types. + """ + return pulumi.get(self, "types") + + @pulumi.output_type class GetRestApiEndpointConfigurationResult(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/apigateway/response.py b/sdk/python/pulumi_aws/apigateway/response.py index 7961fdcec94..94822406fdb 100644 --- a/sdk/python/pulumi_aws/apigateway/response.py +++ b/sdk/python/pulumi_aws/apigateway/response.py @@ -38,7 +38,7 @@ def __init__(__self__, status_code="401", response_type="UNAUTHORIZED", response_templates={ - "application/json": "{'message':$context.error.messageString}", + "application/json": "{\"message\":$context.error.messageString}", }, response_parameters={ "gatewayresponse.header.Authorization": "'Basic'", diff --git a/sdk/python/pulumi_aws/apigateway/rest_api.py b/sdk/python/pulumi_aws/apigateway/rest_api.py index 96948de6260..4d9857f8bf0 100644 --- a/sdk/python/pulumi_aws/apigateway/rest_api.py +++ b/sdk/python/pulumi_aws/apigateway/rest_api.py @@ -21,9 +21,11 @@ def __init__(__self__, binary_media_types: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, body: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['RestApiEndpointConfigurationArgs']]] = None, minimum_compression_size: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, policy: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, __props__=None, @@ -68,9 +70,11 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] binary_media_types: The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads. :param pulumi.Input[str] body: An OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. :param pulumi.Input[str] description: The description of the REST API + :param pulumi.Input[bool] disable_execute_api_endpoint: Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. :param pulumi.Input[pulumi.InputType['RestApiEndpointConfigurationArgs']] endpoint_configuration: Nested argument defining API endpoint configuration including endpoint type. Defined below. :param pulumi.Input[int] minimum_compression_size: Minimum response size to compress for the REST API. Integer between -1 and 10485760 (10MB). Setting a value greater than -1 will enable compression, -1 disables compression (default). :param pulumi.Input[str] name: The name of the REST API + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags """ @@ -95,9 +99,11 @@ def __init__(__self__, __props__['binary_media_types'] = binary_media_types __props__['body'] = body __props__['description'] = description + __props__['disable_execute_api_endpoint'] = disable_execute_api_endpoint __props__['endpoint_configuration'] = endpoint_configuration __props__['minimum_compression_size'] = minimum_compression_size __props__['name'] = name + __props__['parameters'] = parameters __props__['policy'] = policy __props__['tags'] = tags __props__['arn'] = None @@ -120,10 +126,12 @@ def get(resource_name: str, body: Optional[pulumi.Input[str]] = None, created_date: Optional[pulumi.Input[str]] = None, description: Optional[pulumi.Input[str]] = None, + disable_execute_api_endpoint: Optional[pulumi.Input[bool]] = None, endpoint_configuration: Optional[pulumi.Input[pulumi.InputType['RestApiEndpointConfigurationArgs']]] = None, execution_arn: Optional[pulumi.Input[str]] = None, minimum_compression_size: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, policy: Optional[pulumi.Input[str]] = None, root_resource_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'RestApi': @@ -140,12 +148,14 @@ def get(resource_name: str, :param pulumi.Input[str] body: An OpenAPI specification that defines the set of routes and integrations to create as part of the REST API. :param pulumi.Input[str] created_date: The creation date of the REST API :param pulumi.Input[str] description: The description of the REST API + :param pulumi.Input[bool] disable_execute_api_endpoint: Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. :param pulumi.Input[pulumi.InputType['RestApiEndpointConfigurationArgs']] endpoint_configuration: Nested argument defining API endpoint configuration including endpoint type. Defined below. :param pulumi.Input[str] execution_arn: The execution ARN part to be used in `lambda_permission`'s `source_arn` when allowing API Gateway to invoke a Lambda function, e.g. `arn:aws:execute-api:eu-west-2:123456789012:z4675bid1j`, which can be concatenated with allowed stage, method and resource path. :param pulumi.Input[int] minimum_compression_size: Minimum response size to compress for the REST API. Integer between -1 and 10485760 (10MB). Setting a value greater than -1 will enable compression, -1 disables compression (default). :param pulumi.Input[str] name: The name of the REST API + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] parameters: Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). :param pulumi.Input[str] policy: JSON formatted policy document that controls access to the API Gateway. This provider will only perform drift detection of its value when present in a configuration. It is recommended to use the `apigateway.RestApiPolicy` resource instead. :param pulumi.Input[str] root_resource_id: The resource ID of the REST API's root :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Key-value map of resource tags @@ -160,10 +170,12 @@ def get(resource_name: str, __props__["body"] = body __props__["created_date"] = created_date __props__["description"] = description + __props__["disable_execute_api_endpoint"] = disable_execute_api_endpoint __props__["endpoint_configuration"] = endpoint_configuration __props__["execution_arn"] = execution_arn __props__["minimum_compression_size"] = minimum_compression_size __props__["name"] = name + __props__["parameters"] = parameters __props__["policy"] = policy __props__["root_resource_id"] = root_resource_id __props__["tags"] = tags @@ -217,6 +229,14 @@ def description(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "description") + @property + @pulumi.getter(name="disableExecuteApiEndpoint") + def disable_execute_api_endpoint(self) -> pulumi.Output[Optional[bool]]: + """ + Specifies whether clients can invoke your API by using the default execute-api endpoint. By default, clients can invoke your API with the default https://{api_id}.execute-api.{region}.amazonaws.com endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint. Defaults to `false`. + """ + return pulumi.get(self, "disable_execute_api_endpoint") + @property @pulumi.getter(name="endpointConfiguration") def endpoint_configuration(self) -> pulumi.Output['outputs.RestApiEndpointConfiguration']: @@ -251,6 +271,14 @@ def name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "name") + @property + @pulumi.getter + def parameters(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + Map of customizations for importing the specification in the `body` argument. For example, to exclude DocumentationParts from an imported API, set `ignore` equal to `documentation`. Additional documentation, including other parameters such as `basepath`, can be found in the [API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-import-api.html). + """ + return pulumi.get(self, "parameters") + @property @pulumi.getter def policy(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/apigatewayv2/_inputs.py b/sdk/python/pulumi_aws/apigatewayv2/_inputs.py index 9a8558e6bf3..c14544a6b7e 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/_inputs.py +++ b/sdk/python/pulumi_aws/apigatewayv2/_inputs.py @@ -13,6 +13,7 @@ 'AuthorizerJwtConfigurationArgs', 'DomainNameDomainNameConfigurationArgs', 'DomainNameMutualTlsAuthenticationArgs', + 'IntegrationResponseParameterArgs', 'IntegrationTlsConfigArgs', 'StageAccessLogSettingsArgs', 'StageDefaultRouteSettingsArgs', @@ -287,6 +288,45 @@ def truststore_version(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "truststore_version", value) +@pulumi.input_type +class IntegrationResponseParameterArgs: + def __init__(__self__, *, + mappings: pulumi.Input[Mapping[str, pulumi.Input[str]]], + status_code: pulumi.Input[str]): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] mappings: A 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. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + :param pulumi.Input[str] status_code: The HTTP status code in the range 200-599. + """ + pulumi.set(__self__, "mappings", mappings) + pulumi.set(__self__, "status_code", status_code) + + @property + @pulumi.getter + def mappings(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]: + """ + A 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. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + """ + return pulumi.get(self, "mappings") + + @mappings.setter + def mappings(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]): + pulumi.set(self, "mappings", value) + + @property + @pulumi.getter(name="statusCode") + def status_code(self) -> pulumi.Input[str]: + """ + The HTTP status code in the range 200-599. + """ + return pulumi.get(self, "status_code") + + @status_code.setter + def status_code(self, value: pulumi.Input[str]): + pulumi.set(self, "status_code", value) + + @pulumi.input_type class IntegrationTlsConfigArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/apigatewayv2/integration.py b/sdk/python/pulumi_aws/apigatewayv2/integration.py index 030e1af7d4e..60c6fa2d502 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/integration.py +++ b/sdk/python/pulumi_aws/apigatewayv2/integration.py @@ -31,6 +31,7 @@ def __init__(__self__, payload_format_version: Optional[pulumi.Input[str]] = None, request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IntegrationResponseParameterArgs']]]]] = None, template_selection_expression: Optional[pulumi.Input[str]] = None, timeout_milliseconds: Optional[pulumi.Input[int]] = None, tls_config: Optional[pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']]] = None, @@ -116,9 +117,12 @@ def __init__(__self__, :param pulumi.Input[str] passthrough_behavior: The pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute. Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs. :param pulumi.Input[str] payload_format_version: The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_parameters: A key-value map specifying request parameters that are passed from the method request to the backend. - Supported only for WebSocket APIs. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_templates: A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_parameters: For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_templates: A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IntegrationResponseParameterArgs']]]] response_parameters: Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. :param pulumi.Input[str] template_selection_expression: The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. :param pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']] tls_config: The TLS configuration for a private integration. Supported only for HTTP APIs. """ @@ -157,6 +161,7 @@ def __init__(__self__, __props__['payload_format_version'] = payload_format_version __props__['request_parameters'] = request_parameters __props__['request_templates'] = request_templates + __props__['response_parameters'] = response_parameters __props__['template_selection_expression'] = template_selection_expression __props__['timeout_milliseconds'] = timeout_milliseconds __props__['tls_config'] = tls_config @@ -186,6 +191,7 @@ def get(resource_name: str, payload_format_version: Optional[pulumi.Input[str]] = None, request_parameters: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, request_templates: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + response_parameters: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IntegrationResponseParameterArgs']]]]] = None, template_selection_expression: Optional[pulumi.Input[str]] = None, timeout_milliseconds: Optional[pulumi.Input[int]] = None, tls_config: Optional[pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']]] = None) -> 'Integration': @@ -212,9 +218,12 @@ def get(resource_name: str, :param pulumi.Input[str] passthrough_behavior: The pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute. Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs. :param pulumi.Input[str] payload_format_version: The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_parameters: A key-value map specifying request parameters that are passed from the method request to the backend. - Supported only for WebSocket APIs. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_templates: A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_parameters: For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_templates: A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['IntegrationResponseParameterArgs']]]] response_parameters: Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. :param pulumi.Input[str] template_selection_expression: The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration. :param pulumi.Input[pulumi.InputType['IntegrationTlsConfigArgs']] tls_config: The TLS configuration for a private integration. Supported only for HTTP APIs. """ @@ -237,6 +246,7 @@ def get(resource_name: str, __props__["payload_format_version"] = payload_format_version __props__["request_parameters"] = request_parameters __props__["request_templates"] = request_templates + __props__["response_parameters"] = response_parameters __props__["template_selection_expression"] = template_selection_expression __props__["timeout_milliseconds"] = timeout_milliseconds __props__["tls_config"] = tls_config @@ -353,8 +363,10 @@ def payload_format_version(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="requestParameters") def request_parameters(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A key-value map specifying request parameters that are passed from the method request to the backend. - Supported only for WebSocket APIs. + For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend. + For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations. + For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. """ return pulumi.get(self, "request_parameters") @@ -362,10 +374,18 @@ def request_parameters(self) -> pulumi.Output[Optional[Mapping[str, str]]]: @pulumi.getter(name="requestTemplates") def request_templates(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. + A map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs. """ return pulumi.get(self, "request_templates") + @property + @pulumi.getter(name="responseParameters") + def response_parameters(self) -> pulumi.Output[Optional[Sequence['outputs.IntegrationResponseParameter']]]: + """ + Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs. + """ + return pulumi.get(self, "response_parameters") + @property @pulumi.getter(name="templateSelectionExpression") def template_selection_expression(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws/apigatewayv2/outputs.py b/sdk/python/pulumi_aws/apigatewayv2/outputs.py index 6dbd73c3abc..059973d33c1 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/outputs.py +++ b/sdk/python/pulumi_aws/apigatewayv2/outputs.py @@ -13,6 +13,7 @@ 'AuthorizerJwtConfiguration', 'DomainNameDomainNameConfiguration', 'DomainNameMutualTlsAuthentication', + 'IntegrationResponseParameter', 'IntegrationTlsConfig', 'StageAccessLogSettings', 'StageDefaultRouteSettings', @@ -239,6 +240,40 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class IntegrationResponseParameter(dict): + def __init__(__self__, *, + mappings: Mapping[str, str], + status_code: str): + """ + :param Mapping[str, str] mappings: A 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. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + :param str status_code: The HTTP status code in the range 200-599. + """ + pulumi.set(__self__, "mappings", mappings) + pulumi.set(__self__, "status_code", status_code) + + @property + @pulumi.getter + def mappings(self) -> Mapping[str, str]: + """ + A 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. + See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details. + """ + return pulumi.get(self, "mappings") + + @property + @pulumi.getter(name="statusCode") + def status_code(self) -> str: + """ + The HTTP status code in the range 200-599. + """ + return pulumi.get(self, "status_code") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class IntegrationTlsConfig(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/appmesh/_inputs.py b/sdk/python/pulumi_aws/appmesh/_inputs.py index 83b7384543d..3936e15154e 100644 --- a/sdk/python/pulumi_aws/appmesh/_inputs.py +++ b/sdk/python/pulumi_aws/appmesh/_inputs.py @@ -720,7 +720,7 @@ def tcp_route(self, value: Optional[pulumi.Input['RouteSpecTcpRouteArgs']]): class RouteSpecGrpcRouteArgs: def __init__(__self__, *, action: pulumi.Input['RouteSpecGrpcRouteActionArgs'], - match: pulumi.Input['RouteSpecGrpcRouteMatchArgs'], + match: Optional[pulumi.Input['RouteSpecGrpcRouteMatchArgs']] = None, retry_policy: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']] = None, timeout: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']] = None): """ @@ -730,7 +730,8 @@ def __init__(__self__, *, :param pulumi.Input['RouteSpecGrpcRouteTimeoutArgs'] timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + if match is not None: + pulumi.set(__self__, "match", match) if retry_policy is not None: pulumi.set(__self__, "retry_policy", retry_policy) if timeout is not None: @@ -750,14 +751,14 @@ def action(self, value: pulumi.Input['RouteSpecGrpcRouteActionArgs']): @property @pulumi.getter - def match(self) -> pulumi.Input['RouteSpecGrpcRouteMatchArgs']: + def match(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchArgs']]: """ The criteria for determining an gRPC request match. """ return pulumi.get(self, "match") @match.setter - def match(self, value: pulumi.Input['RouteSpecGrpcRouteMatchArgs']): + def match(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteMatchArgs']]): pulumi.set(self, "match", value) @property diff --git a/sdk/python/pulumi_aws/appmesh/outputs.py b/sdk/python/pulumi_aws/appmesh/outputs.py index a0a79635021..6d9b46407da 100644 --- a/sdk/python/pulumi_aws/appmesh/outputs.py +++ b/sdk/python/pulumi_aws/appmesh/outputs.py @@ -666,7 +666,7 @@ def _translate_property(self, prop): class RouteSpecGrpcRoute(dict): def __init__(__self__, *, action: 'outputs.RouteSpecGrpcRouteAction', - match: 'outputs.RouteSpecGrpcRouteMatch', + match: Optional['outputs.RouteSpecGrpcRouteMatch'] = None, retry_policy: Optional['outputs.RouteSpecGrpcRouteRetryPolicy'] = None, timeout: Optional['outputs.RouteSpecGrpcRouteTimeout'] = None): """ @@ -676,7 +676,8 @@ def __init__(__self__, *, :param 'RouteSpecGrpcRouteTimeoutArgs' timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) + if match is not None: + pulumi.set(__self__, "match", match) if retry_policy is not None: pulumi.set(__self__, "retry_policy", retry_policy) if timeout is not None: @@ -692,7 +693,7 @@ def action(self) -> 'outputs.RouteSpecGrpcRouteAction': @property @pulumi.getter - def match(self) -> 'outputs.RouteSpecGrpcRouteMatch': + def match(self) -> Optional['outputs.RouteSpecGrpcRouteMatch']: """ The criteria for determining an gRPC request match. """ diff --git a/sdk/python/pulumi_aws/autoscaling/_inputs.py b/sdk/python/pulumi_aws/autoscaling/_inputs.py index 9f881207122..b5b580821ab 100644 --- a/sdk/python/pulumi_aws/autoscaling/_inputs.py +++ b/sdk/python/pulumi_aws/autoscaling/_inputs.py @@ -180,6 +180,7 @@ def __init__(__self__, *, instance_warmup: Optional[pulumi.Input[str]] = None, min_healthy_percentage: Optional[pulumi.Input[int]] = None): """ + :param pulumi.Input[str] instance_warmup: The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. :param pulumi.Input[int] min_healthy_percentage: The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. """ if instance_warmup is not None: @@ -190,6 +191,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="instanceWarmup") def instance_warmup(self) -> Optional[pulumi.Input[str]]: + """ + The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + """ return pulumi.get(self, "instance_warmup") @instance_warmup.setter diff --git a/sdk/python/pulumi_aws/autoscaling/outputs.py b/sdk/python/pulumi_aws/autoscaling/outputs.py index 5a91baa73bf..f7884e67b99 100644 --- a/sdk/python/pulumi_aws/autoscaling/outputs.py +++ b/sdk/python/pulumi_aws/autoscaling/outputs.py @@ -148,6 +148,7 @@ def __init__(__self__, *, instance_warmup: Optional[str] = None, min_healthy_percentage: Optional[int] = None): """ + :param str instance_warmup: The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. :param int min_healthy_percentage: The amount of capacity in the Auto Scaling group that must remain healthy during an instance refresh to allow the operation to continue, as a percentage of the desired capacity of the Auto Scaling group. Defaults to `90`. """ if instance_warmup is not None: @@ -158,6 +159,9 @@ def __init__(__self__, *, @property @pulumi.getter(name="instanceWarmup") def instance_warmup(self) -> Optional[str]: + """ + The number of seconds until a newly launched instance is configured and ready to use. Default behavior is to use the Auto Scaling Group's health check grace period. + """ return pulumi.get(self, "instance_warmup") @property diff --git a/sdk/python/pulumi_aws/cloudwatch/__init__.py b/sdk/python/pulumi_aws/cloudwatch/__init__.py index 2d7949b6dbe..8ff279d729b 100644 --- a/sdk/python/pulumi_aws/cloudwatch/__init__.py +++ b/sdk/python/pulumi_aws/cloudwatch/__init__.py @@ -3,6 +3,7 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .composite_alarm import * from .dashboard import * from .event_bus import * from .event_permission import * @@ -32,7 +33,9 @@ def version(self): return Module._version def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: - if typ == "aws:cloudwatch/dashboard:Dashboard": + if typ == "aws:cloudwatch/compositeAlarm:CompositeAlarm": + return CompositeAlarm(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:cloudwatch/dashboard:Dashboard": return Dashboard(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:cloudwatch/eventBus:EventBus": return EventBus(name, pulumi.ResourceOptions(urn=urn)) @@ -63,6 +66,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: _module_instance = Module() + pulumi.runtime.register_resource_module("aws", "cloudwatch/compositeAlarm", _module_instance) pulumi.runtime.register_resource_module("aws", "cloudwatch/dashboard", _module_instance) pulumi.runtime.register_resource_module("aws", "cloudwatch/eventBus", _module_instance) pulumi.runtime.register_resource_module("aws", "cloudwatch/eventPermission", _module_instance) diff --git a/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py b/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py new file mode 100644 index 00000000000..e2fb20a372b --- /dev/null +++ b/sdk/python/pulumi_aws/cloudwatch/composite_alarm.py @@ -0,0 +1,207 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = ['CompositeAlarm'] + + +class CompositeAlarm(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + actions_enabled: Optional[pulumi.Input[bool]] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + alarm_name: Optional[pulumi.Input[str]] = None, + alarm_rule: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + ## Import + + Use the `alarm_name` to import a CloudWatch Composite Alarm. For example + + ```sh + $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] actions_enabled: Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[str] alarm_description: The description for the composite alarm. + :param pulumi.Input[str] alarm_name: The name for the composite alarm. This name must be unique within the region. + :param pulumi.Input[str] alarm_rule: An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to associate with the alarm. Up to 50 tags are allowed. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['actions_enabled'] = actions_enabled + __props__['alarm_actions'] = alarm_actions + __props__['alarm_description'] = alarm_description + if alarm_name is None and not opts.urn: + raise TypeError("Missing required property 'alarm_name'") + __props__['alarm_name'] = alarm_name + if alarm_rule is None and not opts.urn: + raise TypeError("Missing required property 'alarm_rule'") + __props__['alarm_rule'] = alarm_rule + __props__['insufficient_data_actions'] = insufficient_data_actions + __props__['ok_actions'] = ok_actions + __props__['tags'] = tags + __props__['arn'] = None + super(CompositeAlarm, __self__).__init__( + 'aws:cloudwatch/compositeAlarm:CompositeAlarm', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + actions_enabled: Optional[pulumi.Input[bool]] = None, + alarm_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + alarm_description: Optional[pulumi.Input[str]] = None, + alarm_name: Optional[pulumi.Input[str]] = None, + alarm_rule: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + insufficient_data_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + ok_actions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'CompositeAlarm': + """ + Get an existing CompositeAlarm resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] actions_enabled: Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + :param pulumi.Input[Sequence[pulumi.Input[str]]] alarm_actions: The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[str] alarm_description: The description for the composite alarm. + :param pulumi.Input[str] alarm_name: The name for the composite alarm. This name must be unique within the region. + :param pulumi.Input[str] alarm_rule: An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + :param pulumi.Input[str] arn: The ARN of the composite alarm. + :param pulumi.Input[Sequence[pulumi.Input[str]]] insufficient_data_actions: The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[Sequence[pulumi.Input[str]]] ok_actions: The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to associate with the alarm. Up to 50 tags are allowed. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["actions_enabled"] = actions_enabled + __props__["alarm_actions"] = alarm_actions + __props__["alarm_description"] = alarm_description + __props__["alarm_name"] = alarm_name + __props__["alarm_rule"] = alarm_rule + __props__["arn"] = arn + __props__["insufficient_data_actions"] = insufficient_data_actions + __props__["ok_actions"] = ok_actions + __props__["tags"] = tags + return CompositeAlarm(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="actionsEnabled") + def actions_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + Indicates whether actions should be executed during any changes to the alarm state of the composite alarm. Defaults to `true`. + """ + return pulumi.get(self, "actions_enabled") + + @property + @pulumi.getter(name="alarmActions") + def alarm_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The set of actions to execute when this alarm transitions to the `ALARM` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + """ + return pulumi.get(self, "alarm_actions") + + @property + @pulumi.getter(name="alarmDescription") + def alarm_description(self) -> pulumi.Output[Optional[str]]: + """ + The description for the composite alarm. + """ + return pulumi.get(self, "alarm_description") + + @property + @pulumi.getter(name="alarmName") + def alarm_name(self) -> pulumi.Output[str]: + """ + The name for the composite alarm. This name must be unique within the region. + """ + return pulumi.get(self, "alarm_name") + + @property + @pulumi.getter(name="alarmRule") + def alarm_rule(self) -> pulumi.Output[str]: + """ + An expression that specifies which other alarms are to be evaluated to determine this composite alarm's state. For syntax, see [Creating a Composite Alarm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Composite_Alarm.html). The maximum length is 10240 characters. + """ + return pulumi.get(self, "alarm_rule") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the composite alarm. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="insufficientDataActions") + def insufficient_data_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The set of actions to execute when this alarm transitions to the `INSUFFICIENT_DATA` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + """ + return pulumi.get(self, "insufficient_data_actions") + + @property + @pulumi.getter(name="okActions") + def ok_actions(self) -> pulumi.Output[Optional[Sequence[str]]]: + """ + The set of actions to execute when this alarm transitions to an `OK` state from any other state. Each action is specified as an ARN. Up to 5 actions are allowed. + """ + return pulumi.get(self, "ok_actions") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to associate with the alarm. Up to 50 tags are allowed. + """ + return pulumi.get(self, "tags") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/codepipeline/_inputs.py b/sdk/python/pulumi_aws/codepipeline/_inputs.py index 1525afaf9fe..46fb5ae2a02 100644 --- a/sdk/python/pulumi_aws/codepipeline/_inputs.py +++ b/sdk/python/pulumi_aws/codepipeline/_inputs.py @@ -179,7 +179,7 @@ def __init__(__self__, *, :param pulumi.Input[str] category: A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. :param pulumi.Input[str] name: The action declaration's name. :param pulumi.Input[str] owner: The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. - :param pulumi.Input[str] provider: The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + :param pulumi.Input[str] provider: The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param pulumi.Input[str] version: A string that identifies the action type. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param pulumi.Input[Sequence[pulumi.Input[str]]] input_artifacts: A list of artifact names to be worked on. @@ -249,7 +249,7 @@ def owner(self, value: pulumi.Input[str]): @pulumi.getter def provider(self) -> pulumi.Input[str]: """ - The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. """ return pulumi.get(self, "provider") diff --git a/sdk/python/pulumi_aws/codepipeline/outputs.py b/sdk/python/pulumi_aws/codepipeline/outputs.py index 444ef089dc2..467453864a6 100644 --- a/sdk/python/pulumi_aws/codepipeline/outputs.py +++ b/sdk/python/pulumi_aws/codepipeline/outputs.py @@ -157,7 +157,7 @@ def __init__(__self__, *, :param str category: A category defines what kind of action can be taken in the stage, and constrains the provider type for the action. Possible values are `Approval`, `Build`, `Deploy`, `Invoke`, `Source` and `Test`. :param str name: The action declaration's name. :param str owner: The creator of the action being called. Possible values are `AWS`, `Custom` and `ThirdParty`. - :param str provider: The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + :param str provider: The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param str version: A string that identifies the action type. :param Mapping[str, str] configuration: A map of the action declaration's configuration. Configurations options for action types and providers can be found in the [Pipeline Structure Reference](http://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements) and [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. :param Sequence[str] input_artifacts: A list of artifact names to be worked on. @@ -215,7 +215,7 @@ def owner(self) -> str: @pulumi.getter def provider(self) -> str: """ - The provider of the service being called by the action. Valid providers are determined by the action category. For example, an action in the Deploy category type might have a provider of AWS CodeDeploy, which would be specified as CodeDeploy. + The provider of the service being called by the action. Valid providers are determined by the action category. Provider names are listed in the [Action Structure Reference](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) documentation. """ return pulumi.get(self, "provider") diff --git a/sdk/python/pulumi_aws/codepipeline/pipeline.py b/sdk/python/pulumi_aws/codepipeline/pipeline.py index b8b2dd327cc..c4718ae3dc4 100644 --- a/sdk/python/pulumi_aws/codepipeline/pipeline.py +++ b/sdk/python/pulumi_aws/codepipeline/pipeline.py @@ -34,6 +34,7 @@ def __init__(__self__, import pulumi import pulumi_aws as aws + example = aws.codestarconnections.Connection("example", provider_type="GitHub") codepipeline_bucket = aws.s3.Bucket("codepipelineBucket", acl="private") codepipeline_role = aws.iam.Role("codepipelineRole", assume_role_policy=\"\"\"{ "Version": "2012-10-17", @@ -65,15 +66,14 @@ def __init__(__self__, actions=[aws.codepipeline.PipelineStageActionArgs( name="Source", category="Source", - owner="ThirdParty", - provider="GitHub", + owner="AWS", + provider="CodeStarSourceConnection", version="1", output_artifacts=["source_output"], configuration={ - "Owner": "my-organization", - "Repo": "test", - "Branch": "master", - "OAuthToken": var["github_token"], + "ConnectionArn": example.arn, + "FullRepositoryId": "my-organization/example", + "BranchName": "main", }, )], ), diff --git a/sdk/python/pulumi_aws/codestarconnections/connection.py b/sdk/python/pulumi_aws/codestarconnections/connection.py index bdd1ffdd0b2..89b59581a8e 100644 --- a/sdk/python/pulumi_aws/codestarconnections/connection.py +++ b/sdk/python/pulumi_aws/codestarconnections/connection.py @@ -46,10 +46,9 @@ def __init__(__self__, version="1", output_artifacts=["source_output"], configuration={ - "Owner": "my-organization", "ConnectionArn": example_connection.arn, - "Repo": "foo/test", - "Branch": "master", + "FullRepositoryId": "my-organization/test", + "BranchName": "main", }, )], ), diff --git a/sdk/python/pulumi_aws/dms/_inputs.py b/sdk/python/pulumi_aws/dms/_inputs.py index 84f8339762a..d7c06f696a3 100644 --- a/sdk/python/pulumi_aws/dms/_inputs.py +++ b/sdk/python/pulumi_aws/dms/_inputs.py @@ -289,6 +289,7 @@ def __init__(__self__, *, compression_type: Optional[pulumi.Input[str]] = None, csv_delimiter: Optional[pulumi.Input[str]] = None, csv_row_delimiter: Optional[pulumi.Input[str]] = None, + date_partition_enabled: Optional[pulumi.Input[bool]] = None, external_table_definition: Optional[pulumi.Input[str]] = None, service_access_role_arn: Optional[pulumi.Input[str]] = None): """ @@ -297,6 +298,7 @@ def __init__(__self__, *, :param pulumi.Input[str] compression_type: Set to compress target files. Defaults to `NONE`. Valid values are `GZIP` and `NONE`. :param pulumi.Input[str] csv_delimiter: Delimiter used to separate columns in the source files. Defaults to `,`. :param pulumi.Input[str] csv_row_delimiter: Delimiter used to separate rows in the source files. Defaults to `\n`. + :param pulumi.Input[bool] date_partition_enabled: Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. :param pulumi.Input[str] external_table_definition: JSON document that describes how AWS DMS should interpret the data. :param pulumi.Input[str] service_access_role_arn: Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket. """ @@ -310,6 +312,8 @@ def __init__(__self__, *, pulumi.set(__self__, "csv_delimiter", csv_delimiter) if csv_row_delimiter is not None: pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + if date_partition_enabled is not None: + pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) if external_table_definition is not None: pulumi.set(__self__, "external_table_definition", external_table_definition) if service_access_role_arn is not None: @@ -375,6 +379,18 @@ def csv_row_delimiter(self) -> Optional[pulumi.Input[str]]: def csv_row_delimiter(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "csv_row_delimiter", value) + @property + @pulumi.getter(name="datePartitionEnabled") + def date_partition_enabled(self) -> Optional[pulumi.Input[bool]]: + """ + Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + """ + return pulumi.get(self, "date_partition_enabled") + + @date_partition_enabled.setter + def date_partition_enabled(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "date_partition_enabled", value) + @property @pulumi.getter(name="externalTableDefinition") def external_table_definition(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_aws/dms/outputs.py b/sdk/python/pulumi_aws/dms/outputs.py index 8db88079a78..18accbe87e9 100644 --- a/sdk/python/pulumi_aws/dms/outputs.py +++ b/sdk/python/pulumi_aws/dms/outputs.py @@ -241,6 +241,7 @@ def __init__(__self__, *, compression_type: Optional[str] = None, csv_delimiter: Optional[str] = None, csv_row_delimiter: Optional[str] = None, + date_partition_enabled: Optional[bool] = None, external_table_definition: Optional[str] = None, service_access_role_arn: Optional[str] = None): """ @@ -249,6 +250,7 @@ def __init__(__self__, *, :param str compression_type: Set to compress target files. Defaults to `NONE`. Valid values are `GZIP` and `NONE`. :param str csv_delimiter: Delimiter used to separate columns in the source files. Defaults to `,`. :param str csv_row_delimiter: Delimiter used to separate rows in the source files. Defaults to `\n`. + :param bool date_partition_enabled: Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. :param str external_table_definition: JSON document that describes how AWS DMS should interpret the data. :param str service_access_role_arn: Amazon Resource Name (ARN) of the IAM Role with permissions to read from or write to the S3 Bucket. """ @@ -262,6 +264,8 @@ def __init__(__self__, *, pulumi.set(__self__, "csv_delimiter", csv_delimiter) if csv_row_delimiter is not None: pulumi.set(__self__, "csv_row_delimiter", csv_row_delimiter) + if date_partition_enabled is not None: + pulumi.set(__self__, "date_partition_enabled", date_partition_enabled) if external_table_definition is not None: pulumi.set(__self__, "external_table_definition", external_table_definition) if service_access_role_arn is not None: @@ -307,6 +311,14 @@ def csv_row_delimiter(self) -> Optional[str]: """ return pulumi.get(self, "csv_row_delimiter") + @property + @pulumi.getter(name="datePartitionEnabled") + def date_partition_enabled(self) -> Optional[bool]: + """ + Partition S3 bucket folders based on transaction commit dates. Defaults to `false`. + """ + return pulumi.get(self, "date_partition_enabled") + @property @pulumi.getter(name="externalTableDefinition") def external_table_definition(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/ec2/_inputs.py b/sdk/python/pulumi_aws/ec2/_inputs.py index 55e85d4bc76..38079bd5a12 100644 --- a/sdk/python/pulumi_aws/ec2/_inputs.py +++ b/sdk/python/pulumi_aws/ec2/_inputs.py @@ -1827,7 +1827,7 @@ class InstanceCreditSpecificationArgs: def __init__(__self__, *, cpu_credits: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] cpu_credits: The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + :param pulumi.Input[str] cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ if cpu_credits is not None: pulumi.set(__self__, "cpu_credits", cpu_credits) @@ -1836,7 +1836,7 @@ def __init__(__self__, *, @pulumi.getter(name="cpuCredits") def cpu_credits(self) -> Optional[pulumi.Input[str]]: """ - The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ return pulumi.get(self, "cpu_credits") @@ -1854,25 +1854,23 @@ def __init__(__self__, *, iops: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, throughput: Optional[pulumi.Input[int]] = None, volume_id: Optional[pulumi.Input[str]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] device_name: The name of the device to mount. - :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param pulumi.Input[bool] encrypted: Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. - :param pulumi.Input[int] iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param pulumi.Input[str] device_name: Name of the device to mount. + :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param pulumi.Input[bool] encrypted: Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + :param pulumi.Input[int] iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param pulumi.Input[str] snapshot_id: The Snapshot ID to mount. - :param pulumi.Input[int] throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param pulumi.Input[int] volume_size: The size of the volume in gibibytes (GiB). - :param pulumi.Input[str] volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param pulumi.Input[str] snapshot_id: Snapshot ID to mount. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the device. + :param pulumi.Input[int] throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param pulumi.Input[str] volume_id: ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + :param pulumi.Input[int] volume_size: Size of the volume in gibibytes (GiB). + :param pulumi.Input[str] volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ pulumi.set(__self__, "device_name", device_name) if delete_on_termination is not None: @@ -1885,6 +1883,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if snapshot_id is not None: pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -1898,7 +1898,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceName") def device_name(self) -> pulumi.Input[str]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -1910,8 +1910,7 @@ def device_name(self, value: pulumi.Input[str]): @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[pulumi.Input[bool]]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -1923,9 +1922,7 @@ def delete_on_termination(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -1937,9 +1934,7 @@ def encrypted(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def iops(self) -> Optional[pulumi.Input[int]]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -1963,7 +1958,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="snapshotId") def snapshot_id(self) -> Optional[pulumi.Input[str]]: """ - The Snapshot ID to mount. + Snapshot ID to mount. """ return pulumi.get(self, "snapshot_id") @@ -1971,11 +1966,23 @@ def snapshot_id(self) -> Optional[pulumi.Input[str]]: def snapshot_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "snapshot_id", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + @property @pulumi.getter def throughput(self) -> Optional[pulumi.Input[int]]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -1986,6 +1993,9 @@ def throughput(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="volumeId") def volume_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + """ return pulumi.get(self, "volume_id") @volume_id.setter @@ -1996,7 +2006,7 @@ def volume_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[pulumi.Input[int]]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -2008,7 +2018,7 @@ def volume_size(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[pulumi.Input[str]]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -2022,7 +2032,7 @@ class InstanceEnclaveOptionsArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[bool] enabled: Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + :param pulumi.Input[bool] enabled: Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -2031,7 +2041,7 @@ def __init__(__self__, *, @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ return pulumi.get(self, "enabled") @@ -2049,9 +2059,7 @@ def __init__(__self__, *, """ :param pulumi.Input[str] device_name: The name of the block device to mount on the instance. :param pulumi.Input[bool] no_device: Suppresses the specified device included in the AMI's block device mapping. - :param pulumi.Input[str] virtual_name: The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + :param pulumi.Input[str] virtual_name: [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ pulumi.set(__self__, "device_name", device_name) if no_device is not None: @@ -2087,9 +2095,7 @@ def no_device(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="virtualName") def virtual_name(self) -> Optional[pulumi.Input[str]]: """ - The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ return pulumi.get(self, "virtual_name") @@ -2105,9 +2111,9 @@ def __init__(__self__, *, http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, http_tokens: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). - :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). - :param pulumi.Input[str] http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. + :param pulumi.Input[int] http_put_response_hop_limit: Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. + :param pulumi.Input[str] http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ if http_endpoint is not None: pulumi.set(__self__, "http_endpoint", http_endpoint) @@ -2120,7 +2126,7 @@ def __init__(__self__, *, @pulumi.getter(name="httpEndpoint") def http_endpoint(self) -> Optional[pulumi.Input[str]]: """ - Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. """ return pulumi.get(self, "http_endpoint") @@ -2132,7 +2138,7 @@ def http_endpoint(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="httpPutResponseHopLimit") def http_put_response_hop_limit(self) -> Optional[pulumi.Input[int]]: """ - The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. """ return pulumi.get(self, "http_put_response_hop_limit") @@ -2144,7 +2150,7 @@ def http_put_response_hop_limit(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="httpTokens") def http_tokens(self) -> Optional[pulumi.Input[str]]: """ - Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ return pulumi.get(self, "http_tokens") @@ -2160,8 +2166,8 @@ def __init__(__self__, *, network_interface_id: pulumi.Input[str], delete_on_termination: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[int] device_index: The integer index of the network interface attachment. Limited by instance type. - :param pulumi.Input[str] network_interface_id: The ID of the network interface to attach. + :param pulumi.Input[int] device_index: Integer index of the network interface attachment. Limited by instance type. + :param pulumi.Input[str] network_interface_id: ID of the network interface to attach. :param pulumi.Input[bool] delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. """ pulumi.set(__self__, "device_index", device_index) @@ -2173,7 +2179,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceIndex") def device_index(self) -> pulumi.Input[int]: """ - The integer index of the network interface attachment. Limited by instance type. + Integer index of the network interface attachment. Limited by instance type. """ return pulumi.get(self, "device_index") @@ -2185,7 +2191,7 @@ def device_index(self, value: pulumi.Input[int]): @pulumi.getter(name="networkInterfaceId") def network_interface_id(self) -> pulumi.Input[str]: """ - The ID of the network interface to attach. + ID of the network interface to attach. """ return pulumi.get(self, "network_interface_id") @@ -2214,21 +2220,22 @@ def __init__(__self__, *, encrypted: Optional[pulumi.Input[bool]] = None, iops: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, throughput: Optional[pulumi.Input[int]] = None, volume_id: Optional[pulumi.Input[str]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param pulumi.Input[str] device_name: The name of the device to mount. - :param pulumi.Input[bool] encrypted: Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. - :param pulumi.Input[int] iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param pulumi.Input[str] device_name: Name of the device to mount. + :param pulumi.Input[bool] encrypted: Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. + :param pulumi.Input[int] iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param pulumi.Input[int] throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param pulumi.Input[int] volume_size: The size of the volume in gibibytes (GiB). - :param pulumi.Input[str] volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the device. + :param pulumi.Input[int] throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param pulumi.Input[str] volume_id: ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + :param pulumi.Input[int] volume_size: Size of the volume in gibibytes (GiB). + :param pulumi.Input[str] volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -2240,6 +2247,8 @@ def __init__(__self__, *, pulumi.set(__self__, "iops", iops) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -2253,8 +2262,7 @@ def __init__(__self__, *, @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[pulumi.Input[bool]]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -2266,7 +2274,7 @@ def delete_on_termination(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="deviceName") def device_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -2278,7 +2286,7 @@ def device_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -2290,8 +2298,7 @@ def encrypted(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def iops(self) -> Optional[pulumi.Input[int]]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -2311,11 +2318,23 @@ def kms_key_id(self) -> Optional[pulumi.Input[str]]: def kms_key_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "kms_key_id", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + @property @pulumi.getter def throughput(self) -> Optional[pulumi.Input[int]]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -2326,6 +2345,9 @@ def throughput(self, value: Optional[pulumi.Input[int]]): @property @pulumi.getter(name="volumeId") def volume_id(self) -> Optional[pulumi.Input[str]]: + """ + ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + """ return pulumi.get(self, "volume_id") @volume_id.setter @@ -2336,7 +2358,7 @@ def volume_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[pulumi.Input[int]]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -2348,7 +2370,7 @@ def volume_size(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[pulumi.Input[str]]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -5417,7 +5439,7 @@ class SpotInstanceRequestCreditSpecificationArgs: def __init__(__self__, *, cpu_credits: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] cpu_credits: The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + :param pulumi.Input[str] cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ if cpu_credits is not None: pulumi.set(__self__, "cpu_credits", cpu_credits) @@ -5426,7 +5448,7 @@ def __init__(__self__, *, @pulumi.getter(name="cpuCredits") def cpu_credits(self) -> Optional[pulumi.Input[str]]: """ - The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ return pulumi.get(self, "cpu_credits") @@ -5444,25 +5466,22 @@ def __init__(__self__, *, iops: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, snapshot_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, throughput: Optional[pulumi.Input[int]] = None, volume_id: Optional[pulumi.Input[str]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] device_name: The name of the device to mount. - :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param pulumi.Input[bool] encrypted: Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. - :param pulumi.Input[int] iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param pulumi.Input[str] device_name: Name of the device to mount. + :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param pulumi.Input[bool] encrypted: Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + :param pulumi.Input[int] iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param pulumi.Input[str] snapshot_id: The Snapshot ID to mount. - :param pulumi.Input[int] throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param pulumi.Input[int] volume_size: The size of the volume in gibibytes (GiB). - :param pulumi.Input[str] volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param pulumi.Input[str] snapshot_id: Snapshot ID to mount. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the device. + :param pulumi.Input[int] throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param pulumi.Input[int] volume_size: Size of the volume in gibibytes (GiB). + :param pulumi.Input[str] volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ pulumi.set(__self__, "device_name", device_name) if delete_on_termination is not None: @@ -5475,6 +5494,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if snapshot_id is not None: pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -5488,7 +5509,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceName") def device_name(self) -> pulumi.Input[str]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -5500,8 +5521,7 @@ def device_name(self, value: pulumi.Input[str]): @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[pulumi.Input[bool]]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -5513,9 +5533,7 @@ def delete_on_termination(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -5527,9 +5545,7 @@ def encrypted(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def iops(self) -> Optional[pulumi.Input[int]]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -5553,7 +5569,7 @@ def kms_key_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="snapshotId") def snapshot_id(self) -> Optional[pulumi.Input[str]]: """ - The Snapshot ID to mount. + Snapshot ID to mount. """ return pulumi.get(self, "snapshot_id") @@ -5561,11 +5577,23 @@ def snapshot_id(self) -> Optional[pulumi.Input[str]]: def snapshot_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "snapshot_id", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + @property @pulumi.getter def throughput(self) -> Optional[pulumi.Input[int]]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -5586,7 +5614,7 @@ def volume_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[pulumi.Input[int]]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -5598,7 +5626,7 @@ def volume_size(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[pulumi.Input[str]]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -5612,7 +5640,7 @@ class SpotInstanceRequestEnclaveOptionsArgs: def __init__(__self__, *, enabled: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[bool] enabled: Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + :param pulumi.Input[bool] enabled: Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -5621,7 +5649,7 @@ def __init__(__self__, *, @pulumi.getter def enabled(self) -> Optional[pulumi.Input[bool]]: """ - Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ return pulumi.get(self, "enabled") @@ -5639,9 +5667,7 @@ def __init__(__self__, *, """ :param pulumi.Input[str] device_name: The name of the block device to mount on the instance. :param pulumi.Input[bool] no_device: Suppresses the specified device included in the AMI's block device mapping. - :param pulumi.Input[str] virtual_name: The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + :param pulumi.Input[str] virtual_name: [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ pulumi.set(__self__, "device_name", device_name) if no_device is not None: @@ -5677,9 +5703,7 @@ def no_device(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="virtualName") def virtual_name(self) -> Optional[pulumi.Input[str]]: """ - The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ return pulumi.get(self, "virtual_name") @@ -5695,9 +5719,9 @@ def __init__(__self__, *, http_put_response_hop_limit: Optional[pulumi.Input[int]] = None, http_tokens: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). - :param pulumi.Input[int] http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). - :param pulumi.Input[str] http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + :param pulumi.Input[str] http_endpoint: Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. + :param pulumi.Input[int] http_put_response_hop_limit: Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. + :param pulumi.Input[str] http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ if http_endpoint is not None: pulumi.set(__self__, "http_endpoint", http_endpoint) @@ -5710,7 +5734,7 @@ def __init__(__self__, *, @pulumi.getter(name="httpEndpoint") def http_endpoint(self) -> Optional[pulumi.Input[str]]: """ - Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. """ return pulumi.get(self, "http_endpoint") @@ -5722,7 +5746,7 @@ def http_endpoint(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="httpPutResponseHopLimit") def http_put_response_hop_limit(self) -> Optional[pulumi.Input[int]]: """ - The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. """ return pulumi.get(self, "http_put_response_hop_limit") @@ -5734,7 +5758,7 @@ def http_put_response_hop_limit(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="httpTokens") def http_tokens(self) -> Optional[pulumi.Input[str]]: """ - Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ return pulumi.get(self, "http_tokens") @@ -5750,8 +5774,8 @@ def __init__(__self__, *, network_interface_id: pulumi.Input[str], delete_on_termination: Optional[pulumi.Input[bool]] = None): """ - :param pulumi.Input[int] device_index: The integer index of the network interface attachment. Limited by instance type. - :param pulumi.Input[str] network_interface_id: The ID of the network interface to attach. + :param pulumi.Input[int] device_index: Integer index of the network interface attachment. Limited by instance type. + :param pulumi.Input[str] network_interface_id: ID of the network interface to attach. :param pulumi.Input[bool] delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. """ pulumi.set(__self__, "device_index", device_index) @@ -5763,7 +5787,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceIndex") def device_index(self) -> pulumi.Input[int]: """ - The integer index of the network interface attachment. Limited by instance type. + Integer index of the network interface attachment. Limited by instance type. """ return pulumi.get(self, "device_index") @@ -5775,7 +5799,7 @@ def device_index(self, value: pulumi.Input[int]): @pulumi.getter(name="networkInterfaceId") def network_interface_id(self) -> pulumi.Input[str]: """ - The ID of the network interface to attach. + ID of the network interface to attach. """ return pulumi.get(self, "network_interface_id") @@ -5804,21 +5828,21 @@ def __init__(__self__, *, encrypted: Optional[pulumi.Input[bool]] = None, iops: Optional[pulumi.Input[int]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, throughput: Optional[pulumi.Input[int]] = None, volume_id: Optional[pulumi.Input[str]] = None, volume_size: Optional[pulumi.Input[int]] = None, volume_type: Optional[pulumi.Input[str]] = None): """ - :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param pulumi.Input[str] device_name: The name of the device to mount. - :param pulumi.Input[bool] encrypted: Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. - :param pulumi.Input[int] iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param pulumi.Input[bool] delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param pulumi.Input[str] device_name: Name of the device to mount. + :param pulumi.Input[bool] encrypted: Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. + :param pulumi.Input[int] iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param pulumi.Input[str] kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param pulumi.Input[int] throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param pulumi.Input[int] volume_size: The size of the volume in gibibytes (GiB). - :param pulumi.Input[str] volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the device. + :param pulumi.Input[int] throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param pulumi.Input[int] volume_size: Size of the volume in gibibytes (GiB). + :param pulumi.Input[str] volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -5830,6 +5854,8 @@ def __init__(__self__, *, pulumi.set(__self__, "iops", iops) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -5843,8 +5869,7 @@ def __init__(__self__, *, @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[pulumi.Input[bool]]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -5856,7 +5881,7 @@ def delete_on_termination(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="deviceName") def device_name(self) -> Optional[pulumi.Input[str]]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -5868,7 +5893,7 @@ def device_name(self, value: Optional[pulumi.Input[str]]): @pulumi.getter def encrypted(self) -> Optional[pulumi.Input[bool]]: """ - Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -5880,8 +5905,7 @@ def encrypted(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter def iops(self) -> Optional[pulumi.Input[int]]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -5901,11 +5925,23 @@ def kms_key_id(self) -> Optional[pulumi.Input[str]]: def kms_key_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "kms_key_id", value) + @property + @pulumi.getter + def tags(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + + @tags.setter + def tags(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "tags", value) + @property @pulumi.getter def throughput(self) -> Optional[pulumi.Input[int]]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -5926,7 +5962,7 @@ def volume_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[pulumi.Input[int]]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -5938,7 +5974,7 @@ def volume_size(self, value: Optional[pulumi.Input[int]]): @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[pulumi.Input[str]]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") diff --git a/sdk/python/pulumi_aws/ec2/instance.py b/sdk/python/pulumi_aws/ec2/instance.py index cd42aa04026..6948b2b57f9 100644 --- a/sdk/python/pulumi_aws/ec2/instance.py +++ b/sdk/python/pulumi_aws/ec2/instance.py @@ -58,10 +58,10 @@ def __init__(__self__, __name__=None, __opts__=None): """ - Provides an EC2 instance resource. This allows instances to be created, updated, - and deleted. + Provides an EC2 instance resource. This allows instances to be created, updated, and deleted. ## Example Usage + ### Basic Example Using AMI Lookup ```python import pulumi @@ -86,6 +86,41 @@ def __init__(__self__, "Name": "HelloWorld", }) ``` + ### Network and Credit Specification Example + + ```python + import pulumi + import pulumi_aws as aws + + my_vpc = aws.ec2.Vpc("myVpc", + cidr_block="172.16.0.0/16", + tags={ + "Name": "tf-example", + }) + my_subnet = aws.ec2.Subnet("mySubnet", + vpc_id=my_vpc.id, + cidr_block="172.16.10.0/24", + availability_zone="us-west-2a", + tags={ + "Name": "tf-example", + }) + foo_network_interface = aws.ec2.NetworkInterface("fooNetworkInterface", + subnet_id=my_subnet.id, + private_ips=["172.16.10.100"], + tags={ + "Name": "primary_network_interface", + }) + foo_instance = aws.ec2.Instance("fooInstance", + ami="ami-005e54dee72cc1d00", + instance_type="t2.micro", + network_interfaces=[aws.ec2.InstanceNetworkInterfaceArgs( + network_interface_id=foo_network_interface.id, + device_index=0, + )], + credit_specification=aws.ec2.InstanceCreditSpecificationArgs( + cpu_credits="unlimited", + )) + ``` ## Import @@ -97,57 +132,41 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] ami: The AMI to use for the instance. - :param pulumi.Input[bool] associate_public_ip_address: Associate a public ip address with an instance in a VPC. Boolean value. - :param pulumi.Input[str] availability_zone: The AZ to start the instance in. - :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + :param pulumi.Input[str] ami: AMI to use for the instance. + :param pulumi.Input[bool] associate_public_ip_address: Whether to associate a public IP address with an instance in a VPC. + :param pulumi.Input[str] availability_zone: AZ to start the instance in. + :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. :param pulumi.Input[int] cpu_threads_per_core: If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. :param pulumi.Input[pulumi.InputType['InstanceCreditSpecificationArgs']] credit_specification: Customize the credit specification of the instance. See Credit Specification below for more details. - :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. - :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. :param pulumi.Input[pulumi.InputType['InstanceEnclaveOptionsArgs']] enclave_options: Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. :param pulumi.Input[bool] get_password_data: If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. :param pulumi.Input[bool] hibernation: If true, the launched EC2 instance will support hibernation. - :param pulumi.Input[str] host_id: The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. - :param pulumi.Input[str] iam_instance_profile: The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. - :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. - :param pulumi.Input[Union[str, 'InstanceType']] instance_type: The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + :param pulumi.Input[str] host_id: ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + :param pulumi.Input[Union[str, 'InstanceType']] instance_type: Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface - :param pulumi.Input[str] key_name: The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + :param pulumi.Input[str] key_name: Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. :param pulumi.Input[pulumi.InputType['InstanceMetadataOptionsArgs']] metadata_options: Customize the metadata options of the instance. See Metadata Options below for more details. :param pulumi.Input[bool] monitoring: If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceNetworkInterfaceArgs']]]] network_interfaces: Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. - :param pulumi.Input[str] placement_group: The Placement Group to start the instance in. - :param pulumi.Input[str] private_ip: Private IP address to associate with the - instance in a VPC. - :param pulumi.Input[pulumi.InputType['InstanceRootBlockDeviceArgs']] root_block_device: Customize details about the root block - device of the instance. See Block Devices below for details. + :param pulumi.Input[str] placement_group: Placement Group to start the instance in. + :param pulumi.Input[str] private_ip: Private IP address to associate with the instance in a VPC. + :param pulumi.Input[pulumi.InputType['InstanceRootBlockDeviceArgs']] root_block_device: Customize details about the root block device of the instance. See Block Devices below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ips: A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `network_interface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. - :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. - :param pulumi.Input[str] subnet_id: The VPC Subnet ID to launch in. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. - :param pulumi.Input[Union[str, 'Tenancy']] tenancy: The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. - :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + :param pulumi.Input[str] subnet_id: VPC Subnet ID to launch in. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. + :param pulumi.Input[Union[str, 'Tenancy']] tenancy: Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + :param pulumi.Input[str] user_data: User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign to the devices created by the instance at launch time. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign, at instance-creation time, to root and EBS volumes. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. """ if __name__ is not None: @@ -279,72 +298,49 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] ami: The AMI to use for the instance. + :param pulumi.Input[str] ami: AMI to use for the instance. :param pulumi.Input[str] arn: The ARN of the instance. - :param pulumi.Input[bool] associate_public_ip_address: Associate a public ip address with an instance in a VPC. Boolean value. - :param pulumi.Input[str] availability_zone: The AZ to start the instance in. - :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + :param pulumi.Input[bool] associate_public_ip_address: Whether to associate a public IP address with an instance in a VPC. + :param pulumi.Input[str] availability_zone: AZ to start the instance in. + :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. :param pulumi.Input[int] cpu_threads_per_core: If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. :param pulumi.Input[pulumi.InputType['InstanceCreditSpecificationArgs']] credit_specification: Customize the credit specification of the instance. See Credit Specification below for more details. - :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. - :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. :param pulumi.Input[pulumi.InputType['InstanceEnclaveOptionsArgs']] enclave_options: Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. :param pulumi.Input[bool] get_password_data: If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. :param pulumi.Input[bool] hibernation: If true, the launched EC2 instance will support hibernation. - :param pulumi.Input[str] host_id: The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. - :param pulumi.Input[str] iam_instance_profile: The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. - :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + :param pulumi.Input[str] host_id: ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. :param pulumi.Input[str] instance_state: The state of the instance. One of: `pending`, `running`, `shutting-down`, `terminated`, `stopping`, `stopped`. See [Instance Lifecycle](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html) for more information. - :param pulumi.Input[Union[str, 'InstanceType']] instance_type: The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + :param pulumi.Input[Union[str, 'InstanceType']] instance_type: Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface - :param pulumi.Input[str] key_name: The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + :param pulumi.Input[str] key_name: Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. :param pulumi.Input[pulumi.InputType['InstanceMetadataOptionsArgs']] metadata_options: Customize the metadata options of the instance. See Metadata Options below for more details. :param pulumi.Input[bool] monitoring: If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['InstanceNetworkInterfaceArgs']]]] network_interfaces: Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. :param pulumi.Input[str] outpost_arn: The ARN of the Outpost the instance is assigned to. - :param pulumi.Input[str] password_data: Base-64 encoded encrypted password data for the instance. - Useful for getting the administrator password for instances running Microsoft Windows. - This attribute is only exported if `get_password_data` is true. - Note that this encrypted value will be stored in the state file, as with all exported attributes. - See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. - :param pulumi.Input[str] placement_group: The Placement Group to start the instance in. + :param pulumi.Input[str] password_data: Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + :param pulumi.Input[str] placement_group: Placement Group to start the instance in. :param pulumi.Input[str] primary_network_interface_id: The ID of the instance's primary network interface. - :param pulumi.Input[str] private_dns: The private DNS name assigned to the instance. Can only be - used inside the Amazon EC2, and only available if you've enabled DNS hostnames - for your VPC - :param pulumi.Input[str] private_ip: Private IP address to associate with the - instance in a VPC. - :param pulumi.Input[str] public_dns: The public DNS name assigned to the instance. For EC2-VPC, this - is only available if you've enabled DNS hostnames for your VPC - :param pulumi.Input[str] public_ip: The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached. - :param pulumi.Input[pulumi.InputType['InstanceRootBlockDeviceArgs']] root_block_device: Customize details about the root block - device of the instance. See Block Devices below for details. + :param pulumi.Input[str] private_dns: The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. + :param pulumi.Input[str] private_ip: Private IP address to associate with the instance in a VPC. + :param pulumi.Input[str] public_dns: The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. + :param pulumi.Input[str] public_ip: The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached. + :param pulumi.Input[pulumi.InputType['InstanceRootBlockDeviceArgs']] root_block_device: Customize details about the root block device of the instance. See Block Devices below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ips: A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `network_interface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. - :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. - :param pulumi.Input[str] subnet_id: The VPC Subnet ID to launch in. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. - :param pulumi.Input[Union[str, 'Tenancy']] tenancy: The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. - :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + :param pulumi.Input[str] subnet_id: VPC Subnet ID to launch in. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. + :param pulumi.Input[Union[str, 'Tenancy']] tenancy: Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + :param pulumi.Input[str] user_data: User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign to the devices created by the instance at launch time. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign, at instance-creation time, to root and EBS volumes. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -401,7 +397,7 @@ def get(resource_name: str, @pulumi.getter def ami(self) -> pulumi.Output[str]: """ - The AMI to use for the instance. + AMI to use for the instance. """ return pulumi.get(self, "ami") @@ -417,7 +413,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter(name="associatePublicIpAddress") def associate_public_ip_address(self) -> pulumi.Output[bool]: """ - Associate a public ip address with an instance in a VPC. Boolean value. + Whether to associate a public IP address with an instance in a VPC. """ return pulumi.get(self, "associate_public_ip_address") @@ -425,7 +421,7 @@ def associate_public_ip_address(self) -> pulumi.Output[bool]: @pulumi.getter(name="availabilityZone") def availability_zone(self) -> pulumi.Output[str]: """ - The AZ to start the instance in. + AZ to start the instance in. """ return pulumi.get(self, "availability_zone") @@ -433,9 +429,7 @@ def availability_zone(self) -> pulumi.Output[str]: @pulumi.getter(name="cpuCoreCount") def cpu_core_count(self) -> pulumi.Output[int]: """ - Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. """ return pulumi.get(self, "cpu_core_count") @@ -459,8 +453,7 @@ def credit_specification(self) -> pulumi.Output[Optional['outputs.InstanceCredit @pulumi.getter(name="disableApiTermination") def disable_api_termination(self) -> pulumi.Output[Optional[bool]]: """ - If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). """ return pulumi.get(self, "disable_api_termination") @@ -468,8 +461,7 @@ def disable_api_termination(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="ebsBlockDevices") def ebs_block_devices(self) -> pulumi.Output[Sequence['outputs.InstanceEbsBlockDevice']]: """ - Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. """ return pulumi.get(self, "ebs_block_devices") @@ -477,11 +469,7 @@ def ebs_block_devices(self) -> pulumi.Output[Sequence['outputs.InstanceEbsBlockD @pulumi.getter(name="ebsOptimized") def ebs_optimized(self) -> pulumi.Output[Optional[bool]]: """ - If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. """ return pulumi.get(self, "ebs_optimized") @@ -497,8 +485,7 @@ def enclave_options(self) -> pulumi.Output['outputs.InstanceEnclaveOptions']: @pulumi.getter(name="ephemeralBlockDevices") def ephemeral_block_devices(self) -> pulumi.Output[Sequence['outputs.InstanceEphemeralBlockDevice']]: """ - Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. """ return pulumi.get(self, "ephemeral_block_devices") @@ -522,7 +509,7 @@ def hibernation(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="hostId") def host_id(self) -> pulumi.Output[str]: """ - The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. """ return pulumi.get(self, "host_id") @@ -530,8 +517,7 @@ def host_id(self) -> pulumi.Output[str]: @pulumi.getter(name="iamInstanceProfile") def iam_instance_profile(self) -> pulumi.Output[Optional[str]]: """ - The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. """ return pulumi.get(self, "iam_instance_profile") @@ -539,10 +525,7 @@ def iam_instance_profile(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="instanceInitiatedShutdownBehavior") def instance_initiated_shutdown_behavior(self) -> pulumi.Output[Optional[str]]: """ - Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. """ return pulumi.get(self, "instance_initiated_shutdown_behavior") @@ -558,7 +541,7 @@ def instance_state(self) -> pulumi.Output[str]: @pulumi.getter(name="instanceType") def instance_type(self) -> pulumi.Output[str]: """ - The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. """ return pulumi.get(self, "instance_type") @@ -582,7 +565,7 @@ def ipv6_addresses(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="keyName") def key_name(self) -> pulumi.Output[str]: """ - The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. """ return pulumi.get(self, "key_name") @@ -622,11 +605,7 @@ def outpost_arn(self) -> pulumi.Output[str]: @pulumi.getter(name="passwordData") def password_data(self) -> pulumi.Output[str]: """ - Base-64 encoded encrypted password data for the instance. - Useful for getting the administrator password for instances running Microsoft Windows. - This attribute is only exported if `get_password_data` is true. - Note that this encrypted value will be stored in the state file, as with all exported attributes. - See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. + Base-64 encoded encrypted password data for the instance. Useful for getting the administrator password for instances running Microsoft Windows. This attribute is only exported if `get_password_data` is true. Note that this encrypted value will be stored in the state file, as with all exported attributes. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. """ return pulumi.get(self, "password_data") @@ -634,7 +613,7 @@ def password_data(self) -> pulumi.Output[str]: @pulumi.getter(name="placementGroup") def placement_group(self) -> pulumi.Output[str]: """ - The Placement Group to start the instance in. + Placement Group to start the instance in. """ return pulumi.get(self, "placement_group") @@ -650,9 +629,7 @@ def primary_network_interface_id(self) -> pulumi.Output[str]: @pulumi.getter(name="privateDns") def private_dns(self) -> pulumi.Output[str]: """ - The private DNS name assigned to the instance. Can only be - used inside the Amazon EC2, and only available if you've enabled DNS hostnames - for your VPC + The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. """ return pulumi.get(self, "private_dns") @@ -660,8 +637,7 @@ def private_dns(self) -> pulumi.Output[str]: @pulumi.getter(name="privateIp") def private_ip(self) -> pulumi.Output[str]: """ - Private IP address to associate with the - instance in a VPC. + Private IP address to associate with the instance in a VPC. """ return pulumi.get(self, "private_ip") @@ -669,8 +645,7 @@ def private_ip(self) -> pulumi.Output[str]: @pulumi.getter(name="publicDns") def public_dns(self) -> pulumi.Output[str]: """ - The public DNS name assigned to the instance. For EC2-VPC, this - is only available if you've enabled DNS hostnames for your VPC + The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. """ return pulumi.get(self, "public_dns") @@ -678,7 +653,7 @@ def public_dns(self) -> pulumi.Output[str]: @pulumi.getter(name="publicIp") def public_ip(self) -> pulumi.Output[str]: """ - The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip`, as this field will change after the EIP is attached. + The public IP address assigned to the instance, if applicable. **NOTE**: If you are using an `ec2.Eip` with your instance, you should refer to the EIP's address directly and not use `public_ip` as this field will change after the EIP is attached. """ return pulumi.get(self, "public_ip") @@ -686,8 +661,7 @@ def public_ip(self) -> pulumi.Output[str]: @pulumi.getter(name="rootBlockDevice") def root_block_device(self) -> pulumi.Output['outputs.InstanceRootBlockDevice']: """ - Customize details about the root block - device of the instance. See Block Devices below for details. + Customize details about the root block device of the instance. See Block Devices below for details. """ return pulumi.get(self, "root_block_device") @@ -711,8 +685,7 @@ def security_groups(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="sourceDestCheck") def source_dest_check(self) -> pulumi.Output[Optional[bool]]: """ - Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. """ return pulumi.get(self, "source_dest_check") @@ -720,7 +693,7 @@ def source_dest_check(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="subnetId") def subnet_id(self) -> pulumi.Output[str]: """ - The VPC Subnet ID to launch in. + VPC Subnet ID to launch in. """ return pulumi.get(self, "subnet_id") @@ -728,7 +701,7 @@ def subnet_id(self) -> pulumi.Output[str]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A map of tags to assign to the resource. + A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. """ return pulumi.get(self, "tags") @@ -736,7 +709,7 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: @pulumi.getter def tenancy(self) -> pulumi.Output[str]: """ - The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. """ return pulumi.get(self, "tenancy") @@ -744,7 +717,7 @@ def tenancy(self) -> pulumi.Output[str]: @pulumi.getter(name="userData") def user_data(self) -> pulumi.Output[Optional[str]]: """ - The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. """ return pulumi.get(self, "user_data") @@ -758,9 +731,9 @@ def user_data_base64(self) -> pulumi.Output[Optional[str]]: @property @pulumi.getter(name="volumeTags") - def volume_tags(self) -> pulumi.Output[Mapping[str, str]]: + def volume_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A map of tags to assign to the devices created by the instance at launch time. + A map of tags to assign, at instance-creation time, to root and EBS volumes. """ return pulumi.get(self, "volume_tags") diff --git a/sdk/python/pulumi_aws/ec2/outputs.py b/sdk/python/pulumi_aws/ec2/outputs.py index 88440f16ace..45a7d8c849c 100644 --- a/sdk/python/pulumi_aws/ec2/outputs.py +++ b/sdk/python/pulumi_aws/ec2/outputs.py @@ -1537,7 +1537,7 @@ class InstanceCreditSpecification(dict): def __init__(__self__, *, cpu_credits: Optional[str] = None): """ - :param str cpu_credits: The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + :param str cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ if cpu_credits is not None: pulumi.set(__self__, "cpu_credits", cpu_credits) @@ -1546,7 +1546,7 @@ def __init__(__self__, *, @pulumi.getter(name="cpuCredits") def cpu_credits(self) -> Optional[str]: """ - The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ return pulumi.get(self, "cpu_credits") @@ -1563,25 +1563,23 @@ def __init__(__self__, *, iops: Optional[int] = None, kms_key_id: Optional[str] = None, snapshot_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, throughput: Optional[int] = None, volume_id: Optional[str] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): """ - :param str device_name: The name of the device to mount. - :param bool delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param bool encrypted: Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. - :param int iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param str device_name: Name of the device to mount. + :param bool delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param bool encrypted: Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + :param int iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param str kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param str snapshot_id: The Snapshot ID to mount. - :param int throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param int volume_size: The size of the volume in gibibytes (GiB). - :param str volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param str snapshot_id: Snapshot ID to mount. + :param Mapping[str, str] tags: A map of tags to assign to the device. + :param int throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param str volume_id: ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + :param int volume_size: Size of the volume in gibibytes (GiB). + :param str volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ pulumi.set(__self__, "device_name", device_name) if delete_on_termination is not None: @@ -1594,6 +1592,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if snapshot_id is not None: pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -1607,7 +1607,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceName") def device_name(self) -> str: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -1615,8 +1615,7 @@ def device_name(self) -> str: @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[bool]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -1624,9 +1623,7 @@ def delete_on_termination(self) -> Optional[bool]: @pulumi.getter def encrypted(self) -> Optional[bool]: """ - Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -1634,9 +1631,7 @@ def encrypted(self) -> Optional[bool]: @pulumi.getter def iops(self) -> Optional[int]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -1652,28 +1647,39 @@ def kms_key_id(self) -> Optional[str]: @pulumi.getter(name="snapshotId") def snapshot_id(self) -> Optional[str]: """ - The Snapshot ID to mount. + Snapshot ID to mount. """ return pulumi.get(self, "snapshot_id") + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> Optional[int]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @property @pulumi.getter(name="volumeId") def volume_id(self) -> Optional[str]: + """ + ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + """ return pulumi.get(self, "volume_id") @property @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[int]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -1681,7 +1687,7 @@ def volume_size(self) -> Optional[int]: @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[str]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -1694,7 +1700,7 @@ class InstanceEnclaveOptions(dict): def __init__(__self__, *, enabled: Optional[bool] = None): """ - :param bool enabled: Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + :param bool enabled: Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -1703,7 +1709,7 @@ def __init__(__self__, *, @pulumi.getter def enabled(self) -> Optional[bool]: """ - Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ return pulumi.get(self, "enabled") @@ -1720,9 +1726,7 @@ def __init__(__self__, *, """ :param str device_name: The name of the block device to mount on the instance. :param bool no_device: Suppresses the specified device included in the AMI's block device mapping. - :param str virtual_name: The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + :param str virtual_name: [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ pulumi.set(__self__, "device_name", device_name) if no_device is not None: @@ -1750,9 +1754,7 @@ def no_device(self) -> Optional[bool]: @pulumi.getter(name="virtualName") def virtual_name(self) -> Optional[str]: """ - The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ return pulumi.get(self, "virtual_name") @@ -1767,9 +1769,9 @@ def __init__(__self__, *, http_put_response_hop_limit: Optional[int] = None, http_tokens: Optional[str] = None): """ - :param str http_endpoint: Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). - :param int http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). - :param str http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + :param str http_endpoint: Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. + :param int http_put_response_hop_limit: Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. + :param str http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ if http_endpoint is not None: pulumi.set(__self__, "http_endpoint", http_endpoint) @@ -1782,7 +1784,7 @@ def __init__(__self__, *, @pulumi.getter(name="httpEndpoint") def http_endpoint(self) -> Optional[str]: """ - Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. """ return pulumi.get(self, "http_endpoint") @@ -1790,7 +1792,7 @@ def http_endpoint(self) -> Optional[str]: @pulumi.getter(name="httpPutResponseHopLimit") def http_put_response_hop_limit(self) -> Optional[int]: """ - The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. """ return pulumi.get(self, "http_put_response_hop_limit") @@ -1798,7 +1800,7 @@ def http_put_response_hop_limit(self) -> Optional[int]: @pulumi.getter(name="httpTokens") def http_tokens(self) -> Optional[str]: """ - Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ return pulumi.get(self, "http_tokens") @@ -1813,8 +1815,8 @@ def __init__(__self__, *, network_interface_id: str, delete_on_termination: Optional[bool] = None): """ - :param int device_index: The integer index of the network interface attachment. Limited by instance type. - :param str network_interface_id: The ID of the network interface to attach. + :param int device_index: Integer index of the network interface attachment. Limited by instance type. + :param str network_interface_id: ID of the network interface to attach. :param bool delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. """ pulumi.set(__self__, "device_index", device_index) @@ -1826,7 +1828,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceIndex") def device_index(self) -> int: """ - The integer index of the network interface attachment. Limited by instance type. + Integer index of the network interface attachment. Limited by instance type. """ return pulumi.get(self, "device_index") @@ -1834,7 +1836,7 @@ def device_index(self) -> int: @pulumi.getter(name="networkInterfaceId") def network_interface_id(self) -> str: """ - The ID of the network interface to attach. + ID of the network interface to attach. """ return pulumi.get(self, "network_interface_id") @@ -1858,21 +1860,22 @@ def __init__(__self__, *, encrypted: Optional[bool] = None, iops: Optional[int] = None, kms_key_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, throughput: Optional[int] = None, volume_id: Optional[str] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): """ - :param bool delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param str device_name: The name of the device to mount. - :param bool encrypted: Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. - :param int iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param bool delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param str device_name: Name of the device to mount. + :param bool encrypted: Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. + :param int iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param str kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param int throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param int volume_size: The size of the volume in gibibytes (GiB). - :param str volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param Mapping[str, str] tags: A map of tags to assign to the device. + :param int throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param str volume_id: ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + :param int volume_size: Size of the volume in gibibytes (GiB). + :param str volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -1884,6 +1887,8 @@ def __init__(__self__, *, pulumi.set(__self__, "iops", iops) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -1897,8 +1902,7 @@ def __init__(__self__, *, @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[bool]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -1906,7 +1910,7 @@ def delete_on_termination(self) -> Optional[bool]: @pulumi.getter(name="deviceName") def device_name(self) -> Optional[str]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -1914,7 +1918,7 @@ def device_name(self) -> Optional[str]: @pulumi.getter def encrypted(self) -> Optional[bool]: """ - Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -1922,8 +1926,7 @@ def encrypted(self) -> Optional[bool]: @pulumi.getter def iops(self) -> Optional[int]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -1935,24 +1938,35 @@ def kms_key_id(self) -> Optional[str]: """ return pulumi.get(self, "kms_key_id") + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> Optional[int]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @property @pulumi.getter(name="volumeId") def volume_id(self) -> Optional[str]: + """ + ID of the volume. For example, the ID can be accessed like this, `aws_instance.web.root_block_device.0.volume_id`. + """ return pulumi.get(self, "volume_id") @property @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[int]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -1960,7 +1974,7 @@ def volume_size(self) -> Optional[int]: @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[str]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -4411,7 +4425,7 @@ class SpotInstanceRequestCreditSpecification(dict): def __init__(__self__, *, cpu_credits: Optional[str] = None): """ - :param str cpu_credits: The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + :param str cpu_credits: Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ if cpu_credits is not None: pulumi.set(__self__, "cpu_credits", cpu_credits) @@ -4420,7 +4434,7 @@ def __init__(__self__, *, @pulumi.getter(name="cpuCredits") def cpu_credits(self) -> Optional[str]: """ - The credit option for CPU usage. Can be `"standard"` or `"unlimited"`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. + Credit option for CPU usage. Valid values include `standard` or `unlimited`. T3 instances are launched as unlimited by default. T2 instances are launched as standard by default. """ return pulumi.get(self, "cpu_credits") @@ -4437,25 +4451,22 @@ def __init__(__self__, *, iops: Optional[int] = None, kms_key_id: Optional[str] = None, snapshot_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, throughput: Optional[int] = None, volume_id: Optional[str] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): """ - :param str device_name: The name of the device to mount. - :param bool delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param bool encrypted: Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. - :param int iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param str device_name: Name of the device to mount. + :param bool delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param bool encrypted: Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + :param int iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param str kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param str snapshot_id: The Snapshot ID to mount. - :param int throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param int volume_size: The size of the volume in gibibytes (GiB). - :param str volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param str snapshot_id: Snapshot ID to mount. + :param Mapping[str, str] tags: A map of tags to assign to the device. + :param int throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param int volume_size: Size of the volume in gibibytes (GiB). + :param str volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ pulumi.set(__self__, "device_name", device_name) if delete_on_termination is not None: @@ -4468,6 +4479,8 @@ def __init__(__self__, *, pulumi.set(__self__, "kms_key_id", kms_key_id) if snapshot_id is not None: pulumi.set(__self__, "snapshot_id", snapshot_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -4481,7 +4494,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceName") def device_name(self) -> str: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -4489,8 +4502,7 @@ def device_name(self) -> str: @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[bool]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -4498,9 +4510,7 @@ def delete_on_termination(self) -> Optional[bool]: @pulumi.getter def encrypted(self) -> Optional[bool]: """ - Enables [EBS - encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) - on the volume (Default: `false`). Cannot be used with `snapshot_id`. Must be configured to perform drift detection. + Enables [EBS encryption](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) on the volume. Defaults to `false`. Cannot be used with `snapshot_id`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -4508,9 +4518,7 @@ def encrypted(self) -> Optional[bool]: @pulumi.getter def iops(self) -> Optional[int]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). - Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -4526,15 +4534,23 @@ def kms_key_id(self) -> Optional[str]: @pulumi.getter(name="snapshotId") def snapshot_id(self) -> Optional[str]: """ - The Snapshot ID to mount. + Snapshot ID to mount. """ return pulumi.get(self, "snapshot_id") + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> Optional[int]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -4547,7 +4563,7 @@ def volume_id(self) -> Optional[str]: @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[int]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -4555,7 +4571,7 @@ def volume_size(self) -> Optional[int]: @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[str]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -4568,7 +4584,7 @@ class SpotInstanceRequestEnclaveOptions(dict): def __init__(__self__, *, enabled: Optional[bool] = None): """ - :param bool enabled: Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + :param bool enabled: Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ if enabled is not None: pulumi.set(__self__, "enabled", enabled) @@ -4577,7 +4593,7 @@ def __init__(__self__, *, @pulumi.getter def enabled(self) -> Optional[bool]: """ - Whether Nitro Enclaves will be enabled on the instance. (Default: `"false"`). + Whether Nitro Enclaves will be enabled on the instance. Defaults to `false`. """ return pulumi.get(self, "enabled") @@ -4594,9 +4610,7 @@ def __init__(__self__, *, """ :param str device_name: The name of the block device to mount on the instance. :param bool no_device: Suppresses the specified device included in the AMI's block device mapping. - :param str virtual_name: The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + :param str virtual_name: [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ pulumi.set(__self__, "device_name", device_name) if no_device is not None: @@ -4624,9 +4638,7 @@ def no_device(self) -> Optional[bool]: @pulumi.getter(name="virtualName") def virtual_name(self) -> Optional[str]: """ - The [Instance Store Device - Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) - (e.g. `"ephemeral0"`). + [Instance Store Device Name](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g. `ephemeral0`). """ return pulumi.get(self, "virtual_name") @@ -4641,9 +4653,9 @@ def __init__(__self__, *, http_put_response_hop_limit: Optional[int] = None, http_tokens: Optional[str] = None): """ - :param str http_endpoint: Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). - :param int http_put_response_hop_limit: The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). - :param str http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + :param str http_endpoint: Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. + :param int http_put_response_hop_limit: Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. + :param str http_tokens: Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ if http_endpoint is not None: pulumi.set(__self__, "http_endpoint", http_endpoint) @@ -4656,7 +4668,7 @@ def __init__(__self__, *, @pulumi.getter(name="httpEndpoint") def http_endpoint(self) -> Optional[str]: """ - Whether the metadata service is available. Can be `"enabled"` or `"disabled"`. (Default: `"enabled"`). + Whether the metadata service is available. Valid values include `enabled` or `disabled`. Defaults to `enabled`. """ return pulumi.get(self, "http_endpoint") @@ -4664,7 +4676,7 @@ def http_endpoint(self) -> Optional[str]: @pulumi.getter(name="httpPutResponseHopLimit") def http_put_response_hop_limit(self) -> Optional[int]: """ - The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Can be an integer from `1` to `64`. (Default: `1`). + Desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. Valid values are integer from `1` to `64`. Defaults to `1`. """ return pulumi.get(self, "http_put_response_hop_limit") @@ -4672,7 +4684,7 @@ def http_put_response_hop_limit(self) -> Optional[int]: @pulumi.getter(name="httpTokens") def http_tokens(self) -> Optional[str]: """ - Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Can be `"optional"` or `"required"`. (Default: `"optional"`). + Whether or not the metadata service requires session tokens, also referred to as _Instance Metadata Service Version 2 (IMDSv2)_. Valid values include `optional` or `required`. Defaults to `optional`. """ return pulumi.get(self, "http_tokens") @@ -4687,8 +4699,8 @@ def __init__(__self__, *, network_interface_id: str, delete_on_termination: Optional[bool] = None): """ - :param int device_index: The integer index of the network interface attachment. Limited by instance type. - :param str network_interface_id: The ID of the network interface to attach. + :param int device_index: Integer index of the network interface attachment. Limited by instance type. + :param str network_interface_id: ID of the network interface to attach. :param bool delete_on_termination: Whether or not to delete the network interface on instance termination. Defaults to `false`. Currently, the only valid value is `false`, as this is only supported when creating new network interfaces when launching an instance. """ pulumi.set(__self__, "device_index", device_index) @@ -4700,7 +4712,7 @@ def __init__(__self__, *, @pulumi.getter(name="deviceIndex") def device_index(self) -> int: """ - The integer index of the network interface attachment. Limited by instance type. + Integer index of the network interface attachment. Limited by instance type. """ return pulumi.get(self, "device_index") @@ -4708,7 +4720,7 @@ def device_index(self) -> int: @pulumi.getter(name="networkInterfaceId") def network_interface_id(self) -> str: """ - The ID of the network interface to attach. + ID of the network interface to attach. """ return pulumi.get(self, "network_interface_id") @@ -4732,21 +4744,21 @@ def __init__(__self__, *, encrypted: Optional[bool] = None, iops: Optional[int] = None, kms_key_id: Optional[str] = None, + tags: Optional[Mapping[str, str]] = None, throughput: Optional[int] = None, volume_id: Optional[str] = None, volume_size: Optional[int] = None, volume_type: Optional[str] = None): """ - :param bool delete_on_termination: Whether the volume should be destroyed - on instance termination (Default: `true`). - :param str device_name: The name of the device to mount. - :param bool encrypted: Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. - :param int iops: The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + :param bool delete_on_termination: Whether the volume should be destroyed on instance termination. Defaults to `true`. + :param str device_name: Name of the device to mount. + :param bool encrypted: Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. + :param int iops: Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. :param str kms_key_id: Amazon Resource Name (ARN) of the KMS Key to use when encrypting the volume. Must be configured to perform drift detection. - :param int throughput: The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. - :param int volume_size: The size of the volume in gibibytes (GiB). - :param str volume_type: The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + :param Mapping[str, str] tags: A map of tags to assign to the device. + :param int throughput: Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. + :param int volume_size: Size of the volume in gibibytes (GiB). + :param str volume_type: Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ if delete_on_termination is not None: pulumi.set(__self__, "delete_on_termination", delete_on_termination) @@ -4758,6 +4770,8 @@ def __init__(__self__, *, pulumi.set(__self__, "iops", iops) if kms_key_id is not None: pulumi.set(__self__, "kms_key_id", kms_key_id) + if tags is not None: + pulumi.set(__self__, "tags", tags) if throughput is not None: pulumi.set(__self__, "throughput", throughput) if volume_id is not None: @@ -4771,8 +4785,7 @@ def __init__(__self__, *, @pulumi.getter(name="deleteOnTermination") def delete_on_termination(self) -> Optional[bool]: """ - Whether the volume should be destroyed - on instance termination (Default: `true`). + Whether the volume should be destroyed on instance termination. Defaults to `true`. """ return pulumi.get(self, "delete_on_termination") @@ -4780,7 +4793,7 @@ def delete_on_termination(self) -> Optional[bool]: @pulumi.getter(name="deviceName") def device_name(self) -> Optional[str]: """ - The name of the device to mount. + Name of the device to mount. """ return pulumi.get(self, "device_name") @@ -4788,7 +4801,7 @@ def device_name(self) -> Optional[str]: @pulumi.getter def encrypted(self) -> Optional[bool]: """ - Enable volume encryption. (Default: `false`). Must be configured to perform drift detection. + Whether to enable volume encryption. Defaults to `false`. Must be configured to perform drift detection. """ return pulumi.get(self, "encrypted") @@ -4796,8 +4809,7 @@ def encrypted(self) -> Optional[bool]: @pulumi.getter def iops(self) -> Optional[int]: """ - The amount of provisioned - [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `"io1"`, `"io2"` or `"gp3"`. + Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). Only valid for volume_type of `io1`, `io2` or `gp3`. """ return pulumi.get(self, "iops") @@ -4809,11 +4821,19 @@ def kms_key_id(self) -> Optional[str]: """ return pulumi.get(self, "kms_key_id") + @property + @pulumi.getter + def tags(self) -> Optional[Mapping[str, str]]: + """ + A map of tags to assign to the device. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> Optional[int]: """ - The throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `"gp3"`. + Throughput to provision for a volume in mebibytes per second (MiB/s). This is only valid for `volume_type` of `gp3`. """ return pulumi.get(self, "throughput") @@ -4826,7 +4846,7 @@ def volume_id(self) -> Optional[str]: @pulumi.getter(name="volumeSize") def volume_size(self) -> Optional[int]: """ - The size of the volume in gibibytes (GiB). + Size of the volume in gibibytes (GiB). """ return pulumi.get(self, "volume_size") @@ -4834,7 +4854,7 @@ def volume_size(self) -> Optional[int]: @pulumi.getter(name="volumeType") def volume_type(self) -> Optional[str]: """ - The type of volume. Can be `"standard"`, `"gp2"`, `"gp3"`, `"io1"`, `"io2"`, `"sc1"`, or `"st1"`. (Default: `"gp2"`). + Type of volume. Valid values include `standard`, `gp2`, `gp3`, `io1`, `io2`, `sc1`, or `st1`. Defaults to `gp2`. """ return pulumi.get(self, "volume_type") @@ -5412,6 +5432,7 @@ def __init__(__self__, *, iops: int, kms_key_id: str, snapshot_id: str, + tags: Mapping[str, str], throughput: int, volume_id: str, volume_size: int, @@ -5422,6 +5443,7 @@ def __init__(__self__, *, :param bool encrypted: If the EBS volume is encrypted. :param int iops: `0` If the volume is not a provisioned IOPS image, otherwise the supported IOPS count. :param str snapshot_id: The ID of the snapshot. + :param Mapping[str, str] tags: A map of tags assigned to the Instance. :param int throughput: The throughput of the volume, in MiB/s. :param int volume_size: The size of the volume, in GiB. :param str volume_type: The type of the volume. @@ -5432,6 +5454,7 @@ def __init__(__self__, *, pulumi.set(__self__, "iops", iops) pulumi.set(__self__, "kms_key_id", kms_key_id) pulumi.set(__self__, "snapshot_id", snapshot_id) + pulumi.set(__self__, "tags", tags) pulumi.set(__self__, "throughput", throughput) pulumi.set(__self__, "volume_id", volume_id) pulumi.set(__self__, "volume_size", volume_size) @@ -5482,6 +5505,14 @@ def snapshot_id(self) -> str: """ return pulumi.get(self, "snapshot_id") + @property + @pulumi.getter + def tags(self) -> Mapping[str, str]: + """ + A map of tags assigned to the Instance. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> int: @@ -5639,6 +5670,7 @@ def __init__(__self__, *, encrypted: bool, iops: int, kms_key_id: str, + tags: Mapping[str, str], throughput: int, volume_id: str, volume_size: int, @@ -5648,6 +5680,7 @@ def __init__(__self__, *, :param str device_name: The physical name of the device. :param bool encrypted: If the EBS volume is encrypted. :param int iops: `0` If the volume is not a provisioned IOPS image, otherwise the supported IOPS count. + :param Mapping[str, str] tags: A map of tags assigned to the Instance. :param int throughput: The throughput of the volume, in MiB/s. :param int volume_size: The size of the volume, in GiB. :param str volume_type: The type of the volume. @@ -5657,6 +5690,7 @@ def __init__(__self__, *, pulumi.set(__self__, "encrypted", encrypted) pulumi.set(__self__, "iops", iops) pulumi.set(__self__, "kms_key_id", kms_key_id) + pulumi.set(__self__, "tags", tags) pulumi.set(__self__, "throughput", throughput) pulumi.set(__self__, "volume_id", volume_id) pulumi.set(__self__, "volume_size", volume_size) @@ -5699,6 +5733,14 @@ def iops(self) -> int: def kms_key_id(self) -> str: return pulumi.get(self, "kms_key_id") + @property + @pulumi.getter + def tags(self) -> Mapping[str, str]: + """ + A map of tags assigned to the Instance. + """ + return pulumi.get(self, "tags") + @property @pulumi.getter def throughput(self) -> int: diff --git a/sdk/python/pulumi_aws/ec2/spot_instance_request.py b/sdk/python/pulumi_aws/ec2/spot_instance_request.py index 1ec033a2786..35003278cca 100644 --- a/sdk/python/pulumi_aws/ec2/spot_instance_request.py +++ b/sdk/python/pulumi_aws/ec2/spot_instance_request.py @@ -106,68 +106,52 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] ami: The AMI to use for the instance. - :param pulumi.Input[bool] associate_public_ip_address: Associate a public ip address with an instance in a VPC. Boolean value. - :param pulumi.Input[str] availability_zone: The AZ to start the instance in. + :param pulumi.Input[str] ami: AMI to use for the instance. + :param pulumi.Input[bool] associate_public_ip_address: Whether to associate a public IP address with an instance in a VPC. + :param pulumi.Input[str] availability_zone: AZ to start the instance in. :param pulumi.Input[int] block_duration_minutes: The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration. - :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. :param pulumi.Input[int] cpu_threads_per_core: If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestCreditSpecificationArgs']] credit_specification: Customize the credit specification of the instance. See Credit Specification below for more details. - :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. - :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestEnclaveOptionsArgs']] enclave_options: Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. :param pulumi.Input[bool] get_password_data: If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. :param pulumi.Input[bool] hibernation: If true, the launched EC2 instance will support hibernation. - :param pulumi.Input[str] host_id: The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. - :param pulumi.Input[str] iam_instance_profile: The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. - :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + :param pulumi.Input[str] host_id: ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. :param pulumi.Input[str] instance_interruption_behaviour: Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. - :param pulumi.Input[str] instance_type: The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + :param pulumi.Input[str] instance_type: Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface - :param pulumi.Input[str] key_name: The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + :param pulumi.Input[str] key_name: Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. :param pulumi.Input[str] launch_group: A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestMetadataOptionsArgs']] metadata_options: Customize the metadata options of the instance. See Metadata Options below for more details. :param pulumi.Input[bool] monitoring: If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestNetworkInterfaceArgs']]]] network_interfaces: Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. - :param pulumi.Input[str] placement_group: The Placement Group to start the instance in. - :param pulumi.Input[str] private_ip: Private IP address to associate with the - instance in a VPC. - :param pulumi.Input[pulumi.InputType['SpotInstanceRequestRootBlockDeviceArgs']] root_block_device: Customize details about the root block - device of the instance. See Block Devices below for details. + :param pulumi.Input[str] placement_group: Placement Group to start the instance in. + :param pulumi.Input[str] private_ip: Private IP address to associate with the instance in a VPC. + :param pulumi.Input[pulumi.InputType['SpotInstanceRequestRootBlockDeviceArgs']] root_block_device: Customize details about the root block device of the instance. See Block Devices below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ips: A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `network_interface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. - :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. :param pulumi.Input[str] spot_price: The maximum price to request on the spot market. :param pulumi.Input[str] spot_type: If set to `one-time`, after the instance is terminated, the spot request will be closed. - :param pulumi.Input[str] subnet_id: The VPC Subnet ID to launch in. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. - :param pulumi.Input[str] tenancy: The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. - :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + :param pulumi.Input[str] subnet_id: VPC Subnet ID to launch in. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. + :param pulumi.Input[str] tenancy: Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + :param pulumi.Input[str] user_data: User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign to the devices created by the instance at launch time. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign, at instance-creation time, to root and EBS volumes. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. :param pulumi.Input[bool] wait_for_fulfillment: If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the @@ -321,63 +305,47 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. - :param pulumi.Input[str] ami: The AMI to use for the instance. - :param pulumi.Input[bool] associate_public_ip_address: Associate a public ip address with an instance in a VPC. Boolean value. - :param pulumi.Input[str] availability_zone: The AZ to start the instance in. + :param pulumi.Input[str] ami: AMI to use for the instance. + :param pulumi.Input[bool] associate_public_ip_address: Whether to associate a public IP address with an instance in a VPC. + :param pulumi.Input[str] availability_zone: AZ to start the instance in. :param pulumi.Input[int] block_duration_minutes: The required duration for the Spot instances, in minutes. This value must be a multiple of 60 (60, 120, 180, 240, 300, or 360). The duration period starts as soon as your Spot instance receives its instance ID. At the end of the duration period, Amazon EC2 marks the Spot instance for termination and provides a Spot instance termination notice, which gives the instance a two-minute warning before it terminates. Note that you can't specify an Availability Zone group or a launch group if you specify a duration. - :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + :param pulumi.Input[int] cpu_core_count: Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. :param pulumi.Input[int] cpu_threads_per_core: If set to to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestCreditSpecificationArgs']] credit_specification: Customize the credit specification of the instance. See Credit Specification below for more details. - :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. - :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + :param pulumi.Input[bool] disable_api_termination: If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEbsBlockDeviceArgs']]]] ebs_block_devices: Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + :param pulumi.Input[bool] ebs_optimized: If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestEnclaveOptionsArgs']] enclave_options: Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. - :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestEphemeralBlockDeviceArgs']]]] ephemeral_block_devices: Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. :param pulumi.Input[bool] get_password_data: If true, wait for password data to become available and retrieve it. Useful for getting the administrator password for instances running Microsoft Windows. The password data is exported to the `password_data` attribute. See [GetPasswordData](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetPasswordData.html) for more information. :param pulumi.Input[bool] hibernation: If true, the launched EC2 instance will support hibernation. - :param pulumi.Input[str] host_id: The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. - :param pulumi.Input[str] iam_instance_profile: The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. - :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + :param pulumi.Input[str] host_id: ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + :param pulumi.Input[str] iam_instance_profile: IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + :param pulumi.Input[str] instance_initiated_shutdown_behavior: Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. :param pulumi.Input[str] instance_interruption_behaviour: Indicates whether a Spot instance stops or terminates when it is interrupted. Default is `terminate` as this is the current AWS behaviour. - :param pulumi.Input[str] instance_type: The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + :param pulumi.Input[str] instance_type: Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. :param pulumi.Input[int] ipv6_address_count: A number of IPv6 addresses to associate with the primary network interface. Amazon EC2 chooses the IPv6 addresses from the range of your subnet. :param pulumi.Input[Sequence[pulumi.Input[str]]] ipv6_addresses: Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface - :param pulumi.Input[str] key_name: The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + :param pulumi.Input[str] key_name: Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. :param pulumi.Input[str] launch_group: A launch group is a group of spot instances that launch together and terminate together. If left empty instances are launched and terminated individually. :param pulumi.Input[pulumi.InputType['SpotInstanceRequestMetadataOptionsArgs']] metadata_options: Customize the metadata options of the instance. See Metadata Options below for more details. :param pulumi.Input[bool] monitoring: If true, the launched EC2 instance will have detailed monitoring enabled. (Available since v0.6.0) :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['SpotInstanceRequestNetworkInterfaceArgs']]]] network_interfaces: Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details. - :param pulumi.Input[str] placement_group: The Placement Group to start the instance in. + :param pulumi.Input[str] placement_group: Placement Group to start the instance in. :param pulumi.Input[str] private_dns: The private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC - :param pulumi.Input[str] private_ip: Private IP address to associate with the - instance in a VPC. + :param pulumi.Input[str] private_ip: Private IP address to associate with the instance in a VPC. :param pulumi.Input[str] public_dns: The public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC :param pulumi.Input[str] public_ip: The public IP address assigned to the instance, if applicable. - :param pulumi.Input[pulumi.InputType['SpotInstanceRequestRootBlockDeviceArgs']] root_block_device: Customize details about the root block - device of the instance. See Block Devices below for details. + :param pulumi.Input[pulumi.InputType['SpotInstanceRequestRootBlockDeviceArgs']] root_block_device: Customize details about the root block device of the instance. See Block Devices below for details. :param pulumi.Input[Sequence[pulumi.Input[str]]] secondary_private_ips: A list of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e. referenced in a `network_interface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: A list of security group names (EC2-Classic) or IDs (default VPC) to associate with. - :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + :param pulumi.Input[bool] source_dest_check: Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. :param pulumi.Input[str] spot_bid_status: The current [bid status](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-bid-status.html) of the Spot Instance Request. @@ -389,14 +357,14 @@ def get(resource_name: str, :param pulumi.Input[str] spot_price: The maximum price to request on the spot market. :param pulumi.Input[str] spot_type: If set to `one-time`, after the instance is terminated, the spot request will be closed. - :param pulumi.Input[str] subnet_id: The VPC Subnet ID to launch in. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. - :param pulumi.Input[str] tenancy: The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. - :param pulumi.Input[str] user_data: The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + :param pulumi.Input[str] subnet_id: VPC Subnet ID to launch in. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. + :param pulumi.Input[str] tenancy: Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + :param pulumi.Input[str] user_data: User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. :param pulumi.Input[str] user_data_base64: Can be used instead of `user_data` to pass base64-encoded binary data directly. Use this instead of `user_data` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. :param pulumi.Input[str] valid_from: The start date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). The default is to start fulfilling the request immediately. :param pulumi.Input[str] valid_until: The end date and time of the request, in UTC [RFC3339](https://tools.ietf.org/html/rfc3339#section-5.8) format(for example, YYYY-MM-DDTHH:MM:SSZ). At this point, no new Spot instance requests are placed or enabled to fulfill the request. The default end date is 7 days from the current date. - :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign to the devices created by the instance at launch time. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_tags: A map of tags to assign, at instance-creation time, to root and EBS volumes. :param pulumi.Input[Sequence[pulumi.Input[str]]] vpc_security_group_ids: A list of security group IDs to associate with. :param pulumi.Input[bool] wait_for_fulfillment: If set, this provider will wait for the Spot Request to be fulfilled, and will throw an error if the @@ -467,7 +435,7 @@ def get(resource_name: str, @pulumi.getter def ami(self) -> pulumi.Output[str]: """ - The AMI to use for the instance. + AMI to use for the instance. """ return pulumi.get(self, "ami") @@ -480,7 +448,7 @@ def arn(self) -> pulumi.Output[str]: @pulumi.getter(name="associatePublicIpAddress") def associate_public_ip_address(self) -> pulumi.Output[bool]: """ - Associate a public ip address with an instance in a VPC. Boolean value. + Whether to associate a public IP address with an instance in a VPC. """ return pulumi.get(self, "associate_public_ip_address") @@ -488,7 +456,7 @@ def associate_public_ip_address(self) -> pulumi.Output[bool]: @pulumi.getter(name="availabilityZone") def availability_zone(self) -> pulumi.Output[str]: """ - The AZ to start the instance in. + AZ to start the instance in. """ return pulumi.get(self, "availability_zone") @@ -506,9 +474,7 @@ def block_duration_minutes(self) -> pulumi.Output[Optional[int]]: @pulumi.getter(name="cpuCoreCount") def cpu_core_count(self) -> pulumi.Output[int]: """ - Sets the number of CPU cores for an instance. This option is - only supported on creation of instance type that support CPU Options - [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. + Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. """ return pulumi.get(self, "cpu_core_count") @@ -532,8 +498,7 @@ def credit_specification(self) -> pulumi.Output[Optional['outputs.SpotInstanceRe @pulumi.getter(name="disableApiTermination") def disable_api_termination(self) -> pulumi.Output[Optional[bool]]: """ - If true, enables [EC2 Instance - Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) + If true, enables [EC2 Instance Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination). """ return pulumi.get(self, "disable_api_termination") @@ -541,8 +506,7 @@ def disable_api_termination(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="ebsBlockDevices") def ebs_block_devices(self) -> pulumi.Output[Sequence['outputs.SpotInstanceRequestEbsBlockDevice']]: """ - Additional EBS block devices to attach to the - instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. + Additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. """ return pulumi.get(self, "ebs_block_devices") @@ -550,11 +514,7 @@ def ebs_block_devices(self) -> pulumi.Output[Sequence['outputs.SpotInstanceReque @pulumi.getter(name="ebsOptimized") def ebs_optimized(self) -> pulumi.Output[Optional[bool]]: """ - If true, the launched EC2 instance will be EBS-optimized. - Note that if this is not set on an instance type that is optimized by default then - this will show as disabled but if the instance type is optimized by default then - there is no need to set this and there is no effect to disabling it. - See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. + If true, the launched EC2 instance will be EBS-optimized. Note that if this is not set on an instance type that is optimized by default then this will show as disabled but if the instance type is optimized by default then there is no need to set this and there is no effect to disabling it. See the [EBS Optimized section](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) of the AWS User Guide for more information. """ return pulumi.get(self, "ebs_optimized") @@ -570,8 +530,7 @@ def enclave_options(self) -> pulumi.Output['outputs.SpotInstanceRequestEnclaveOp @pulumi.getter(name="ephemeralBlockDevices") def ephemeral_block_devices(self) -> pulumi.Output[Sequence['outputs.SpotInstanceRequestEphemeralBlockDevice']]: """ - Customize Ephemeral (also known as - "Instance Store") volumes on the instance. See Block Devices below for details. + Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. """ return pulumi.get(self, "ephemeral_block_devices") @@ -595,7 +554,7 @@ def hibernation(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="hostId") def host_id(self) -> pulumi.Output[str]: """ - The Id of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. + ID of a dedicated host that the instance will be assigned to. Use when an instance is to be launched on a specific dedicated host. """ return pulumi.get(self, "host_id") @@ -603,8 +562,7 @@ def host_id(self) -> pulumi.Output[str]: @pulumi.getter(name="iamInstanceProfile") def iam_instance_profile(self) -> pulumi.Output[Optional[str]]: """ - The IAM Instance Profile to - launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. + IAM Instance Profile to launch the instance with. Specified as the name of the Instance Profile. Ensure your credentials have the correct permission to assign the instance profile according to the [EC2 documentation](http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html#roles-usingrole-ec2instance-permissions), notably `iam:PassRole`. """ return pulumi.get(self, "iam_instance_profile") @@ -612,10 +570,7 @@ def iam_instance_profile(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="instanceInitiatedShutdownBehavior") def instance_initiated_shutdown_behavior(self) -> pulumi.Output[Optional[str]]: """ - Shutdown behavior for the - instance. Amazon defaults this to `stop` for EBS-backed instances and - `terminate` for instance-store instances. Cannot be set on instance-store - instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. + Shutdown behavior for the instance. Amazon defaults this to `stop` for EBS-backed instances and `terminate` for instance-store instances. Cannot be set on instance-store instances. See [Shutdown Behavior](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingInstanceInitiatedShutdownBehavior) for more information. """ return pulumi.get(self, "instance_initiated_shutdown_behavior") @@ -636,7 +591,7 @@ def instance_state(self) -> pulumi.Output[str]: @pulumi.getter(name="instanceType") def instance_type(self) -> pulumi.Output[str]: """ - The type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. + Type of instance to start. Updates to this field will trigger a stop/start of the EC2 instance. """ return pulumi.get(self, "instance_type") @@ -660,7 +615,7 @@ def ipv6_addresses(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="keyName") def key_name(self) -> pulumi.Output[str]: """ - The key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. + Key name of the Key Pair to use for the instance; which can be managed using the `ec2.KeyPair` resource. """ return pulumi.get(self, "key_name") @@ -711,7 +666,7 @@ def password_data(self) -> pulumi.Output[str]: @pulumi.getter(name="placementGroup") def placement_group(self) -> pulumi.Output[str]: """ - The Placement Group to start the instance in. + Placement Group to start the instance in. """ return pulumi.get(self, "placement_group") @@ -734,8 +689,7 @@ def private_dns(self) -> pulumi.Output[str]: @pulumi.getter(name="privateIp") def private_ip(self) -> pulumi.Output[str]: """ - Private IP address to associate with the - instance in a VPC. + Private IP address to associate with the instance in a VPC. """ return pulumi.get(self, "private_ip") @@ -760,8 +714,7 @@ def public_ip(self) -> pulumi.Output[str]: @pulumi.getter(name="rootBlockDevice") def root_block_device(self) -> pulumi.Output['outputs.SpotInstanceRequestRootBlockDevice']: """ - Customize details about the root block - device of the instance. See Block Devices below for details. + Customize details about the root block device of the instance. See Block Devices below for details. """ return pulumi.get(self, "root_block_device") @@ -785,8 +738,7 @@ def security_groups(self) -> pulumi.Output[Sequence[str]]: @pulumi.getter(name="sourceDestCheck") def source_dest_check(self) -> pulumi.Output[Optional[bool]]: """ - Controls if traffic is routed to the instance when - the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. """ return pulumi.get(self, "source_dest_check") @@ -838,7 +790,7 @@ def spot_type(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="subnetId") def subnet_id(self) -> pulumi.Output[str]: """ - The VPC Subnet ID to launch in. + VPC Subnet ID to launch in. """ return pulumi.get(self, "subnet_id") @@ -846,7 +798,7 @@ def subnet_id(self) -> pulumi.Output[str]: @pulumi.getter def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A map of tags to assign to the resource. + A map of tags to assign to the resource. Note that these tags apply to the instance and not block storage devices. """ return pulumi.get(self, "tags") @@ -854,7 +806,7 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: @pulumi.getter def tenancy(self) -> pulumi.Output[str]: """ - The tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. + Tenancy of the instance (if the instance is running in a VPC). An instance with a tenancy of dedicated runs on single-tenant hardware. The host tenancy is not supported for the import-instance command. """ return pulumi.get(self, "tenancy") @@ -862,7 +814,7 @@ def tenancy(self) -> pulumi.Output[str]: @pulumi.getter(name="userData") def user_data(self) -> pulumi.Output[Optional[str]]: """ - The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. + User data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `user_data_base64` instead. """ return pulumi.get(self, "user_data") @@ -894,7 +846,7 @@ def valid_until(self) -> pulumi.Output[str]: @pulumi.getter(name="volumeTags") def volume_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ - A map of tags to assign to the devices created by the instance at launch time. + A map of tags to assign, at instance-creation time, to root and EBS volumes. """ return pulumi.get(self, "volume_tags") diff --git a/sdk/python/pulumi_aws/elasticache/cluster.py b/sdk/python/pulumi_aws/elasticache/cluster.py index 9dde415c7c1..e1b74d70e8d 100644 --- a/sdk/python/pulumi_aws/elasticache/cluster.py +++ b/sdk/python/pulumi_aws/elasticache/cluster.py @@ -23,6 +23,7 @@ def __init__(__self__, cluster_id: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, notification_topic_arn: Optional[pulumi.Input[str]] = None, @@ -116,6 +117,7 @@ def __init__(__self__, :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation center for supported versions + :param pulumi.Input[str] final_snapshot_identifier: The name of your final cluster snapshot. If omitted, no final snapshot will be made. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -176,6 +178,7 @@ def __init__(__self__, __props__['cluster_id'] = cluster_id __props__['engine'] = engine __props__['engine_version'] = engine_version + __props__['final_snapshot_identifier'] = final_snapshot_identifier __props__['maintenance_window'] = maintenance_window __props__['node_type'] = node_type __props__['notification_topic_arn'] = notification_topic_arn @@ -216,6 +219,7 @@ def get(resource_name: str, configuration_endpoint: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, notification_topic_arn: Optional[pulumi.Input[str]] = None, @@ -256,6 +260,7 @@ def get(resource_name: str, :param pulumi.Input[str] engine_version: Version number of the cache engine to be used. See [Describe Cache Engine Versions](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-cache-engine-versions.html) in the AWS Documentation center for supported versions + :param pulumi.Input[str] final_snapshot_identifier: The name of your final cluster snapshot. If omitted, no final snapshot will be made. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). The minimum maintenance window is a 60 minute period. Example: `sun:05:00-sun:09:00` @@ -307,6 +312,7 @@ def get(resource_name: str, __props__["configuration_endpoint"] = configuration_endpoint __props__["engine"] = engine __props__["engine_version"] = engine_version + __props__["final_snapshot_identifier"] = final_snapshot_identifier __props__["maintenance_window"] = maintenance_window __props__["node_type"] = node_type __props__["notification_topic_arn"] = notification_topic_arn @@ -410,6 +416,14 @@ def engine_version(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine_version") + @property + @pulumi.getter(name="finalSnapshotIdentifier") + def final_snapshot_identifier(self) -> pulumi.Output[Optional[str]]: + """ + The name of your final cluster snapshot. If omitted, no final snapshot will be made. + """ + return pulumi.get(self, "final_snapshot_identifier") + @property @pulumi.getter(name="maintenanceWindow") def maintenance_window(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/elasticache/replication_group.py b/sdk/python/pulumi_aws/elasticache/replication_group.py index 345a8f2a487..bfcf8ee85d8 100644 --- a/sdk/python/pulumi_aws/elasticache/replication_group.py +++ b/sdk/python/pulumi_aws/elasticache/replication_group.py @@ -26,6 +26,7 @@ def __init__(__self__, cluster_mode: Optional[pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, node_type: Optional[pulumi.Input[str]] = None, @@ -150,9 +151,10 @@ def __init__(__self__, :param pulumi.Input[bool] auto_minor_version_upgrade: Specifies whether a minor engine upgrades will be applied automatically to the underlying Cache Cluster instances during the maintenance window. This parameter is currently not supported by the AWS API. Defaults to `true`. :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. - :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` :param pulumi.Input[str] engine_version: The version number of the cache engine to be used for the cache clusters in this replication group. + :param pulumi.Input[str] final_snapshot_identifier: The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -209,6 +211,7 @@ def __init__(__self__, __props__['cluster_mode'] = cluster_mode __props__['engine'] = engine __props__['engine_version'] = engine_version + __props__['final_snapshot_identifier'] = final_snapshot_identifier __props__['kms_key_id'] = kms_key_id __props__['maintenance_window'] = maintenance_window __props__['node_type'] = node_type @@ -255,6 +258,7 @@ def get(resource_name: str, configuration_endpoint_address: Optional[pulumi.Input[str]] = None, engine: Optional[pulumi.Input[str]] = None, engine_version: Optional[pulumi.Input[str]] = None, + final_snapshot_identifier: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, maintenance_window: Optional[pulumi.Input[str]] = None, member_clusters: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, @@ -290,10 +294,11 @@ def get(resource_name: str, :param pulumi.Input[bool] automatic_failover_enabled: Specifies whether a read-only replica will be automatically promoted to read/write primary if the existing primary fails. If true, Multi-AZ is enabled for this replication group. If false, Multi-AZ is disabled for this replication group. Must be enabled for Redis (cluster mode enabled) replication groups. Defaults to `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] availability_zones: A list of EC2 availability zones in which the replication group's cache clusters will be created. The order of the availability zones in the list is not important. :param pulumi.Input[bool] cluster_enabled: Indicates if cluster mode is enabled. - :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + :param pulumi.Input[pulumi.InputType['ReplicationGroupClusterModeArgs']] cluster_mode: Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. :param pulumi.Input[str] configuration_endpoint_address: The address of the replication group configuration endpoint when cluster mode is enabled. :param pulumi.Input[str] engine: The name of the cache engine to be used for the clusters in this replication group. e.g. `redis` :param pulumi.Input[str] engine_version: The version number of the cache engine to be used for the cache clusters in this replication group. + :param pulumi.Input[str] final_snapshot_identifier: The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. :param pulumi.Input[str] kms_key_id: The ARN of the key that you wish to use if encrypting at rest. If not supplied, uses service managed encryption. Can be specified only if `at_rest_encryption_enabled = true`. :param pulumi.Input[str] maintenance_window: Specifies the weekly time range for when maintenance on the cache cluster is performed. The format is `ddd:hh24:mi-ddd:hh24:mi` (24H Clock UTC). @@ -342,6 +347,7 @@ def get(resource_name: str, __props__["configuration_endpoint_address"] = configuration_endpoint_address __props__["engine"] = engine __props__["engine_version"] = engine_version + __props__["final_snapshot_identifier"] = final_snapshot_identifier __props__["kms_key_id"] = kms_key_id __props__["maintenance_window"] = maintenance_window __props__["member_clusters"] = member_clusters @@ -425,7 +431,7 @@ def cluster_enabled(self) -> pulumi.Output[bool]: @pulumi.getter(name="clusterMode") def cluster_mode(self) -> pulumi.Output['outputs.ReplicationGroupClusterMode']: """ - Create a native redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. + Create a native Redis cluster. `automatic_failover_enabled` must be set to true. Cluster Mode documented below. Only 1 `cluster_mode` block is allowed. One of `number_cache_clusters` or `cluster_mode` is required. Note that configuring this block does not enable cluster mode, i.e. data sharding, this requires using a parameter group that has the parameter `cluster-enabled` set to true. """ return pulumi.get(self, "cluster_mode") @@ -453,6 +459,14 @@ def engine_version(self) -> pulumi.Output[str]: """ return pulumi.get(self, "engine_version") + @property + @pulumi.getter(name="finalSnapshotIdentifier") + def final_snapshot_identifier(self) -> pulumi.Output[Optional[str]]: + """ + The name of your final node group (shard) snapshot. ElastiCache creates the snapshot from the primary node in the cluster. If omitted, no final snapshot will be made. + """ + return pulumi.get(self, "final_snapshot_identifier") + @property @pulumi.getter(name="kmsKeyId") def kms_key_id(self) -> pulumi.Output[Optional[str]]: diff --git a/sdk/python/pulumi_aws/fms/__init__.py b/sdk/python/pulumi_aws/fms/__init__.py index 33c2b128a8f..2d121366a13 100644 --- a/sdk/python/pulumi_aws/fms/__init__.py +++ b/sdk/python/pulumi_aws/fms/__init__.py @@ -4,6 +4,9 @@ # Export this package's modules as members: from .admin_account import * +from .policy import * +from ._inputs import * +from . import outputs def _register_module(): import pulumi @@ -19,11 +22,14 @@ def version(self): def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: if typ == "aws:fms/adminAccount:AdminAccount": return AdminAccount(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:fms/policy:Policy": + return Policy(name, pulumi.ResourceOptions(urn=urn)) else: raise Exception(f"unknown resource type {typ}") _module_instance = Module() pulumi.runtime.register_resource_module("aws", "fms/adminAccount", _module_instance) + pulumi.runtime.register_resource_module("aws", "fms/policy", _module_instance) _register_module() diff --git a/sdk/python/pulumi_aws/fms/_inputs.py b/sdk/python/pulumi_aws/fms/_inputs.py new file mode 100644 index 00000000000..47c94a9d691 --- /dev/null +++ b/sdk/python/pulumi_aws/fms/_inputs.py @@ -0,0 +1,124 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = [ + 'PolicyExcludeMapArgs', + 'PolicyIncludeMapArgs', + 'PolicySecurityServicePolicyDataArgs', +] + +@pulumi.input_type +class PolicyExcludeMapArgs: + def __init__(__self__, *, + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + orgunits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] accounts: A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + if accounts is not None: + pulumi.set(__self__, "accounts", accounts) + if orgunits is not None: + pulumi.set(__self__, "orgunits", orgunits) + + @property + @pulumi.getter + def accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + return pulumi.get(self, "accounts") + + @accounts.setter + def accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "accounts", value) + + @property + @pulumi.getter + def orgunits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "orgunits") + + @orgunits.setter + def orgunits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "orgunits", value) + + +@pulumi.input_type +class PolicyIncludeMapArgs: + def __init__(__self__, *, + accounts: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + orgunits: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] accounts: A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + if accounts is not None: + pulumi.set(__self__, "accounts", accounts) + if orgunits is not None: + pulumi.set(__self__, "orgunits", orgunits) + + @property + @pulumi.getter + def accounts(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + return pulumi.get(self, "accounts") + + @accounts.setter + def accounts(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "accounts", value) + + @property + @pulumi.getter + def orgunits(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + return pulumi.get(self, "orgunits") + + @orgunits.setter + def orgunits(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "orgunits", value) + + +@pulumi.input_type +class PolicySecurityServicePolicyDataArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + managed_service_data: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] type: valid values are `BLOCK` or `COUNT`. + :param pulumi.Input[str] managed_service_data: Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + """ + pulumi.set(__self__, "type", type) + if managed_service_data is not None: + pulumi.set(__self__, "managed_service_data", managed_service_data) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + valid values are `BLOCK` or `COUNT`. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="managedServiceData") + def managed_service_data(self) -> Optional[pulumi.Input[str]]: + """ + Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + """ + return pulumi.get(self, "managed_service_data") + + @managed_service_data.setter + def managed_service_data(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "managed_service_data", value) + + diff --git a/sdk/python/pulumi_aws/fms/outputs.py b/sdk/python/pulumi_aws/fms/outputs.py new file mode 100644 index 00000000000..606694f7dbe --- /dev/null +++ b/sdk/python/pulumi_aws/fms/outputs.py @@ -0,0 +1,109 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = [ + 'PolicyExcludeMap', + 'PolicyIncludeMap', + 'PolicySecurityServicePolicyData', +] + +@pulumi.output_type +class PolicyExcludeMap(dict): + def __init__(__self__, *, + accounts: Optional[Sequence[str]] = None, + orgunits: Optional[Sequence[str]] = None): + """ + :param Sequence[str] accounts: A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + if accounts is not None: + pulumi.set(__self__, "accounts", accounts) + if orgunits is not None: + pulumi.set(__self__, "orgunits", orgunits) + + @property + @pulumi.getter + def accounts(self) -> Optional[Sequence[str]]: + """ + A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + return pulumi.get(self, "accounts") + + @property + @pulumi.getter + def orgunits(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "orgunits") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class PolicyIncludeMap(dict): + def __init__(__self__, *, + accounts: Optional[Sequence[str]] = None, + orgunits: Optional[Sequence[str]] = None): + """ + :param Sequence[str] accounts: A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + if accounts is not None: + pulumi.set(__self__, "accounts", accounts) + if orgunits is not None: + pulumi.set(__self__, "orgunits", orgunits) + + @property + @pulumi.getter + def accounts(self) -> Optional[Sequence[str]]: + """ + A list of AWS Organization member Accounts that you want to include for this AWS FMS Policy. + """ + return pulumi.get(self, "accounts") + + @property + @pulumi.getter + def orgunits(self) -> Optional[Sequence[str]]: + return pulumi.get(self, "orgunits") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class PolicySecurityServicePolicyData(dict): + def __init__(__self__, *, + type: str, + managed_service_data: Optional[str] = None): + """ + :param str type: valid values are `BLOCK` or `COUNT`. + :param str managed_service_data: Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + """ + pulumi.set(__self__, "type", type) + if managed_service_data is not None: + pulumi.set(__self__, "managed_service_data", managed_service_data) + + @property + @pulumi.getter + def type(self) -> str: + """ + valid values are `BLOCK` or `COUNT`. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="managedServiceData") + def managed_service_data(self) -> Optional[str]: + """ + Details about the service that are specific to the service type, in JSON format. For service type SHIELD_ADVANCED, this is an empty string. + """ + return pulumi.get(self, "managed_service_data") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + diff --git a/sdk/python/pulumi_aws/fms/policy.py b/sdk/python/pulumi_aws/fms/policy.py new file mode 100644 index 00000000000..2504367227e --- /dev/null +++ b/sdk/python/pulumi_aws/fms/policy.py @@ -0,0 +1,268 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['Policy'] + + +class Policy(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + delete_all_policy_resources: Optional[pulumi.Input[bool]] = None, + exclude_map: Optional[pulumi.Input[pulumi.InputType['PolicyExcludeMapArgs']]] = None, + exclude_resource_tags: Optional[pulumi.Input[bool]] = None, + include_map: Optional[pulumi.Input[pulumi.InputType['PolicyIncludeMapArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + remediation_enabled: Optional[pulumi.Input[bool]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_service_policy_data: Optional[pulumi.Input[pulumi.InputType['PolicySecurityServicePolicyDataArgs']]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides a resource to create an AWS Firewall Manager policy. You need to be using AWS organizations and have enabled the Firewall Manager administrator account. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.wafregional.RuleGroup("test", metric_name="WAFRuleGroupExample") + example = aws.fms.Policy("example", + exclude_resource_tags=False, + remediation_enabled=False, + resource_type_lists=["AWS::ElasticLoadBalancingV2::LoadBalancer"], + security_service_policy_data=aws.fms.PolicySecurityServicePolicyDataArgs( + managed_service_data=test.id.apply(lambda id: f\"\"\" {{ + "type": "WAF", + "ruleGroups": + [{{ + "id":"{id}", + "overrideAction" : {{ + "type": "COUNT" + }} + }}], + "defaultAction": + {{ + "type": "BLOCK" + }}, + "overrideCustomerWebACLAssociation": false + }} + + \"\"\"), + type="WAF", + )) + ``` + + ## Import + + Firewall Manager policies can be imported using the policy ID, e.g. + + ```sh + $ pulumi import aws:fms/policy:Policy example 5be49585-a7e3-4c49-dde1-a179fe4a619a + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] delete_all_policy_resources: If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + :param pulumi.Input[pulumi.InputType['PolicyExcludeMapArgs']] exclude_map: A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + :param pulumi.Input[bool] exclude_resource_tags: A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + :param pulumi.Input[pulumi.InputType['PolicyIncludeMapArgs']] include_map: A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + :param pulumi.Input[str] name: The friendly name of the AWS Firewall Manager Policy. + :param pulumi.Input[bool] remediation_enabled: A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_type_lists: A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + :param pulumi.Input[pulumi.InputType['PolicySecurityServicePolicyDataArgs']] security_service_policy_data: The objects to include in Security Service Policy Data. Documented below. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['delete_all_policy_resources'] = delete_all_policy_resources + __props__['exclude_map'] = exclude_map + if exclude_resource_tags is None and not opts.urn: + raise TypeError("Missing required property 'exclude_resource_tags'") + __props__['exclude_resource_tags'] = exclude_resource_tags + __props__['include_map'] = include_map + __props__['name'] = name + __props__['remediation_enabled'] = remediation_enabled + __props__['resource_tags'] = resource_tags + if resource_type_lists is None and not opts.urn: + raise TypeError("Missing required property 'resource_type_lists'") + __props__['resource_type_lists'] = resource_type_lists + if security_service_policy_data is None and not opts.urn: + raise TypeError("Missing required property 'security_service_policy_data'") + __props__['security_service_policy_data'] = security_service_policy_data + __props__['arn'] = None + __props__['policy_update_token'] = None + super(Policy, __self__).__init__( + 'aws:fms/policy:Policy', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + delete_all_policy_resources: Optional[pulumi.Input[bool]] = None, + exclude_map: Optional[pulumi.Input[pulumi.InputType['PolicyExcludeMapArgs']]] = None, + exclude_resource_tags: Optional[pulumi.Input[bool]] = None, + include_map: Optional[pulumi.Input[pulumi.InputType['PolicyIncludeMapArgs']]] = None, + name: Optional[pulumi.Input[str]] = None, + policy_update_token: Optional[pulumi.Input[str]] = None, + remediation_enabled: Optional[pulumi.Input[bool]] = None, + resource_tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type_lists: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + security_service_policy_data: Optional[pulumi.Input[pulumi.InputType['PolicySecurityServicePolicyDataArgs']]] = None) -> 'Policy': + """ + Get an existing Policy resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[bool] delete_all_policy_resources: If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + :param pulumi.Input[pulumi.InputType['PolicyExcludeMapArgs']] exclude_map: A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + :param pulumi.Input[bool] exclude_resource_tags: A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + :param pulumi.Input[pulumi.InputType['PolicyIncludeMapArgs']] include_map: A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + :param pulumi.Input[str] name: The friendly name of the AWS Firewall Manager Policy. + :param pulumi.Input[str] policy_update_token: A unique identifier for each update to the policy. + :param pulumi.Input[bool] remediation_enabled: A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] resource_tags: A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + :param pulumi.Input[Sequence[pulumi.Input[str]]] resource_type_lists: A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + :param pulumi.Input[pulumi.InputType['PolicySecurityServicePolicyDataArgs']] security_service_policy_data: The objects to include in Security Service Policy Data. Documented below. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["arn"] = arn + __props__["delete_all_policy_resources"] = delete_all_policy_resources + __props__["exclude_map"] = exclude_map + __props__["exclude_resource_tags"] = exclude_resource_tags + __props__["include_map"] = include_map + __props__["name"] = name + __props__["policy_update_token"] = policy_update_token + __props__["remediation_enabled"] = remediation_enabled + __props__["resource_tags"] = resource_tags + __props__["resource_type_lists"] = resource_type_lists + __props__["security_service_policy_data"] = security_service_policy_data + return Policy(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="deleteAllPolicyResources") + def delete_all_policy_resources(self) -> pulumi.Output[Optional[bool]]: + """ + If true, the request will also perform a clean-up process. Defaults to `true`. More information can be found here [AWS Firewall Manager delete policy](https://docs.aws.amazon.com/fms/2018-01-01/APIReference/API_DeletePolicy.html) + """ + return pulumi.get(self, "delete_all_policy_resources") + + @property + @pulumi.getter(name="excludeMap") + def exclude_map(self) -> pulumi.Output[Optional['outputs.PolicyExcludeMap']]: + """ + A map of lists, with a single key named 'account' with a list of AWS Account IDs to exclude from this policy. + """ + return pulumi.get(self, "exclude_map") + + @property + @pulumi.getter(name="excludeResourceTags") + def exclude_resource_tags(self) -> pulumi.Output[bool]: + """ + A boolean value, if true the tags that are specified in the `resource_tags` are not protected by this policy. If set to false and resource_tags are populated, resources that contain tags will be protected by this policy. + """ + return pulumi.get(self, "exclude_resource_tags") + + @property + @pulumi.getter(name="includeMap") + def include_map(self) -> pulumi.Output[Optional['outputs.PolicyIncludeMap']]: + """ + A map of lists, with a single key named 'account' with a list of AWS Account IDs to include for this policy. + """ + return pulumi.get(self, "include_map") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The friendly name of the AWS Firewall Manager Policy. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="policyUpdateToken") + def policy_update_token(self) -> pulumi.Output[str]: + """ + A unique identifier for each update to the policy. + """ + return pulumi.get(self, "policy_update_token") + + @property + @pulumi.getter(name="remediationEnabled") + def remediation_enabled(self) -> pulumi.Output[Optional[bool]]: + """ + A boolean value, indicates if the policy should automatically applied to resources that already exist in the account. + """ + return pulumi.get(self, "remediation_enabled") + + @property + @pulumi.getter(name="resourceTags") + def resource_tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of resource tags, that if present will filter protections on resources based on the exclude_resource_tags. + """ + return pulumi.get(self, "resource_tags") + + @property + @pulumi.getter(name="resourceTypeLists") + def resource_type_lists(self) -> pulumi.Output[Sequence[str]]: + """ + A list of resource types to protect, valid values are: `AWS::ElasticLoadBalancingV2::LoadBalancer`, `AWS::ApiGateway::Stage`, `AWS::CloudFront::Distribution`. + """ + return pulumi.get(self, "resource_type_lists") + + @property + @pulumi.getter(name="securityServicePolicyData") + def security_service_policy_data(self) -> pulumi.Output['outputs.PolicySecurityServicePolicyData']: + """ + The objects to include in Security Service Policy Data. Documented below. + """ + return pulumi.get(self, "security_service_policy_data") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/get_partition.py b/sdk/python/pulumi_aws/get_partition.py index f1f62badf39..8416b30c7e9 100644 --- a/sdk/python/pulumi_aws/get_partition.py +++ b/sdk/python/pulumi_aws/get_partition.py @@ -19,7 +19,7 @@ class GetPartitionResult: """ A collection of values returned by getPartition. """ - def __init__(__self__, dns_suffix=None, id=None, partition=None): + def __init__(__self__, dns_suffix=None, id=None, partition=None, reverse_dns_prefix=None): if dns_suffix and not isinstance(dns_suffix, str): raise TypeError("Expected argument 'dns_suffix' to be a str") pulumi.set(__self__, "dns_suffix", dns_suffix) @@ -29,6 +29,9 @@ def __init__(__self__, dns_suffix=None, id=None, partition=None): if partition and not isinstance(partition, str): raise TypeError("Expected argument 'partition' to be a str") pulumi.set(__self__, "partition", partition) + if reverse_dns_prefix and not isinstance(reverse_dns_prefix, str): + raise TypeError("Expected argument 'reverse_dns_prefix' to be a str") + pulumi.set(__self__, "reverse_dns_prefix", reverse_dns_prefix) @property @pulumi.getter(name="dnsSuffix") @@ -54,6 +57,14 @@ def partition(self) -> str: """ return pulumi.get(self, "partition") + @property + @pulumi.getter(name="reverseDnsPrefix") + def reverse_dns_prefix(self) -> str: + """ + Prefix of service names (e.g. `com.amazonaws` in AWS Commercial, `cn.com.amazonaws` in AWS China). + """ + return pulumi.get(self, "reverse_dns_prefix") + class AwaitableGetPartitionResult(GetPartitionResult): # pylint: disable=using-constant-test @@ -63,7 +74,8 @@ def __await__(self): return GetPartitionResult( dns_suffix=self.dns_suffix, id=self.id, - partition=self.partition) + partition=self.partition, + reverse_dns_prefix=self.reverse_dns_prefix) def get_partition(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPartitionResult: @@ -94,4 +106,5 @@ def get_partition(opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetPa return AwaitableGetPartitionResult( dns_suffix=__ret__.dns_suffix, id=__ret__.id, - partition=__ret__.partition) + partition=__ret__.partition, + reverse_dns_prefix=__ret__.reverse_dns_prefix) diff --git a/sdk/python/pulumi_aws/identitystore/__init__.py b/sdk/python/pulumi_aws/identitystore/__init__.py new file mode 100644 index 00000000000..b7ab19703f9 --- /dev/null +++ b/sdk/python/pulumi_aws/identitystore/__init__.py @@ -0,0 +1,9 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +# Export this package's modules as members: +from .get_group import * +from .get_user import * +from ._inputs import * +from . import outputs diff --git a/sdk/python/pulumi_aws/identitystore/_inputs.py b/sdk/python/pulumi_aws/identitystore/_inputs.py new file mode 100644 index 00000000000..1d64d9d18a8 --- /dev/null +++ b/sdk/python/pulumi_aws/identitystore/_inputs.py @@ -0,0 +1,89 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = [ + 'GetGroupFilterArgs', + 'GetUserFilterArgs', +] + +@pulumi.input_type +class GetGroupFilterArgs: + def __init__(__self__, *, + attribute_path: str, + attribute_value: str): + """ + :param str attribute_path: The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + :param str attribute_value: The value for an attribute. + """ + pulumi.set(__self__, "attribute_path", attribute_path) + pulumi.set(__self__, "attribute_value", attribute_value) + + @property + @pulumi.getter(name="attributePath") + def attribute_path(self) -> str: + """ + The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + """ + return pulumi.get(self, "attribute_path") + + @attribute_path.setter + def attribute_path(self, value: str): + pulumi.set(self, "attribute_path", value) + + @property + @pulumi.getter(name="attributeValue") + def attribute_value(self) -> str: + """ + The value for an attribute. + """ + return pulumi.get(self, "attribute_value") + + @attribute_value.setter + def attribute_value(self, value: str): + pulumi.set(self, "attribute_value", value) + + +@pulumi.input_type +class GetUserFilterArgs: + def __init__(__self__, *, + attribute_path: str, + attribute_value: str): + """ + :param str attribute_path: The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + :param str attribute_value: The value for an attribute. + """ + pulumi.set(__self__, "attribute_path", attribute_path) + pulumi.set(__self__, "attribute_value", attribute_value) + + @property + @pulumi.getter(name="attributePath") + def attribute_path(self) -> str: + """ + The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + """ + return pulumi.get(self, "attribute_path") + + @attribute_path.setter + def attribute_path(self, value: str): + pulumi.set(self, "attribute_path", value) + + @property + @pulumi.getter(name="attributeValue") + def attribute_value(self) -> str: + """ + The value for an attribute. + """ + return pulumi.get(self, "attribute_value") + + @attribute_value.setter + def attribute_value(self, value: str): + pulumi.set(self, "attribute_value", value) + + diff --git a/sdk/python/pulumi_aws/identitystore/get_group.py b/sdk/python/pulumi_aws/identitystore/get_group.py new file mode 100644 index 00000000000..1ba8f84a862 --- /dev/null +++ b/sdk/python/pulumi_aws/identitystore/get_group.py @@ -0,0 +1,113 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetGroupResult', + 'AwaitableGetGroupResult', + 'get_group', +] + +@pulumi.output_type +class GetGroupResult: + """ + A collection of values returned by getGroup. + """ + def __init__(__self__, display_name=None, filters=None, group_id=None, id=None, identity_store_id=None): + if display_name and not isinstance(display_name, str): + raise TypeError("Expected argument 'display_name' to be a str") + pulumi.set(__self__, "display_name", display_name) + if filters and not isinstance(filters, list): + raise TypeError("Expected argument 'filters' to be a list") + pulumi.set(__self__, "filters", filters) + if group_id and not isinstance(group_id, str): + raise TypeError("Expected argument 'group_id' to be a str") + pulumi.set(__self__, "group_id", group_id) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if identity_store_id and not isinstance(identity_store_id, str): + raise TypeError("Expected argument 'identity_store_id' to be a str") + pulumi.set(__self__, "identity_store_id", identity_store_id) + + @property + @pulumi.getter(name="displayName") + def display_name(self) -> str: + """ + The group's display name value. + """ + return pulumi.get(self, "display_name") + + @property + @pulumi.getter + def filters(self) -> Sequence['outputs.GetGroupFilterResult']: + return pulumi.get(self, "filters") + + @property + @pulumi.getter(name="groupId") + def group_id(self) -> str: + return pulumi.get(self, "group_id") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="identityStoreId") + def identity_store_id(self) -> str: + return pulumi.get(self, "identity_store_id") + + +class AwaitableGetGroupResult(GetGroupResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetGroupResult( + display_name=self.display_name, + filters=self.filters, + group_id=self.group_id, + id=self.id, + identity_store_id=self.identity_store_id) + + +def get_group(filters: Optional[Sequence[pulumi.InputType['GetGroupFilterArgs']]] = None, + group_id: Optional[str] = None, + identity_store_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetGroupResult: + """ + Use this data source to get an Identity Store Group. + + + :param Sequence[pulumi.InputType['GetGroupFilterArgs']] filters: Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + :param str group_id: The identifier for a group in the Identity Store. + :param str identity_store_id: The Identity Store ID associated with the Single Sign-On Instance. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['groupId'] = group_id + __args__['identityStoreId'] = identity_store_id + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = _utilities.get_version() + __ret__ = pulumi.runtime.invoke('aws:identitystore/getGroup:getGroup', __args__, opts=opts, typ=GetGroupResult).value + + return AwaitableGetGroupResult( + display_name=__ret__.display_name, + filters=__ret__.filters, + group_id=__ret__.group_id, + id=__ret__.id, + identity_store_id=__ret__.identity_store_id) diff --git a/sdk/python/pulumi_aws/identitystore/get_user.py b/sdk/python/pulumi_aws/identitystore/get_user.py new file mode 100644 index 00000000000..448674e1bf8 --- /dev/null +++ b/sdk/python/pulumi_aws/identitystore/get_user.py @@ -0,0 +1,113 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = [ + 'GetUserResult', + 'AwaitableGetUserResult', + 'get_user', +] + +@pulumi.output_type +class GetUserResult: + """ + A collection of values returned by getUser. + """ + def __init__(__self__, filters=None, id=None, identity_store_id=None, user_id=None, user_name=None): + if filters and not isinstance(filters, list): + raise TypeError("Expected argument 'filters' to be a list") + pulumi.set(__self__, "filters", filters) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if identity_store_id and not isinstance(identity_store_id, str): + raise TypeError("Expected argument 'identity_store_id' to be a str") + pulumi.set(__self__, "identity_store_id", identity_store_id) + if user_id and not isinstance(user_id, str): + raise TypeError("Expected argument 'user_id' to be a str") + pulumi.set(__self__, "user_id", user_id) + if user_name and not isinstance(user_name, str): + raise TypeError("Expected argument 'user_name' to be a str") + pulumi.set(__self__, "user_name", user_name) + + @property + @pulumi.getter + def filters(self) -> Sequence['outputs.GetUserFilterResult']: + return pulumi.get(self, "filters") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="identityStoreId") + def identity_store_id(self) -> str: + return pulumi.get(self, "identity_store_id") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> str: + return pulumi.get(self, "user_id") + + @property + @pulumi.getter(name="userName") + def user_name(self) -> str: + """ + The user's user name value. + """ + return pulumi.get(self, "user_name") + + +class AwaitableGetUserResult(GetUserResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetUserResult( + filters=self.filters, + id=self.id, + identity_store_id=self.identity_store_id, + user_id=self.user_id, + user_name=self.user_name) + + +def get_user(filters: Optional[Sequence[pulumi.InputType['GetUserFilterArgs']]] = None, + identity_store_id: Optional[str] = None, + user_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetUserResult: + """ + Use this data source to get an Identity Store User. + + + :param Sequence[pulumi.InputType['GetUserFilterArgs']] filters: Configuration block(s) for filtering. Currently, the AWS Identity Store API supports only 1 filter. Detailed below. + :param str identity_store_id: The Identity Store ID associated with the Single Sign-On Instance. + :param str user_id: The identifier for a user in the Identity Store. + """ + __args__ = dict() + __args__['filters'] = filters + __args__['identityStoreId'] = identity_store_id + __args__['userId'] = user_id + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = _utilities.get_version() + __ret__ = pulumi.runtime.invoke('aws:identitystore/getUser:getUser', __args__, opts=opts, typ=GetUserResult).value + + return AwaitableGetUserResult( + filters=__ret__.filters, + id=__ret__.id, + identity_store_id=__ret__.identity_store_id, + user_id=__ret__.user_id, + user_name=__ret__.user_name) diff --git a/sdk/python/pulumi_aws/identitystore/outputs.py b/sdk/python/pulumi_aws/identitystore/outputs.py new file mode 100644 index 00000000000..fec342d01cd --- /dev/null +++ b/sdk/python/pulumi_aws/identitystore/outputs.py @@ -0,0 +1,73 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = [ + 'GetGroupFilterResult', + 'GetUserFilterResult', +] + +@pulumi.output_type +class GetGroupFilterResult(dict): + def __init__(__self__, *, + attribute_path: str, + attribute_value: str): + """ + :param str attribute_path: The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + :param str attribute_value: The value for an attribute. + """ + pulumi.set(__self__, "attribute_path", attribute_path) + pulumi.set(__self__, "attribute_value", attribute_value) + + @property + @pulumi.getter(name="attributePath") + def attribute_path(self) -> str: + """ + The attribute path that is used to specify which attribute name to search. Currently, `DisplayName` is the only valid attribute path. + """ + return pulumi.get(self, "attribute_path") + + @property + @pulumi.getter(name="attributeValue") + def attribute_value(self) -> str: + """ + The value for an attribute. + """ + return pulumi.get(self, "attribute_value") + + +@pulumi.output_type +class GetUserFilterResult(dict): + def __init__(__self__, *, + attribute_path: str, + attribute_value: str): + """ + :param str attribute_path: The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + :param str attribute_value: The value for an attribute. + """ + pulumi.set(__self__, "attribute_path", attribute_path) + pulumi.set(__self__, "attribute_value", attribute_value) + + @property + @pulumi.getter(name="attributePath") + def attribute_path(self) -> str: + """ + The attribute path that is used to specify which attribute name to search. Currently, `UserName` is the only valid attribute path. + """ + return pulumi.get(self, "attribute_path") + + @property + @pulumi.getter(name="attributeValue") + def attribute_value(self) -> str: + """ + The value for an attribute. + """ + return pulumi.get(self, "attribute_value") + + diff --git a/sdk/python/pulumi_aws/rds/instance.py b/sdk/python/pulumi_aws/rds/instance.py index ed63e1d24e2..d13f6c64b05 100644 --- a/sdk/python/pulumi_aws/rds/instance.py +++ b/sdk/python/pulumi_aws/rds/instance.py @@ -189,7 +189,7 @@ def __init__(__self__, Note that for Amazon Aurora instances the engine version must match the `DB cluster`'s engine version'. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - set to `false`. + set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. :param pulumi.Input[bool] iam_database_authentication_enabled: Specifies whether or mappings of AWS Identity and Access Management (IAM) accounts to database accounts is enabled. @@ -480,7 +480,7 @@ def get(resource_name: str, Note that for Amazon Aurora instances the engine version must match the `DB cluster`'s engine version'. :param pulumi.Input[str] final_snapshot_identifier: The name of your final DB snapshot when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - set to `false`. + set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. :param pulumi.Input[str] hosted_zone_id: The canonical hosted zone ID of the DB instance (to be used in a Route 53 Alias record). :param pulumi.Input[bool] iam_database_authentication_enabled: Specifies whether or @@ -837,7 +837,7 @@ def final_snapshot_identifier(self) -> pulumi.Output[Optional[str]]: """ The name of your final DB snapshot when this DB instance is deleted. Must be provided if `skip_final_snapshot` is - set to `false`. + set to `false`. The value must begin with a letter, only contain alphanumeric characters and hyphens, and not end with a hyphen or contain two consecutive hyphens. Must not be provided when deleting a read replica. """ return pulumi.get(self, "final_snapshot_identifier") diff --git a/sdk/python/pulumi_aws/route53/__init__.py b/sdk/python/pulumi_aws/route53/__init__.py index 201c42cb38a..6f8bc6d6b7c 100644 --- a/sdk/python/pulumi_aws/route53/__init__.py +++ b/sdk/python/pulumi_aws/route53/__init__.py @@ -13,6 +13,7 @@ from .health_check import * from .query_log import * from .record import * +from .resolver_dns_sec_config import * from .resolver_endpoint import * from .resolver_query_log_config import * from .resolver_query_log_config_association import * @@ -44,6 +45,8 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: return QueryLog(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:route53/record:Record": return Record(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig": + return ResolverDnsSecConfig(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:route53/resolverEndpoint:ResolverEndpoint": return ResolverEndpoint(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:route53/resolverQueryLogConfig:ResolverQueryLogConfig": @@ -69,6 +72,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: pulumi.runtime.register_resource_module("aws", "route53/healthCheck", _module_instance) pulumi.runtime.register_resource_module("aws", "route53/queryLog", _module_instance) pulumi.runtime.register_resource_module("aws", "route53/record", _module_instance) + pulumi.runtime.register_resource_module("aws", "route53/resolverDnsSecConfig", _module_instance) pulumi.runtime.register_resource_module("aws", "route53/resolverEndpoint", _module_instance) pulumi.runtime.register_resource_module("aws", "route53/resolverQueryLogConfig", _module_instance) pulumi.runtime.register_resource_module("aws", "route53/resolverQueryLogConfigAssociation", _module_instance) diff --git a/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py b/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py new file mode 100644 index 00000000000..baf2d18aceb --- /dev/null +++ b/sdk/python/pulumi_aws/route53/resolver_dns_sec_config.py @@ -0,0 +1,146 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = ['ResolverDnsSecConfig'] + + +class ResolverDnsSecConfig(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + resource_id: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides a Route 53 Resolver DNSSEC config resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example_vpc = aws.ec2.Vpc("exampleVpc", + cidr_block="10.0.0.0/16", + enable_dns_support=True, + enable_dns_hostnames=True) + example_resolver_dns_sec_config = aws.route53.ResolverDnsSecConfig("exampleResolverDnsSecConfig", resource_id=example_vpc.id) + ``` + + ## Import + + Route 53 Resolver DNSSEC configs can be imported using the Route 53 Resolver DNSSEC config ID, e.g. + + ```sh + $ pulumi import aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig example rdsc-be1866ecc1683e95 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] resource_id: The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if resource_id is None and not opts.urn: + raise TypeError("Missing required property 'resource_id'") + __props__['resource_id'] = resource_id + __props__['arn'] = None + __props__['owner_id'] = None + __props__['validation_status'] = None + super(ResolverDnsSecConfig, __self__).__init__( + 'aws:route53/resolverDnsSecConfig:ResolverDnsSecConfig', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + owner_id: Optional[pulumi.Input[str]] = None, + resource_id: Optional[pulumi.Input[str]] = None, + validation_status: Optional[pulumi.Input[str]] = None) -> 'ResolverDnsSecConfig': + """ + Get an existing ResolverDnsSecConfig resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] arn: The ARN for a configuration for DNSSEC validation. + :param pulumi.Input[str] owner_id: The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + :param pulumi.Input[str] resource_id: The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + :param pulumi.Input[str] validation_status: The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["arn"] = arn + __props__["owner_id"] = owner_id + __props__["resource_id"] = resource_id + __props__["validation_status"] = validation_status + return ResolverDnsSecConfig(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN for a configuration for DNSSEC validation. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="ownerId") + def owner_id(self) -> pulumi.Output[str]: + """ + The owner account ID of the virtual private cloud (VPC) for a configuration for DNSSEC validation. + """ + return pulumi.get(self, "owner_id") + + @property + @pulumi.getter(name="resourceId") + def resource_id(self) -> pulumi.Output[str]: + """ + The ID of the virtual private cloud (VPC) that you're updating the DNSSEC validation status for. + """ + return pulumi.get(self, "resource_id") + + @property + @pulumi.getter(name="validationStatus") + def validation_status(self) -> pulumi.Output[str]: + """ + The validation status for a DNSSEC configuration. The status can be one of the following: `ENABLING`, `ENABLED`, `DISABLING` and `DISABLED`. + """ + return pulumi.get(self, "validation_status") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/sagemaker/__init__.py b/sdk/python/pulumi_aws/sagemaker/__init__.py index af74ac23ea5..edbb31c6805 100644 --- a/sdk/python/pulumi_aws/sagemaker/__init__.py +++ b/sdk/python/pulumi_aws/sagemaker/__init__.py @@ -4,6 +4,7 @@ # Export this package's modules as members: from .code_repository import * +from .domain import * from .endpoint import * from .endpoint_configuration import * from .get_prebuilt_ecr_image import * @@ -28,6 +29,8 @@ def version(self): def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: if typ == "aws:sagemaker/codeRepository:CodeRepository": return CodeRepository(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:sagemaker/domain:Domain": + return Domain(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:sagemaker/endpoint:Endpoint": return Endpoint(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:sagemaker/endpointConfiguration:EndpointConfiguration": @@ -46,6 +49,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: _module_instance = Module() pulumi.runtime.register_resource_module("aws", "sagemaker/codeRepository", _module_instance) + pulumi.runtime.register_resource_module("aws", "sagemaker/domain", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/endpoint", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/endpointConfiguration", _module_instance) pulumi.runtime.register_resource_module("aws", "sagemaker/image", _module_instance) diff --git a/sdk/python/pulumi_aws/sagemaker/_inputs.py b/sdk/python/pulumi_aws/sagemaker/_inputs.py index dd490707986..e8c858c0f16 100644 --- a/sdk/python/pulumi_aws/sagemaker/_inputs.py +++ b/sdk/python/pulumi_aws/sagemaker/_inputs.py @@ -10,6 +10,15 @@ __all__ = [ 'CodeRepositoryGitConfigArgs', + 'DomainDefaultUserSettingsArgs', + 'DomainDefaultUserSettingsJupyterServerAppSettingsArgs', + 'DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs', + 'DomainDefaultUserSettingsKernelGatewayAppSettingsArgs', + 'DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs', + 'DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs', + 'DomainDefaultUserSettingsSharingSettingsArgs', + 'DomainDefaultUserSettingsTensorBoardAppSettingsArgs', + 'DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs', 'EndpointConfigurationDataCaptureConfigArgs', 'EndpointConfigurationDataCaptureConfigCaptureContentTypeHeaderArgs', 'EndpointConfigurationDataCaptureConfigCaptureOptionArgs', @@ -61,6 +70,415 @@ def secret_arn(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "secret_arn", value) +@pulumi.input_type +class DomainDefaultUserSettingsArgs: + def __init__(__self__, *, + execution_role: pulumi.Input[str], + jupyter_server_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsArgs']] = None, + kernel_gateway_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsArgs']] = None, + security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + sharing_settings: Optional[pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs']] = None, + tensor_board_app_settings: Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs']] = None): + """ + :param pulumi.Input[str] execution_role: The execution role ARN for the user. + :param pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsArgs'] jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. + :param pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsArgs'] kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The security groups. + :param pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs'] sharing_settings: The sharing settings. See Sharing Settings below. + :param pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs'] tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. + """ + pulumi.set(__self__, "execution_role", execution_role) + if jupyter_server_app_settings is not None: + pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + if kernel_gateway_app_settings is not None: + pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + if security_groups is not None: + pulumi.set(__self__, "security_groups", security_groups) + if sharing_settings is not None: + pulumi.set(__self__, "sharing_settings", sharing_settings) + if tensor_board_app_settings is not None: + pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> pulumi.Input[str]: + """ + The execution role ARN for the user. + """ + return pulumi.get(self, "execution_role") + + @execution_role.setter + def execution_role(self, value: pulumi.Input[str]): + pulumi.set(self, "execution_role", value) + + @property + @pulumi.getter(name="jupyterServerAppSettings") + def jupyter_server_app_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsArgs']]: + """ + The Jupyter server's app settings. See Jupyter Server App Settings below. + """ + return pulumi.get(self, "jupyter_server_app_settings") + + @jupyter_server_app_settings.setter + def jupyter_server_app_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsArgs']]): + pulumi.set(self, "jupyter_server_app_settings", value) + + @property + @pulumi.getter(name="kernelGatewayAppSettings") + def kernel_gateway_app_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsArgs']]: + """ + The kernel gateway app settings. See Kernel Gateway App Settings below. + """ + return pulumi.get(self, "kernel_gateway_app_settings") + + @kernel_gateway_app_settings.setter + def kernel_gateway_app_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsArgs']]): + pulumi.set(self, "kernel_gateway_app_settings", value) + + @property + @pulumi.getter(name="securityGroups") + def security_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + The security groups. + """ + return pulumi.get(self, "security_groups") + + @security_groups.setter + def security_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "security_groups", value) + + @property + @pulumi.getter(name="sharingSettings") + def sharing_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs']]: + """ + The sharing settings. See Sharing Settings below. + """ + return pulumi.get(self, "sharing_settings") + + @sharing_settings.setter + def sharing_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsSharingSettingsArgs']]): + pulumi.set(self, "sharing_settings", value) + + @property + @pulumi.getter(name="tensorBoardAppSettings") + def tensor_board_app_settings(self) -> Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs']]: + """ + The TensorBoard app settings. See TensorBoard App Settings below. + """ + return pulumi.get(self, "tensor_board_app_settings") + + @tensor_board_app_settings.setter + def tensor_board_app_settings(self, value: Optional[pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsArgs']]): + pulumi.set(self, "tensor_board_app_settings", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsJupyterServerAppSettingsArgs: + def __init__(__self__, *, + default_resource_spec: pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']): + """ + :param pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']: + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + @default_resource_spec.setter + def default_resource_spec(self, value: pulumi.Input['DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs']): + pulumi.set(self, "default_resource_spec", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs: + def __init__(__self__, *, + instance_type: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] instance_type: The instance type. + :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[pulumi.Input[str]]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + @sagemaker_image_arn.setter + def sagemaker_image_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sagemaker_image_arn", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsKernelGatewayAppSettingsArgs: + def __init__(__self__, *, + default_resource_spec: pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'], + custom_images: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs']]]] = None): + """ + :param pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs']]] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']: + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + @default_resource_spec.setter + def default_resource_spec(self, value: pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs']): + pulumi.set(self, "default_resource_spec", value) + + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs']]]]: + """ + A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + """ + return pulumi.get(self, "custom_images") + + @custom_images.setter + def custom_images(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs']]]]): + pulumi.set(self, "custom_images", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs: + def __init__(__self__, *, + app_image_config_name: pulumi.Input[str], + image_name: pulumi.Input[str], + image_version_number: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[str] app_image_config_name: The name of the App Image Config. + :param pulumi.Input[str] image_name: The name of the Custom Image. + :param pulumi.Input[int] image_version_number: The version number of the Custom Image. + """ + pulumi.set(__self__, "app_image_config_name", app_image_config_name) + pulumi.set(__self__, "image_name", image_name) + if image_version_number is not None: + pulumi.set(__self__, "image_version_number", image_version_number) + + @property + @pulumi.getter(name="appImageConfigName") + def app_image_config_name(self) -> pulumi.Input[str]: + """ + The name of the App Image Config. + """ + return pulumi.get(self, "app_image_config_name") + + @app_image_config_name.setter + def app_image_config_name(self, value: pulumi.Input[str]): + pulumi.set(self, "app_image_config_name", value) + + @property + @pulumi.getter(name="imageName") + def image_name(self) -> pulumi.Input[str]: + """ + The name of the Custom Image. + """ + return pulumi.get(self, "image_name") + + @image_name.setter + def image_name(self, value: pulumi.Input[str]): + pulumi.set(self, "image_name", value) + + @property + @pulumi.getter(name="imageVersionNumber") + def image_version_number(self) -> Optional[pulumi.Input[int]]: + """ + The version number of the Custom Image. + """ + return pulumi.get(self, "image_version_number") + + @image_version_number.setter + def image_version_number(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "image_version_number", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs: + def __init__(__self__, *, + instance_type: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] instance_type: The instance type. + :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[pulumi.Input[str]]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + @sagemaker_image_arn.setter + def sagemaker_image_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sagemaker_image_arn", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsSharingSettingsArgs: + def __init__(__self__, *, + notebook_output_option: Optional[pulumi.Input[str]] = None, + s3_kms_key_id: Optional[pulumi.Input[str]] = None, + s3_output_path: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] notebook_output_option: Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + :param pulumi.Input[str] s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + :param pulumi.Input[str] s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + """ + if notebook_output_option is not None: + pulumi.set(__self__, "notebook_output_option", notebook_output_option) + if s3_kms_key_id is not None: + pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + if s3_output_path is not None: + pulumi.set(__self__, "s3_output_path", s3_output_path) + + @property + @pulumi.getter(name="notebookOutputOption") + def notebook_output_option(self) -> Optional[pulumi.Input[str]]: + """ + Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + """ + return pulumi.get(self, "notebook_output_option") + + @notebook_output_option.setter + def notebook_output_option(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "notebook_output_option", value) + + @property + @pulumi.getter(name="s3KmsKeyId") + def s3_kms_key_id(self) -> Optional[pulumi.Input[str]]: + """ + When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + """ + return pulumi.get(self, "s3_kms_key_id") + + @s3_kms_key_id.setter + def s3_kms_key_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_kms_key_id", value) + + @property + @pulumi.getter(name="s3OutputPath") + def s3_output_path(self) -> Optional[pulumi.Input[str]]: + """ + When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + """ + return pulumi.get(self, "s3_output_path") + + @s3_output_path.setter + def s3_output_path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3_output_path", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsTensorBoardAppSettingsArgs: + def __init__(__self__, *, + default_resource_spec: pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs']): + """ + :param pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs'] default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs']: + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + @default_resource_spec.setter + def default_resource_spec(self, value: pulumi.Input['DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs']): + pulumi.set(self, "default_resource_spec", value) + + +@pulumi.input_type +class DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs: + def __init__(__self__, *, + instance_type: Optional[pulumi.Input[str]] = None, + sagemaker_image_arn: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] instance_type: The instance type. + :param pulumi.Input[str] sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[pulumi.Input[str]]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @instance_type.setter + def instance_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_type", value) + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[pulumi.Input[str]]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + @sagemaker_image_arn.setter + def sagemaker_image_arn(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "sagemaker_image_arn", value) + + @pulumi.input_type class EndpointConfigurationDataCaptureConfigArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/sagemaker/domain.py b/sdk/python/pulumi_aws/sagemaker/domain.py new file mode 100644 index 00000000000..a741019feb8 --- /dev/null +++ b/sdk/python/pulumi_aws/sagemaker/domain.py @@ -0,0 +1,280 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['Domain'] + + +class Domain(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + app_network_access_type: Optional[pulumi.Input[str]] = None, + auth_mode: Optional[pulumi.Input[str]] = None, + default_user_settings: Optional[pulumi.Input[pulumi.InputType['DomainDefaultUserSettingsArgs']]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + vpc_id: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides a Sagemaker Domain resource. + + ## Example Usage + ### Basic usage + + ```python + import pulumi + import pulumi_aws as aws + + example_domain = aws.sagemaker.Domain("exampleDomain", + domain_name="example", + auth_mode="IAM", + vpc_id=aws_vpc["test"]["id"], + subnet_ids=[aws_subnet["test"]["id"]], + default_user_settings=aws.sagemaker.DomainDefaultUserSettingsArgs( + execution_role=aws_iam_role["test"]["arn"], + )) + example_policy_document = aws.iam.get_policy_document(statements=[aws.iam.GetPolicyDocumentStatementArgs( + actions=["sts:AssumeRole"], + principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs( + type="Service", + identifiers=["sagemaker.amazonaws.com"], + )], + )]) + example_role = aws.iam.Role("exampleRole", + path="/", + assume_role_policy=example_policy_document.json) + ``` + + ## Import + + Sagemaker Code Domains can be imported using the `id`, e.g. + + ```sh + $ pulumi import aws:sagemaker/domain:Domain test_domain d-8jgsjtilstu8 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_network_access_type: Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + :param pulumi.Input[str] auth_mode: The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + :param pulumi.Input[pulumi.InputType['DomainDefaultUserSettingsArgs']] default_user_settings: The default user settings. See Default User Settings below. + :param pulumi.Input[str] domain_name: The domain name. + :param pulumi.Input[str] kms_key_id: The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The VPC subnets that Studio uses for communication. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[str] vpc_id: The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + __props__['app_network_access_type'] = app_network_access_type + if auth_mode is None and not opts.urn: + raise TypeError("Missing required property 'auth_mode'") + __props__['auth_mode'] = auth_mode + if default_user_settings is None and not opts.urn: + raise TypeError("Missing required property 'default_user_settings'") + __props__['default_user_settings'] = default_user_settings + if domain_name is None and not opts.urn: + raise TypeError("Missing required property 'domain_name'") + __props__['domain_name'] = domain_name + __props__['kms_key_id'] = kms_key_id + if subnet_ids is None and not opts.urn: + raise TypeError("Missing required property 'subnet_ids'") + __props__['subnet_ids'] = subnet_ids + __props__['tags'] = tags + if vpc_id is None and not opts.urn: + raise TypeError("Missing required property 'vpc_id'") + __props__['vpc_id'] = vpc_id + __props__['arn'] = None + __props__['home_efs_file_system_id'] = None + __props__['single_sign_on_managed_application_instance_id'] = None + __props__['url'] = None + super(Domain, __self__).__init__( + 'aws:sagemaker/domain:Domain', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + app_network_access_type: Optional[pulumi.Input[str]] = None, + arn: Optional[pulumi.Input[str]] = None, + auth_mode: Optional[pulumi.Input[str]] = None, + default_user_settings: Optional[pulumi.Input[pulumi.InputType['DomainDefaultUserSettingsArgs']]] = None, + domain_name: Optional[pulumi.Input[str]] = None, + home_efs_file_system_id: Optional[pulumi.Input[str]] = None, + kms_key_id: Optional[pulumi.Input[str]] = None, + single_sign_on_managed_application_instance_id: Optional[pulumi.Input[str]] = None, + subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + url: Optional[pulumi.Input[str]] = None, + vpc_id: Optional[pulumi.Input[str]] = None) -> 'Domain': + """ + Get an existing Domain resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] app_network_access_type: Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + :param pulumi.Input[str] arn: The Amazon Resource Name (ARN) assigned by AWS to this Domain. + :param pulumi.Input[str] auth_mode: The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + :param pulumi.Input[pulumi.InputType['DomainDefaultUserSettingsArgs']] default_user_settings: The default user settings. See Default User Settings below. + :param pulumi.Input[str] domain_name: The domain name. + :param pulumi.Input[str] home_efs_file_system_id: The ID of the Amazon Elastic File System (EFS) managed by this Domain. + :param pulumi.Input[str] kms_key_id: The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + :param pulumi.Input[str] single_sign_on_managed_application_instance_id: The SSO managed application instance ID. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The VPC subnets that Studio uses for communication. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[str] url: The domain's URL. + :param pulumi.Input[str] vpc_id: The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["app_network_access_type"] = app_network_access_type + __props__["arn"] = arn + __props__["auth_mode"] = auth_mode + __props__["default_user_settings"] = default_user_settings + __props__["domain_name"] = domain_name + __props__["home_efs_file_system_id"] = home_efs_file_system_id + __props__["kms_key_id"] = kms_key_id + __props__["single_sign_on_managed_application_instance_id"] = single_sign_on_managed_application_instance_id + __props__["subnet_ids"] = subnet_ids + __props__["tags"] = tags + __props__["url"] = url + __props__["vpc_id"] = vpc_id + return Domain(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="appNetworkAccessType") + def app_network_access_type(self) -> pulumi.Output[Optional[str]]: + """ + Specifies the VPC used for non-EFS traffic. The default value is `PublicInternetOnly`. Valid values are `PublicInternetOnly` and `VpcOnly`. + """ + return pulumi.get(self, "app_network_access_type") + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) assigned by AWS to this Domain. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="authMode") + def auth_mode(self) -> pulumi.Output[str]: + """ + The mode of authentication that members use to access the domain. Valid values are `IAM` and `SSO`. + """ + return pulumi.get(self, "auth_mode") + + @property + @pulumi.getter(name="defaultUserSettings") + def default_user_settings(self) -> pulumi.Output['outputs.DomainDefaultUserSettings']: + """ + The default user settings. See Default User Settings below. + """ + return pulumi.get(self, "default_user_settings") + + @property + @pulumi.getter(name="domainName") + def domain_name(self) -> pulumi.Output[str]: + """ + The domain name. + """ + return pulumi.get(self, "domain_name") + + @property + @pulumi.getter(name="homeEfsFileSystemId") + def home_efs_file_system_id(self) -> pulumi.Output[str]: + """ + The ID of the Amazon Elastic File System (EFS) managed by this Domain. + """ + return pulumi.get(self, "home_efs_file_system_id") + + @property + @pulumi.getter(name="kmsKeyId") + def kms_key_id(self) -> pulumi.Output[Optional[str]]: + """ + The AWS KMS customer managed CMK used to encrypt the EFS volume attached to the domain. + """ + return pulumi.get(self, "kms_key_id") + + @property + @pulumi.getter(name="singleSignOnManagedApplicationInstanceId") + def single_sign_on_managed_application_instance_id(self) -> pulumi.Output[str]: + """ + The SSO managed application instance ID. + """ + return pulumi.get(self, "single_sign_on_managed_application_instance_id") + + @property + @pulumi.getter(name="subnetIds") + def subnet_ids(self) -> pulumi.Output[Sequence[str]]: + """ + The VPC subnets that Studio uses for communication. + """ + return pulumi.get(self, "subnet_ids") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter + def url(self) -> pulumi.Output[str]: + """ + The domain's URL. + """ + return pulumi.get(self, "url") + + @property + @pulumi.getter(name="vpcId") + def vpc_id(self) -> pulumi.Output[str]: + """ + The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication. + """ + return pulumi.get(self, "vpc_id") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/sagemaker/outputs.py b/sdk/python/pulumi_aws/sagemaker/outputs.py index 6718dc16052..bb85f92acf5 100644 --- a/sdk/python/pulumi_aws/sagemaker/outputs.py +++ b/sdk/python/pulumi_aws/sagemaker/outputs.py @@ -11,6 +11,15 @@ __all__ = [ 'CodeRepositoryGitConfig', + 'DomainDefaultUserSettings', + 'DomainDefaultUserSettingsJupyterServerAppSettings', + 'DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec', + 'DomainDefaultUserSettingsKernelGatewayAppSettings', + 'DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage', + 'DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec', + 'DomainDefaultUserSettingsSharingSettings', + 'DomainDefaultUserSettingsTensorBoardAppSettings', + 'DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec', 'EndpointConfigurationDataCaptureConfig', 'EndpointConfigurationDataCaptureConfigCaptureContentTypeHeader', 'EndpointConfigurationDataCaptureConfigCaptureOption', @@ -53,6 +62,354 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class DomainDefaultUserSettings(dict): + def __init__(__self__, *, + execution_role: str, + jupyter_server_app_settings: Optional['outputs.DomainDefaultUserSettingsJupyterServerAppSettings'] = None, + kernel_gateway_app_settings: Optional['outputs.DomainDefaultUserSettingsKernelGatewayAppSettings'] = None, + security_groups: Optional[Sequence[str]] = None, + sharing_settings: Optional['outputs.DomainDefaultUserSettingsSharingSettings'] = None, + tensor_board_app_settings: Optional['outputs.DomainDefaultUserSettingsTensorBoardAppSettings'] = None): + """ + :param str execution_role: The execution role ARN for the user. + :param 'DomainDefaultUserSettingsJupyterServerAppSettingsArgs' jupyter_server_app_settings: The Jupyter server's app settings. See Jupyter Server App Settings below. + :param 'DomainDefaultUserSettingsKernelGatewayAppSettingsArgs' kernel_gateway_app_settings: The kernel gateway app settings. See Kernel Gateway App Settings below. + :param Sequence[str] security_groups: The security groups. + :param 'DomainDefaultUserSettingsSharingSettingsArgs' sharing_settings: The sharing settings. See Sharing Settings below. + :param 'DomainDefaultUserSettingsTensorBoardAppSettingsArgs' tensor_board_app_settings: The TensorBoard app settings. See TensorBoard App Settings below. + """ + pulumi.set(__self__, "execution_role", execution_role) + if jupyter_server_app_settings is not None: + pulumi.set(__self__, "jupyter_server_app_settings", jupyter_server_app_settings) + if kernel_gateway_app_settings is not None: + pulumi.set(__self__, "kernel_gateway_app_settings", kernel_gateway_app_settings) + if security_groups is not None: + pulumi.set(__self__, "security_groups", security_groups) + if sharing_settings is not None: + pulumi.set(__self__, "sharing_settings", sharing_settings) + if tensor_board_app_settings is not None: + pulumi.set(__self__, "tensor_board_app_settings", tensor_board_app_settings) + + @property + @pulumi.getter(name="executionRole") + def execution_role(self) -> str: + """ + The execution role ARN for the user. + """ + return pulumi.get(self, "execution_role") + + @property + @pulumi.getter(name="jupyterServerAppSettings") + def jupyter_server_app_settings(self) -> Optional['outputs.DomainDefaultUserSettingsJupyterServerAppSettings']: + """ + The Jupyter server's app settings. See Jupyter Server App Settings below. + """ + return pulumi.get(self, "jupyter_server_app_settings") + + @property + @pulumi.getter(name="kernelGatewayAppSettings") + def kernel_gateway_app_settings(self) -> Optional['outputs.DomainDefaultUserSettingsKernelGatewayAppSettings']: + """ + The kernel gateway app settings. See Kernel Gateway App Settings below. + """ + return pulumi.get(self, "kernel_gateway_app_settings") + + @property + @pulumi.getter(name="securityGroups") + def security_groups(self) -> Optional[Sequence[str]]: + """ + The security groups. + """ + return pulumi.get(self, "security_groups") + + @property + @pulumi.getter(name="sharingSettings") + def sharing_settings(self) -> Optional['outputs.DomainDefaultUserSettingsSharingSettings']: + """ + The sharing settings. See Sharing Settings below. + """ + return pulumi.get(self, "sharing_settings") + + @property + @pulumi.getter(name="tensorBoardAppSettings") + def tensor_board_app_settings(self) -> Optional['outputs.DomainDefaultUserSettingsTensorBoardAppSettings']: + """ + The TensorBoard app settings. See TensorBoard App Settings below. + """ + return pulumi.get(self, "tensor_board_app_settings") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsJupyterServerAppSettings(dict): + def __init__(__self__, *, + default_resource_spec: 'outputs.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec'): + """ + :param 'DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> 'outputs.DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec': + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsJupyterServerAppSettingsDefaultResourceSpec(dict): + def __init__(__self__, *, + instance_type: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None): + """ + :param str instance_type: The instance type. + :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[str]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsKernelGatewayAppSettings(dict): + def __init__(__self__, *, + default_resource_spec: 'outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec', + custom_images: Optional[Sequence['outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage']] = None): + """ + :param 'DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + :param Sequence['DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImageArgs'] custom_images: A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + if custom_images is not None: + pulumi.set(__self__, "custom_images", custom_images) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> 'outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec': + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + @property + @pulumi.getter(name="customImages") + def custom_images(self) -> Optional[Sequence['outputs.DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage']]: + """ + A list of custom SageMaker images that are configured to run as a KernelGateway app. see Custom Image below. + """ + return pulumi.get(self, "custom_images") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsKernelGatewayAppSettingsCustomImage(dict): + def __init__(__self__, *, + app_image_config_name: str, + image_name: str, + image_version_number: Optional[int] = None): + """ + :param str app_image_config_name: The name of the App Image Config. + :param str image_name: The name of the Custom Image. + :param int image_version_number: The version number of the Custom Image. + """ + pulumi.set(__self__, "app_image_config_name", app_image_config_name) + pulumi.set(__self__, "image_name", image_name) + if image_version_number is not None: + pulumi.set(__self__, "image_version_number", image_version_number) + + @property + @pulumi.getter(name="appImageConfigName") + def app_image_config_name(self) -> str: + """ + The name of the App Image Config. + """ + return pulumi.get(self, "app_image_config_name") + + @property + @pulumi.getter(name="imageName") + def image_name(self) -> str: + """ + The name of the Custom Image. + """ + return pulumi.get(self, "image_name") + + @property + @pulumi.getter(name="imageVersionNumber") + def image_version_number(self) -> Optional[int]: + """ + The version number of the Custom Image. + """ + return pulumi.get(self, "image_version_number") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsKernelGatewayAppSettingsDefaultResourceSpec(dict): + def __init__(__self__, *, + instance_type: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None): + """ + :param str instance_type: The instance type. + :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[str]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsSharingSettings(dict): + def __init__(__self__, *, + notebook_output_option: Optional[str] = None, + s3_kms_key_id: Optional[str] = None, + s3_output_path: Optional[str] = None): + """ + :param str notebook_output_option: Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + :param str s3_kms_key_id: When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + :param str s3_output_path: When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + """ + if notebook_output_option is not None: + pulumi.set(__self__, "notebook_output_option", notebook_output_option) + if s3_kms_key_id is not None: + pulumi.set(__self__, "s3_kms_key_id", s3_kms_key_id) + if s3_output_path is not None: + pulumi.set(__self__, "s3_output_path", s3_output_path) + + @property + @pulumi.getter(name="notebookOutputOption") + def notebook_output_option(self) -> Optional[str]: + """ + Whether to include the notebook cell output when sharing the notebook. The default is `Disabled`. Valid values are `Allowed` and `Disabled`. + """ + return pulumi.get(self, "notebook_output_option") + + @property + @pulumi.getter(name="s3KmsKeyId") + def s3_kms_key_id(self) -> Optional[str]: + """ + When `notebook_output_option` is Allowed, the AWS Key Management Service (KMS) encryption key ID used to encrypt the notebook cell output in the Amazon S3 bucket. + """ + return pulumi.get(self, "s3_kms_key_id") + + @property + @pulumi.getter(name="s3OutputPath") + def s3_output_path(self) -> Optional[str]: + """ + When `notebook_output_option` is Allowed, the Amazon S3 bucket used to save the notebook cell output. + """ + return pulumi.get(self, "s3_output_path") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsTensorBoardAppSettings(dict): + def __init__(__self__, *, + default_resource_spec: 'outputs.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec'): + """ + :param 'DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpecArgs' default_resource_spec: The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + pulumi.set(__self__, "default_resource_spec", default_resource_spec) + + @property + @pulumi.getter(name="defaultResourceSpec") + def default_resource_spec(self) -> 'outputs.DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec': + """ + The default instance type and the Amazon Resource Name (ARN) of the SageMaker image created on the instance. see Default Resource Spec below. + """ + return pulumi.get(self, "default_resource_spec") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class DomainDefaultUserSettingsTensorBoardAppSettingsDefaultResourceSpec(dict): + def __init__(__self__, *, + instance_type: Optional[str] = None, + sagemaker_image_arn: Optional[str] = None): + """ + :param str instance_type: The instance type. + :param str sagemaker_image_arn: The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + if instance_type is not None: + pulumi.set(__self__, "instance_type", instance_type) + if sagemaker_image_arn is not None: + pulumi.set(__self__, "sagemaker_image_arn", sagemaker_image_arn) + + @property + @pulumi.getter(name="instanceType") + def instance_type(self) -> Optional[str]: + """ + The instance type. + """ + return pulumi.get(self, "instance_type") + + @property + @pulumi.getter(name="sagemakerImageArn") + def sagemaker_image_arn(self) -> Optional[str]: + """ + The Amazon Resource Name (ARN) of the SageMaker image created on the instance. + """ + return pulumi.get(self, "sagemaker_image_arn") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class EndpointConfigurationDataCaptureConfig(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/ssoadmin/__init__.py b/sdk/python/pulumi_aws/ssoadmin/__init__.py index 8bf765d5408..a751bfbf914 100644 --- a/sdk/python/pulumi_aws/ssoadmin/__init__.py +++ b/sdk/python/pulumi_aws/ssoadmin/__init__.py @@ -3,6 +3,7 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .account_assignment import * from .get_instances import * from .get_permission_set import * from .managed_policy_attachment import * @@ -21,7 +22,9 @@ def version(self): return Module._version def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: - if typ == "aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment": + if typ == "aws:ssoadmin/accountAssignment:AccountAssignment": + return AccountAssignment(name, pulumi.ResourceOptions(urn=urn)) + elif typ == "aws:ssoadmin/managedPolicyAttachment:ManagedPolicyAttachment": return ManagedPolicyAttachment(name, pulumi.ResourceOptions(urn=urn)) elif typ == "aws:ssoadmin/permissionSet:PermissionSet": return PermissionSet(name, pulumi.ResourceOptions(urn=urn)) @@ -32,6 +35,7 @@ def construct(self, name: str, typ: str, urn: str) -> pulumi.Resource: _module_instance = Module() + pulumi.runtime.register_resource_module("aws", "ssoadmin/accountAssignment", _module_instance) pulumi.runtime.register_resource_module("aws", "ssoadmin/managedPolicyAttachment", _module_instance) pulumi.runtime.register_resource_module("aws", "ssoadmin/permissionSet", _module_instance) pulumi.runtime.register_resource_module("aws", "ssoadmin/permissionSetInlinePolicy", _module_instance) diff --git a/sdk/python/pulumi_aws/ssoadmin/account_assignment.py b/sdk/python/pulumi_aws/ssoadmin/account_assignment.py new file mode 100644 index 00000000000..28816e90f42 --- /dev/null +++ b/sdk/python/pulumi_aws/ssoadmin/account_assignment.py @@ -0,0 +1,175 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = ['AccountAssignment'] + + +class AccountAssignment(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides a Single Sign-On (SSO) Account Assignment resource + + ## Import + + SSO Account Assignments can be imported using the `principal_id`, `principal_type`, `target_id`, `target_type`, `permission_set_arn`, `instance_arn` separated by commas (`,`) e.g. + + ```sh + $ pulumi import aws:ssoadmin/accountAssignment:AccountAssignment example f81d4fae-7dec-11d0-a765-00a0c91e6bf6,GROUP,1234567890,AWS_ACCOUNT,arn:aws:sso:::permissionSet/ssoins-0123456789abcdef/ps-0123456789abcdef,arn:aws:sso:::instance/ssoins-0123456789abcdef + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance. + :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + :param pulumi.Input[str] principal_id: An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + :param pulumi.Input[str] principal_type: The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + :param pulumi.Input[str] target_id: An AWS account identifier, typically a 10-12 digit string. + :param pulumi.Input[str] target_type: The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = dict() + + if instance_arn is None and not opts.urn: + raise TypeError("Missing required property 'instance_arn'") + __props__['instance_arn'] = instance_arn + if permission_set_arn is None and not opts.urn: + raise TypeError("Missing required property 'permission_set_arn'") + __props__['permission_set_arn'] = permission_set_arn + if principal_id is None and not opts.urn: + raise TypeError("Missing required property 'principal_id'") + __props__['principal_id'] = principal_id + if principal_type is None and not opts.urn: + raise TypeError("Missing required property 'principal_type'") + __props__['principal_type'] = principal_type + if target_id is None and not opts.urn: + raise TypeError("Missing required property 'target_id'") + __props__['target_id'] = target_id + __props__['target_type'] = target_type + super(AccountAssignment, __self__).__init__( + 'aws:ssoadmin/accountAssignment:AccountAssignment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + instance_arn: Optional[pulumi.Input[str]] = None, + permission_set_arn: Optional[pulumi.Input[str]] = None, + principal_id: Optional[pulumi.Input[str]] = None, + principal_type: Optional[pulumi.Input[str]] = None, + target_id: Optional[pulumi.Input[str]] = None, + target_type: Optional[pulumi.Input[str]] = None) -> 'AccountAssignment': + """ + Get an existing AccountAssignment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] instance_arn: The Amazon Resource Name (ARN) of the SSO Instance. + :param pulumi.Input[str] permission_set_arn: The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + :param pulumi.Input[str] principal_id: An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + :param pulumi.Input[str] principal_type: The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + :param pulumi.Input[str] target_id: An AWS account identifier, typically a 10-12 digit string. + :param pulumi.Input[str] target_type: The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["instance_arn"] = instance_arn + __props__["permission_set_arn"] = permission_set_arn + __props__["principal_id"] = principal_id + __props__["principal_type"] = principal_type + __props__["target_id"] = target_id + __props__["target_type"] = target_type + return AccountAssignment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="instanceArn") + def instance_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the SSO Instance. + """ + return pulumi.get(self, "instance_arn") + + @property + @pulumi.getter(name="permissionSetArn") + def permission_set_arn(self) -> pulumi.Output[str]: + """ + The Amazon Resource Name (ARN) of the Permission Set that the admin wants to grant the principal access to. + """ + return pulumi.get(self, "permission_set_arn") + + @property + @pulumi.getter(name="principalId") + def principal_id(self) -> pulumi.Output[str]: + """ + An identifier for an object in SSO, such as a user or group. PrincipalIds are GUIDs (For example, `f81d4fae-7dec-11d0-a765-00a0c91e6bf6`). + """ + return pulumi.get(self, "principal_id") + + @property + @pulumi.getter(name="principalType") + def principal_type(self) -> pulumi.Output[str]: + """ + The entity type for which the assignment will be created. Valid values: `USER`, `GROUP`. + """ + return pulumi.get(self, "principal_type") + + @property + @pulumi.getter(name="targetId") + def target_id(self) -> pulumi.Output[str]: + """ + An AWS account identifier, typically a 10-12 digit string. + """ + return pulumi.get(self, "target_id") + + @property + @pulumi.getter(name="targetType") + def target_type(self) -> pulumi.Output[Optional[str]]: + """ + The entity type for which the assignment will be created. Valid values: `AWS_ACCOUNT`. + """ + return pulumi.get(self, "target_type") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/workspaces/_inputs.py b/sdk/python/pulumi_aws/workspaces/_inputs.py index 32cad07b72b..b50f67b04f4 100644 --- a/sdk/python/pulumi_aws/workspaces/_inputs.py +++ b/sdk/python/pulumi_aws/workspaces/_inputs.py @@ -10,10 +10,10 @@ __all__ = [ 'DirectorySelfServicePermissionsArgs', + 'DirectoryWorkspaceAccessPropertiesArgs', 'DirectoryWorkspaceCreationPropertiesArgs', 'IpGroupRuleArgs', 'WorkspaceWorkspacePropertiesArgs', - 'GetDirectoryWorkspaceCreationPropertiesArgs', ] @pulumi.input_type @@ -103,6 +103,125 @@ def switch_running_mode(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "switch_running_mode", value) +@pulumi.input_type +class DirectoryWorkspaceAccessPropertiesArgs: + def __init__(__self__, *, + device_type_android: Optional[pulumi.Input[str]] = None, + device_type_chromeos: Optional[pulumi.Input[str]] = None, + device_type_ios: Optional[pulumi.Input[str]] = None, + device_type_osx: Optional[pulumi.Input[str]] = None, + device_type_web: Optional[pulumi.Input[str]] = None, + device_type_windows: Optional[pulumi.Input[str]] = None, + device_type_zeroclient: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] device_type_android: Indicates whether users can use Android devices to access their WorkSpaces. + :param pulumi.Input[str] device_type_chromeos: Indicates whether users can use Chromebooks to access their WorkSpaces. + :param pulumi.Input[str] device_type_ios: Indicates whether users can use iOS devices to access their WorkSpaces. + :param pulumi.Input[str] device_type_osx: Indicates whether users can use macOS clients to access their WorkSpaces. + :param pulumi.Input[str] device_type_web: Indicates whether users can access their WorkSpaces through a web browser. + :param pulumi.Input[str] device_type_windows: Indicates whether users can use Windows clients to access their WorkSpaces. + :param pulumi.Input[str] device_type_zeroclient: Indicates whether users can use zero client devices to access their WorkSpaces. + """ + if device_type_android is not None: + pulumi.set(__self__, "device_type_android", device_type_android) + if device_type_chromeos is not None: + pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) + if device_type_ios is not None: + pulumi.set(__self__, "device_type_ios", device_type_ios) + if device_type_osx is not None: + pulumi.set(__self__, "device_type_osx", device_type_osx) + if device_type_web is not None: + pulumi.set(__self__, "device_type_web", device_type_web) + if device_type_windows is not None: + pulumi.set(__self__, "device_type_windows", device_type_windows) + if device_type_zeroclient is not None: + pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + + @property + @pulumi.getter(name="deviceTypeAndroid") + def device_type_android(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use Android devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_android") + + @device_type_android.setter + def device_type_android(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_android", value) + + @property + @pulumi.getter(name="deviceTypeChromeos") + def device_type_chromeos(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use Chromebooks to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_chromeos") + + @device_type_chromeos.setter + def device_type_chromeos(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_chromeos", value) + + @property + @pulumi.getter(name="deviceTypeIos") + def device_type_ios(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use iOS devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_ios") + + @device_type_ios.setter + def device_type_ios(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_ios", value) + + @property + @pulumi.getter(name="deviceTypeOsx") + def device_type_osx(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use macOS clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_osx") + + @device_type_osx.setter + def device_type_osx(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_osx", value) + + @property + @pulumi.getter(name="deviceTypeWeb") + def device_type_web(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can access their WorkSpaces through a web browser. + """ + return pulumi.get(self, "device_type_web") + + @device_type_web.setter + def device_type_web(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_web", value) + + @property + @pulumi.getter(name="deviceTypeWindows") + def device_type_windows(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use Windows clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_windows") + + @device_type_windows.setter + def device_type_windows(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_windows", value) + + @property + @pulumi.getter(name="deviceTypeZeroclient") + def device_type_zeroclient(self) -> Optional[pulumi.Input[str]]: + """ + Indicates whether users can use zero client devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_zeroclient") + + @device_type_zeroclient.setter + def device_type_zeroclient(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "device_type_zeroclient", value) + + @pulumi.input_type class DirectoryWorkspaceCreationPropertiesArgs: def __init__(__self__, *, @@ -315,89 +434,3 @@ def user_volume_size_gib(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "user_volume_size_gib", value) -@pulumi.input_type -class GetDirectoryWorkspaceCreationPropertiesArgs: - def __init__(__self__, *, - custom_security_group_id: str, - default_ou: Optional[str] = None, - enable_internet_access: Optional[bool] = None, - enable_maintenance_mode: Optional[bool] = None, - user_enabled_as_local_administrator: Optional[bool] = None): - """ - :param str custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. - :param str default_ou: The default organizational unit (OU) for your WorkSpace directories. - :param bool enable_internet_access: Indicates whether internet access is enabled for your WorkSpaces. - :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). - :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. - """ - pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) - if default_ou is not None: - pulumi.set(__self__, "default_ou", default_ou) - if enable_internet_access is not None: - pulumi.set(__self__, "enable_internet_access", enable_internet_access) - if enable_maintenance_mode is not None: - pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) - if user_enabled_as_local_administrator is not None: - pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) - - @property - @pulumi.getter(name="customSecurityGroupId") - def custom_security_group_id(self) -> str: - """ - The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. - """ - return pulumi.get(self, "custom_security_group_id") - - @custom_security_group_id.setter - def custom_security_group_id(self, value: str): - pulumi.set(self, "custom_security_group_id", value) - - @property - @pulumi.getter(name="defaultOu") - def default_ou(self) -> Optional[str]: - """ - The default organizational unit (OU) for your WorkSpace directories. - """ - return pulumi.get(self, "default_ou") - - @default_ou.setter - def default_ou(self, value: Optional[str]): - pulumi.set(self, "default_ou", value) - - @property - @pulumi.getter(name="enableInternetAccess") - def enable_internet_access(self) -> Optional[bool]: - """ - Indicates whether internet access is enabled for your WorkSpaces. - """ - return pulumi.get(self, "enable_internet_access") - - @enable_internet_access.setter - def enable_internet_access(self, value: Optional[bool]): - pulumi.set(self, "enable_internet_access", value) - - @property - @pulumi.getter(name="enableMaintenanceMode") - def enable_maintenance_mode(self) -> Optional[bool]: - """ - Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). - """ - return pulumi.get(self, "enable_maintenance_mode") - - @enable_maintenance_mode.setter - def enable_maintenance_mode(self, value: Optional[bool]): - pulumi.set(self, "enable_maintenance_mode", value) - - @property - @pulumi.getter(name="userEnabledAsLocalAdministrator") - def user_enabled_as_local_administrator(self) -> Optional[bool]: - """ - Indicates whether users are local administrators of their WorkSpaces. - """ - return pulumi.get(self, "user_enabled_as_local_administrator") - - @user_enabled_as_local_administrator.setter - def user_enabled_as_local_administrator(self, value: Optional[bool]): - pulumi.set(self, "user_enabled_as_local_administrator", value) - - diff --git a/sdk/python/pulumi_aws/workspaces/directory.py b/sdk/python/pulumi_aws/workspaces/directory.py index 0d8d2f079ce..36d25c1cfb4 100644 --- a/sdk/python/pulumi_aws/workspaces/directory.py +++ b/sdk/python/pulumi_aws/workspaces/directory.py @@ -22,6 +22,7 @@ def __init__(__self__, self_service_permissions: Optional[pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_access_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceAccessPropertiesArgs']]] = None, workspace_creation_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']]] = None, __props__=None, __name__=None, @@ -76,6 +77,15 @@ def __init__(__self__, restart_workspace=True, switch_running_mode=True, ), + workspace_access_properties=aws.workspaces.DirectoryWorkspaceAccessPropertiesArgs( + device_type_android="ALLOW", + device_type_chromeos="ALLOW", + device_type_ios="ALLOW", + device_type_osx="ALLOW", + device_type_web="DENY", + device_type_windows="DENY", + device_type_zeroclient="DENY", + ), workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs( custom_security_group_id=aws_security_group["example"]["id"], default_ou="OU=AWS,DC=Workgroup,DC=Example,DC=com", @@ -134,6 +144,7 @@ def __init__(__self__, :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: Permissions to enable or disable self-service capabilities. Defined below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets where the directory resides. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. + :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceAccessPropertiesArgs']] workspace_access_properties: Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. """ if __name__ is not None: @@ -160,6 +171,7 @@ def __init__(__self__, __props__['self_service_permissions'] = self_service_permissions __props__['subnet_ids'] = subnet_ids __props__['tags'] = tags + __props__['workspace_access_properties'] = workspace_access_properties __props__['workspace_creation_properties'] = workspace_creation_properties __props__['alias'] = None __props__['customer_user_name'] = None @@ -191,6 +203,7 @@ def get(resource_name: str, self_service_permissions: Optional[pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_access_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceAccessPropertiesArgs']]] = None, workspace_creation_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']]] = None, workspace_security_group_id: Optional[pulumi.Input[str]] = None) -> 'Directory': """ @@ -212,6 +225,7 @@ def get(resource_name: str, :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: Permissions to enable or disable self-service capabilities. Defined below. :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets where the directory resides. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. + :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceAccessPropertiesArgs']] workspace_access_properties: Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. :param pulumi.Input[str] workspace_security_group_id: The identifier of the security group that is assigned to new WorkSpaces. """ @@ -231,6 +245,7 @@ def get(resource_name: str, __props__["self_service_permissions"] = self_service_permissions __props__["subnet_ids"] = subnet_ids __props__["tags"] = tags + __props__["workspace_access_properties"] = workspace_access_properties __props__["workspace_creation_properties"] = workspace_creation_properties __props__["workspace_security_group_id"] = workspace_security_group_id return Directory(resource_name, opts=opts, __props__=__props__) @@ -331,6 +346,14 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="workspaceAccessProperties") + def workspace_access_properties(self) -> pulumi.Output['outputs.DirectoryWorkspaceAccessProperties']: + """ + Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + """ + return pulumi.get(self, "workspace_access_properties") + @property @pulumi.getter(name="workspaceCreationProperties") def workspace_creation_properties(self) -> pulumi.Output['outputs.DirectoryWorkspaceCreationProperties']: diff --git a/sdk/python/pulumi_aws/workspaces/get_directory.py b/sdk/python/pulumi_aws/workspaces/get_directory.py index 78774690b1d..e4a6969a50e 100644 --- a/sdk/python/pulumi_aws/workspaces/get_directory.py +++ b/sdk/python/pulumi_aws/workspaces/get_directory.py @@ -8,7 +8,6 @@ from typing import Any, Mapping, Optional, Sequence, Union from .. import _utilities, _tables from . import outputs -from ._inputs import * __all__ = [ 'GetDirectoryResult', @@ -21,7 +20,7 @@ class GetDirectoryResult: """ A collection of values returned by getDirectory. """ - def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, directory_name=None, directory_type=None, dns_ip_addresses=None, iam_role_id=None, id=None, ip_group_ids=None, registration_code=None, self_service_permissions=None, subnet_ids=None, tags=None, workspace_creation_properties=None, workspace_security_group_id=None): + def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, directory_name=None, directory_type=None, dns_ip_addresses=None, iam_role_id=None, id=None, ip_group_ids=None, registration_code=None, self_service_permissions=None, subnet_ids=None, tags=None, workspace_access_properties=None, workspace_creation_properties=None, workspace_security_group_id=None): if alias and not isinstance(alias, str): raise TypeError("Expected argument 'alias' to be a str") pulumi.set(__self__, "alias", alias) @@ -61,6 +60,9 @@ def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, d if tags and not isinstance(tags, dict): raise TypeError("Expected argument 'tags' to be a dict") pulumi.set(__self__, "tags", tags) + if workspace_access_properties and not isinstance(workspace_access_properties, list): + raise TypeError("Expected argument 'workspace_access_properties' to be a list") + pulumi.set(__self__, "workspace_access_properties", workspace_access_properties) if workspace_creation_properties and not isinstance(workspace_creation_properties, dict): raise TypeError("Expected argument 'workspace_creation_properties' to be a dict") pulumi.set(__self__, "workspace_creation_properties", workspace_creation_properties) @@ -169,6 +171,14 @@ def tags(self) -> Optional[Mapping[str, str]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="workspaceAccessProperties") + def workspace_access_properties(self) -> Sequence['outputs.GetDirectoryWorkspaceAccessPropertyResult']: + """ + (Optional) Specifies which devices and operating systems users can use to access their WorkSpaces. Defined below. + """ + return pulumi.get(self, "workspace_access_properties") + @property @pulumi.getter(name="workspaceCreationProperties") def workspace_creation_properties(self) -> 'outputs.GetDirectoryWorkspaceCreationPropertiesResult': @@ -205,13 +215,13 @@ def __await__(self): self_service_permissions=self.self_service_permissions, subnet_ids=self.subnet_ids, tags=self.tags, + workspace_access_properties=self.workspace_access_properties, workspace_creation_properties=self.workspace_creation_properties, workspace_security_group_id=self.workspace_security_group_id) def get_directory(directory_id: Optional[str] = None, tags: Optional[Mapping[str, str]] = None, - workspace_creation_properties: Optional[pulumi.InputType['GetDirectoryWorkspaceCreationPropertiesArgs']] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDirectoryResult: """ Retrieve information about an AWS WorkSpaces directory. @@ -228,12 +238,10 @@ def get_directory(directory_id: Optional[str] = None, :param str directory_id: The directory identifier for registration in WorkSpaces service. :param Mapping[str, str] tags: A map of tags assigned to the WorkSpaces directory. - :param pulumi.InputType['GetDirectoryWorkspaceCreationPropertiesArgs'] workspace_creation_properties: The default properties that are used for creating WorkSpaces. Defined below. """ __args__ = dict() __args__['directoryId'] = directory_id __args__['tags'] = tags - __args__['workspaceCreationProperties'] = workspace_creation_properties if opts is None: opts = pulumi.InvokeOptions() if opts.version is None: @@ -254,5 +262,6 @@ def get_directory(directory_id: Optional[str] = None, self_service_permissions=__ret__.self_service_permissions, subnet_ids=__ret__.subnet_ids, tags=__ret__.tags, + workspace_access_properties=__ret__.workspace_access_properties, workspace_creation_properties=__ret__.workspace_creation_properties, workspace_security_group_id=__ret__.workspace_security_group_id) diff --git a/sdk/python/pulumi_aws/workspaces/outputs.py b/sdk/python/pulumi_aws/workspaces/outputs.py index bb287766090..c8bd20c1309 100644 --- a/sdk/python/pulumi_aws/workspaces/outputs.py +++ b/sdk/python/pulumi_aws/workspaces/outputs.py @@ -10,6 +10,7 @@ __all__ = [ 'DirectorySelfServicePermissions', + 'DirectoryWorkspaceAccessProperties', 'DirectoryWorkspaceCreationProperties', 'IpGroupRule', 'WorkspaceWorkspaceProperties', @@ -17,6 +18,7 @@ 'GetBundleRootStorageResult', 'GetBundleUserStorageResult', 'GetDirectorySelfServicePermissionResult', + 'GetDirectoryWorkspaceAccessPropertyResult', 'GetDirectoryWorkspaceCreationPropertiesResult', 'GetWorkspaceWorkspacePropertyResult', ] @@ -91,6 +93,100 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class DirectoryWorkspaceAccessProperties(dict): + def __init__(__self__, *, + device_type_android: Optional[str] = None, + device_type_chromeos: Optional[str] = None, + device_type_ios: Optional[str] = None, + device_type_osx: Optional[str] = None, + device_type_web: Optional[str] = None, + device_type_windows: Optional[str] = None, + device_type_zeroclient: Optional[str] = None): + """ + :param str device_type_android: Indicates whether users can use Android devices to access their WorkSpaces. + :param str device_type_chromeos: Indicates whether users can use Chromebooks to access their WorkSpaces. + :param str device_type_ios: Indicates whether users can use iOS devices to access their WorkSpaces. + :param str device_type_osx: Indicates whether users can use macOS clients to access their WorkSpaces. + :param str device_type_web: Indicates whether users can access their WorkSpaces through a web browser. + :param str device_type_windows: Indicates whether users can use Windows clients to access their WorkSpaces. + :param str device_type_zeroclient: Indicates whether users can use zero client devices to access their WorkSpaces. + """ + if device_type_android is not None: + pulumi.set(__self__, "device_type_android", device_type_android) + if device_type_chromeos is not None: + pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) + if device_type_ios is not None: + pulumi.set(__self__, "device_type_ios", device_type_ios) + if device_type_osx is not None: + pulumi.set(__self__, "device_type_osx", device_type_osx) + if device_type_web is not None: + pulumi.set(__self__, "device_type_web", device_type_web) + if device_type_windows is not None: + pulumi.set(__self__, "device_type_windows", device_type_windows) + if device_type_zeroclient is not None: + pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + + @property + @pulumi.getter(name="deviceTypeAndroid") + def device_type_android(self) -> Optional[str]: + """ + Indicates whether users can use Android devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_android") + + @property + @pulumi.getter(name="deviceTypeChromeos") + def device_type_chromeos(self) -> Optional[str]: + """ + Indicates whether users can use Chromebooks to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_chromeos") + + @property + @pulumi.getter(name="deviceTypeIos") + def device_type_ios(self) -> Optional[str]: + """ + Indicates whether users can use iOS devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_ios") + + @property + @pulumi.getter(name="deviceTypeOsx") + def device_type_osx(self) -> Optional[str]: + """ + Indicates whether users can use macOS clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_osx") + + @property + @pulumi.getter(name="deviceTypeWeb") + def device_type_web(self) -> Optional[str]: + """ + Indicates whether users can access their WorkSpaces through a web browser. + """ + return pulumi.get(self, "device_type_web") + + @property + @pulumi.getter(name="deviceTypeWindows") + def device_type_windows(self) -> Optional[str]: + """ + Indicates whether users can use Windows clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_windows") + + @property + @pulumi.getter(name="deviceTypeZeroclient") + def device_type_zeroclient(self) -> Optional[str]: + """ + Indicates whether users can use zero client devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_zeroclient") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class DirectoryWorkspaceCreationProperties(dict): def __init__(__self__, *, @@ -380,14 +476,98 @@ def switch_running_mode(self) -> bool: return pulumi.get(self, "switch_running_mode") +@pulumi.output_type +class GetDirectoryWorkspaceAccessPropertyResult(dict): + def __init__(__self__, *, + device_type_android: str, + device_type_chromeos: str, + device_type_ios: str, + device_type_osx: str, + device_type_web: str, + device_type_windows: str, + device_type_zeroclient: str): + """ + :param str device_type_android: (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + :param str device_type_chromeos: (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + :param str device_type_ios: (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + :param str device_type_osx: (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + :param str device_type_web: (Optional) Indicates whether users can access their WorkSpaces through a web browser. + :param str device_type_windows: (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + :param str device_type_zeroclient: (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + """ + pulumi.set(__self__, "device_type_android", device_type_android) + pulumi.set(__self__, "device_type_chromeos", device_type_chromeos) + pulumi.set(__self__, "device_type_ios", device_type_ios) + pulumi.set(__self__, "device_type_osx", device_type_osx) + pulumi.set(__self__, "device_type_web", device_type_web) + pulumi.set(__self__, "device_type_windows", device_type_windows) + pulumi.set(__self__, "device_type_zeroclient", device_type_zeroclient) + + @property + @pulumi.getter(name="deviceTypeAndroid") + def device_type_android(self) -> str: + """ + (Optional) Indicates whether users can use Android devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_android") + + @property + @pulumi.getter(name="deviceTypeChromeos") + def device_type_chromeos(self) -> str: + """ + (Optional) Indicates whether users can use Chromebooks to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_chromeos") + + @property + @pulumi.getter(name="deviceTypeIos") + def device_type_ios(self) -> str: + """ + (Optional) Indicates whether users can use iOS devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_ios") + + @property + @pulumi.getter(name="deviceTypeOsx") + def device_type_osx(self) -> str: + """ + (Optional) Indicates whether users can use macOS clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_osx") + + @property + @pulumi.getter(name="deviceTypeWeb") + def device_type_web(self) -> str: + """ + (Optional) Indicates whether users can access their WorkSpaces through a web browser. + """ + return pulumi.get(self, "device_type_web") + + @property + @pulumi.getter(name="deviceTypeWindows") + def device_type_windows(self) -> str: + """ + (Optional) Indicates whether users can use Windows clients to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_windows") + + @property + @pulumi.getter(name="deviceTypeZeroclient") + def device_type_zeroclient(self) -> str: + """ + (Optional) Indicates whether users can use zero client devices to access their WorkSpaces. + """ + return pulumi.get(self, "device_type_zeroclient") + + @pulumi.output_type class GetDirectoryWorkspaceCreationPropertiesResult(dict): def __init__(__self__, *, custom_security_group_id: str, - default_ou: Optional[str] = None, - enable_internet_access: Optional[bool] = None, - enable_maintenance_mode: Optional[bool] = None, - user_enabled_as_local_administrator: Optional[bool] = None): + default_ou: str, + enable_internet_access: bool, + enable_maintenance_mode: bool, + user_enabled_as_local_administrator: bool): """ :param str custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. :param str default_ou: The default organizational unit (OU) for your WorkSpace directories. @@ -396,14 +576,10 @@ def __init__(__self__, *, :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. """ pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) - if default_ou is not None: - pulumi.set(__self__, "default_ou", default_ou) - if enable_internet_access is not None: - pulumi.set(__self__, "enable_internet_access", enable_internet_access) - if enable_maintenance_mode is not None: - pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) - if user_enabled_as_local_administrator is not None: - pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + pulumi.set(__self__, "default_ou", default_ou) + pulumi.set(__self__, "enable_internet_access", enable_internet_access) + pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) @property @pulumi.getter(name="customSecurityGroupId") @@ -415,7 +591,7 @@ def custom_security_group_id(self) -> str: @property @pulumi.getter(name="defaultOu") - def default_ou(self) -> Optional[str]: + def default_ou(self) -> str: """ The default organizational unit (OU) for your WorkSpace directories. """ @@ -423,7 +599,7 @@ def default_ou(self) -> Optional[str]: @property @pulumi.getter(name="enableInternetAccess") - def enable_internet_access(self) -> Optional[bool]: + def enable_internet_access(self) -> bool: """ Indicates whether internet access is enabled for your WorkSpaces. """ @@ -431,7 +607,7 @@ def enable_internet_access(self) -> Optional[bool]: @property @pulumi.getter(name="enableMaintenanceMode") - def enable_maintenance_mode(self) -> Optional[bool]: + def enable_maintenance_mode(self) -> bool: """ Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). """ @@ -439,7 +615,7 @@ def enable_maintenance_mode(self) -> Optional[bool]: @property @pulumi.getter(name="userEnabledAsLocalAdministrator") - def user_enabled_as_local_administrator(self) -> Optional[bool]: + def user_enabled_as_local_administrator(self) -> bool: """ Indicates whether users are local administrators of their WorkSpaces. """