diff --git a/docs/data-sources/acmpca_certificate.md b/docs/data-sources/acmpca_certificate.md index 10cd894f9b..0c6a057013 100644 --- a/docs/data-sources/acmpca_certificate.md +++ b/docs/data-sources/acmpca_certificate.md @@ -21,57 +21,63 @@ Data Source schema for AWS::ACMPCA::Certificate ### Read-Only -- `api_passthrough` (Attributes) These are fields to be overridden in a certificate at the time of issuance. These requires an API_Passthrough template be used or they will be ignored. (see [below for nested schema](#nestedatt--api_passthrough)) -- `arn` (String) The ARN of the issued certificate. -- `certificate` (String) The issued certificate in base 64 PEM-encoded format. -- `certificate_authority_arn` (String) The Amazon Resource Name (ARN) for the private CA to issue the certificate. -- `certificate_signing_request` (String) The certificate signing request (CSR) for the Certificate. -- `signing_algorithm` (String) The name of the algorithm that will be used to sign the Certificate. -- `template_arn` (String) Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, ACM Private CA defaults to the EndEntityCertificate/V1 template. -- `validity` (Attributes) The time before which the Certificate will be valid. (see [below for nested schema](#nestedatt--validity)) -- `validity_not_before` (Attributes) The time after which the Certificate will be valid. (see [below for nested schema](#nestedatt--validity_not_before)) +- `api_passthrough` (Attributes) Specifies X.509 certificate information to be included in the issued certificate. An ``APIPassthrough`` or ``APICSRPassthrough`` template variant must be selected, or else this parameter is ignored. (see [below for nested schema](#nestedatt--api_passthrough)) +- `arn` (String) +- `certificate` (String) +- `certificate_authority_arn` (String) The Amazon Resource Name (ARN) for the private CA issues the certificate. +- `certificate_signing_request` (String) The certificate signing request (CSR) for the certificate. +- `signing_algorithm` (String) The name of the algorithm that will be used to sign the certificate to be issued. + This parameter should not be confused with the ``SigningAlgorithm`` parameter used to sign a CSR in the ``CreateCertificateAuthority`` action. + The specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key. +- `template_arn` (String) Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, PCAshort defaults to the ``EndEntityCertificate/V1`` template. For more information about PCAshort templates, see [Using Templates](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html). +- `validity` (Attributes) The period of time during which the certificate will be valid. (see [below for nested schema](#nestedatt--validity)) +- `validity_not_before` (Attributes) Information describing the start of the validity period of the certificate. This parameter sets the ?Not Before" date for the certificate. + By default, when issuing a certificate, PCAshort sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The ``ValidityNotBefore`` parameter can be used to customize the ?Not Before? value. + Unlike the ``Validity`` parameter, the ``ValidityNotBefore`` parameter is optional. + The ``ValidityNotBefore`` value is expressed as an explicit date and time, using the ``Validity`` type value ``ABSOLUTE``. (see [below for nested schema](#nestedatt--validity_not_before)) ### Nested Schema for `api_passthrough` Read-Only: -- `extensions` (Attributes) Structure that contains X.500 extensions for a Certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions)) -- `subject` (Attributes) Structure that contains X.500 distinguished name information. (see [below for nested schema](#nestedatt--api_passthrough--subject)) +- `extensions` (Attributes) Specifies X.509 extension information for a certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions)) +- `subject` (Attributes) Contains information about the certificate subject. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The Subject must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate. (see [below for nested schema](#nestedatt--api_passthrough--subject)) ### Nested Schema for `api_passthrough.extensions` Read-Only: -- `certificate_policies` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies)) -- `custom_extensions` (Attributes List) Array of X.509 extensions for a certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--custom_extensions)) -- `extended_key_usage` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--extended_key_usage)) -- `key_usage` (Attributes) Structure that contains X.509 KeyUsage information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--key_usage)) -- `subject_alternative_names` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names)) +- `certificate_policies` (Attributes List) Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies)) +- `custom_extensions` (Attributes List) Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29) (see [below for nested schema](#nestedatt--api_passthrough--extensions--custom_extensions)) +- `extended_key_usage` (Attributes List) Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension. (see [below for nested schema](#nestedatt--api_passthrough--extensions--extended_key_usage)) +- `key_usage` (Attributes) Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false. (see [below for nested schema](#nestedatt--api_passthrough--extensions--key_usage)) +- `subject_alternative_names` (Attributes List) The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names)) ### Nested Schema for `api_passthrough.extensions.certificate_policies` Read-Only: -- `cert_policy_id` (String) String that contains X.509 ObjectIdentifier information. -- `policy_qualifiers` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers)) +- `cert_policy_id` (String) Specifies the object identifier (OID) of the certificate policy under which the certificate was issued. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). +- `policy_qualifiers` (Attributes List) Modifies the given ``CertPolicyId`` with a qualifier. AWS Private CA supports the certification practice statement (CPS) qualifier. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers)) ### Nested Schema for `api_passthrough.extensions.certificate_policies.policy_qualifiers` Read-Only: -- `policy_qualifier_id` (String) -- `qualifier` (Attributes) Structure that contains a X.509 policy qualifier. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers--qualifier)) +- `policy_qualifier_id` (String) Identifies the qualifier modifying a ``CertPolicyId``. +- `qualifier` (Attributes) Defines the qualifier type. AWS Private CA supports the use of a URI for a CPS qualifier in this field. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers--qualifier)) ### Nested Schema for `api_passthrough.extensions.certificate_policies.policy_qualifiers.qualifier` Read-Only: -- `cps_uri` (String) +- `cps_uri` (String) Contains a pointer to a certification practice statement (CPS) published by the CA. @@ -81,9 +87,9 @@ Read-Only: Read-Only: -- `critical` (Boolean) -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `critical` (Boolean) Specifies the critical flag of the X.509 extension. +- `object_identifier` (String) Specifies the object identifier (OID) of the X.509 extension. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29) +- `value` (String) Specifies the base64-encoded value of the X.509 extension. @@ -91,8 +97,8 @@ Read-Only: Read-Only: -- `extended_key_usage_object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `extended_key_usage_type` (String) +- `extended_key_usage_object_identifier` (String) Specifies a custom ``ExtendedKeyUsage`` with an object identifier (OID). +- `extended_key_usage_type` (String) Specifies a standard ``ExtendedKeyUsage`` as defined as in [RFC 5280](https://docs.aws.amazon.com/https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12). @@ -100,15 +106,15 @@ Read-Only: Read-Only: -- `crl_sign` (Boolean) -- `data_encipherment` (Boolean) -- `decipher_only` (Boolean) -- `digital_signature` (Boolean) -- `encipher_only` (Boolean) -- `key_agreement` (Boolean) -- `key_cert_sign` (Boolean) -- `key_encipherment` (Boolean) -- `non_repudiation` (Boolean) +- `crl_sign` (Boolean) Key can be used to sign CRLs. +- `data_encipherment` (Boolean) Key can be used to decipher data. +- `decipher_only` (Boolean) Key can be used only to decipher data. +- `digital_signature` (Boolean) Key can be used for digital signing. +- `encipher_only` (Boolean) Key can be used only to encipher data. +- `key_agreement` (Boolean) Key can be used in a key-agreement protocol. +- `key_cert_sign` (Boolean) Key can be used to sign certificates. +- `key_encipherment` (Boolean) Key can be used to encipher data. +- `non_repudiation` (Boolean) Key can be used for non-repudiation. @@ -116,43 +122,45 @@ Read-Only: Read-Only: -- `directory_name` (Attributes) Structure that contains X.500 distinguished name information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--directory_name)) -- `dns_name` (String) String that contains X.509 DnsName information. -- `edi_party_name` (Attributes) Structure that contains X.509 EdiPartyName information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--edi_party_name)) -- `ip_address` (String) String that contains X.509 IpAddress information. -- `other_name` (Attributes) Structure that contains X.509 OtherName information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--other_name)) -- `registered_id` (String) String that contains X.509 ObjectIdentifier information. -- `rfc_822_name` (String) String that contains X.509 Rfc822Name information. -- `uniform_resource_identifier` (String) String that contains X.509 UniformResourceIdentifier information. +- `directory_name` (Attributes) Contains information about the certificate subject. The certificate can be one issued by your private certificate authority (CA) or it can be your private CA certificate. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The Subject must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--directory_name)) +- `dns_name` (String) Represents ``GeneralName`` as a DNS name. +- `edi_party_name` (Attributes) Represents ``GeneralName`` as an ``EdiPartyName`` object. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--edi_party_name)) +- `ip_address` (String) Represents ``GeneralName`` as an IPv4 or IPv6 address. +- `other_name` (Attributes) Represents ``GeneralName`` using an ``OtherName`` object. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--other_name)) +- `registered_id` (String) Represents ``GeneralName`` as an object identifier (OID). +- `rfc_822_name` (String) Represents ``GeneralName`` as an [RFC 822](https://docs.aws.amazon.com/https://datatracker.ietf.org/doc/html/rfc822) email address. +- `uniform_resource_identifier` (String) Represents ``GeneralName`` as a URI. ### Nested Schema for `api_passthrough.extensions.subject_alternative_names.uniform_resource_identifier` Read-Only: -- `common_name` (String) -- `country` (String) -- `custom_attributes` (Attributes List) Array of X.500 attribute type and value. CustomAttributes cannot be used along with pre-defined attributes. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--uniform_resource_identifier--custom_attributes)) -- `distinguished_name_qualifier` (String) -- `generation_qualifier` (String) -- `given_name` (String) -- `initials` (String) -- `locality` (String) -- `organization` (String) -- `organizational_unit` (String) -- `pseudonym` (String) -- `serial_number` (String) -- `state` (String) -- `surname` (String) -- `title` (String) +- `common_name` (String) For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit. + Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject. +- `country` (String) Two-digit code that specifies the country in which the certificate subject located. +- `custom_attributes` (Attributes List) Contains a sequence of one or more X.500 relative distinguished names (RDNs), each of which consists of an object identifier (OID) and a value. For more information, see NIST?s definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + Custom attributes cannot be used in combination with standard attributes. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--uniform_resource_identifier--custom_attributes)) +- `distinguished_name_qualifier` (String) Disambiguating information for the certificate subject. +- `generation_qualifier` (String) Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third. +- `given_name` (String) First name. +- `initials` (String) Concatenation that typically contains the first letter of the *GivenName*, the first letter of the middle name if one exists, and the first letter of the *Surname*. +- `locality` (String) The locality (such as a city or town) in which the certificate subject is located. +- `organization` (String) Legal name of the organization with which the certificate subject is affiliated. +- `organizational_unit` (String) A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated. +- `pseudonym` (String) Typically a shortened version of a longer *GivenName*. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza. +- `serial_number` (String) The certificate serial number. +- `state` (String) State in which the subject of the certificate is located. +- `surname` (String) Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. +- `title` (String) A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject. ### Nested Schema for `api_passthrough.extensions.subject_alternative_names.uniform_resource_identifier.custom_attributes` Read-Only: -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `object_identifier` (String) Specifies the object identifier (OID) of the attribute type of the relative distinguished name (RDN). +- `value` (String) Specifies the attribute value of relative distinguished name (RDN). @@ -161,8 +169,8 @@ Read-Only: Read-Only: -- `name_assigner` (String) -- `party_name` (String) +- `name_assigner` (String) Specifies the name assigner. +- `party_name` (String) Specifies the party name. @@ -170,8 +178,8 @@ Read-Only: Read-Only: -- `type_id` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `type_id` (String) Specifies an OID. +- `value` (String) Specifies an OID value. @@ -181,29 +189,31 @@ Read-Only: Read-Only: -- `common_name` (String) -- `country` (String) -- `custom_attributes` (Attributes List) Array of X.500 attribute type and value. CustomAttributes cannot be used along with pre-defined attributes. (see [below for nested schema](#nestedatt--api_passthrough--subject--custom_attributes)) -- `distinguished_name_qualifier` (String) -- `generation_qualifier` (String) -- `given_name` (String) -- `initials` (String) -- `locality` (String) -- `organization` (String) -- `organizational_unit` (String) -- `pseudonym` (String) -- `serial_number` (String) -- `state` (String) -- `surname` (String) -- `title` (String) +- `common_name` (String) For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit. + Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject. +- `country` (String) Two-digit code that specifies the country in which the certificate subject located. +- `custom_attributes` (Attributes List) Contains a sequence of one or more X.500 relative distinguished names (RDNs), each of which consists of an object identifier (OID) and a value. For more information, see NIST?s definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + Custom attributes cannot be used in combination with standard attributes. (see [below for nested schema](#nestedatt--api_passthrough--subject--custom_attributes)) +- `distinguished_name_qualifier` (String) Disambiguating information for the certificate subject. +- `generation_qualifier` (String) Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third. +- `given_name` (String) First name. +- `initials` (String) Concatenation that typically contains the first letter of the *GivenName*, the first letter of the middle name if one exists, and the first letter of the *Surname*. +- `locality` (String) The locality (such as a city or town) in which the certificate subject is located. +- `organization` (String) Legal name of the organization with which the certificate subject is affiliated. +- `organizational_unit` (String) A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated. +- `pseudonym` (String) Typically a shortened version of a longer *GivenName*. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza. +- `serial_number` (String) The certificate serial number. +- `state` (String) State in which the subject of the certificate is located. +- `surname` (String) Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. +- `title` (String) A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject. ### Nested Schema for `api_passthrough.subject.custom_attributes` Read-Only: -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `object_identifier` (String) Specifies the object identifier (OID) of the attribute type of the relative distinguished name (RDN). +- `value` (String) Specifies the attribute value of relative distinguished name (RDN). @@ -213,8 +223,8 @@ Read-Only: Read-Only: -- `type` (String) -- `value` (Number) +- `type` (String) Specifies whether the ``Value`` parameter represents days, months, or years. +- `value` (Number) A long integer interpreted according to the value of ``Type``, below. @@ -222,5 +232,5 @@ Read-Only: Read-Only: -- `type` (String) -- `value` (Number) +- `type` (String) Specifies whether the ``Value`` parameter represents days, months, or years. +- `value` (Number) A long integer interpreted according to the value of ``Type``, below. diff --git a/docs/data-sources/apigateway_authorizer.md b/docs/data-sources/apigateway_authorizer.md index 08b44d0c76..a44ef6ce7f 100644 --- a/docs/data-sources/apigateway_authorizer.md +++ b/docs/data-sources/apigateway_authorizer.md @@ -26,7 +26,7 @@ Data Source schema for AWS::ApiGateway::Authorizer - `authorizer_id` (String) - `authorizer_result_ttl_in_seconds` (Number) The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. - `authorizer_uri` (String) Specifies the authorizer's Uniform Resource Identifier (URI). For ``TOKEN`` or ``REQUEST`` authorizers, this must be a well-formed Lambda function URI, for example, ``arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations``. In general, the URI has this form ``arn:aws:apigateway:{region}:lambda:path/{service_api}``, where ``{region}`` is the same as the region hosting the Lambda function, ``path`` indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial ``/``. For Lambda functions, this is usually of the form ``/2015-03-31/functions/[FunctionARN]/invocations``. -- `identity_source` (String) The identity source for which authorization is requested. For a ``TOKEN`` or ``COGNITO_USER_POOLS`` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is ``Auth``, the header mapping expression is ``method.request.header.Auth``. For the ``REQUEST`` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an ``Auth`` header, a ``Name`` query string parameter are defined as identity sources, this value is ``method.request.header.Auth, method.request.querystring.Name``. These parameters will be used to derive the authorization caching key and to perform runtime validation of the ``REQUEST`` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional. +- `identity_source` (String) The identity source for which authorization is requested. For a ``TOKEN`` or ``COGNITO_USER_POOLS`` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is ``Auth``, the header mapping expression is ``method.request.header.Auth``. For the ``REQUEST`` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an ``Auth`` header, a ``Name`` query string parameter are defined as identity sources, this value is ``method.request.header.Auth, method.request.querystring.Name``. These parameters will be used to derive the authorization caching key and to perform runtime validation of the ``REQUEST`` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when thi - `identity_validation_expression` (String) A validation expression for the incoming identity token. For ``TOKEN`` authorizers, this value is a regular expression. For ``COGNITO_USER_POOLS`` authorizers, API Gateway will match the ``aud`` field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the ``REQUEST`` authorizer. - `name` (String) The name of the authorizer. - `provider_ar_ns` (Set of String) A list of the Amazon Cognito user pool ARNs for the ``COGNITO_USER_POOLS`` authorizer. Each element is of this format: ``arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}``. For a ``TOKEN`` or ``REQUEST`` authorizer, this is not defined. diff --git a/docs/data-sources/apigateway_method.md b/docs/data-sources/apigateway_method.md index 1fccf6c28a..49612dc64c 100644 --- a/docs/data-sources/apigateway_method.md +++ b/docs/data-sources/apigateway_method.md @@ -50,14 +50,14 @@ Read-Only: - `credentials` (String) Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string ``arn:aws:iam::\*:user/\*``. To use resource-based permissions on supported AWS services, specify null. - `integration_http_method` (String) Specifies the integration's HTTP method type. For the Type property, if you specify ``MOCK``, this property is optional. For Lambda integrations, you must set the integration method to ``POST``. For all other types, you must specify this property. - `integration_responses` (Attributes List) Specifies the integration's responses. (see [below for nested schema](#nestedatt--integration--integration_responses)) -- `passthrough_behavior` (String) Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in ``requestTemplates``. The valid value is one of the following: ``WHEN_NO_MATCH``: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. ``WHEN_NO_TEMPLATES``: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. ``NEVER``: rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. +- `passthrough_behavior` (String) Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in ``requestTemplates``. The valid value is one of the following: ``WHEN_NO_MATCH``: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. ``WHEN_NO_TEMPLATES``: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response - `request_parameters` (Map of String) A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` must be a valid and unique method request parameter name. - `request_templates` (Map of String) Represents 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. The content type value is the key in this map, and the template (as a String) is the value. - `timeout_in_millis` (Number) Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. - `type` (String) Specifies an API method integration type. The valid value is one of the following: For the HTTP and HTTP proxy integrations, each integration can specify a protocol (``http/https``), port and path. Standard 80 and 443 ports are supported as well as custom ports above 1024. 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. - `uri` (String) Specifies Uniform Resource Identifier (URI) of the integration endpoint. - For ``HTTP`` or ``HTTP_PROXY`` integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification for standard integrations. If ``connectionType`` is ``VPC_LINK`` specify the Network Load Balancer DNS name. For ``AWS`` or ``AWS_PROXY`` integrations, the URI is of the form ``arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}``. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either ``arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}`` or ``arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}`` + For ``HTTP`` or ``HTTP_PROXY`` integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification for standard integrations. If ``connectionType`` is ``VPC_LINK`` specify the Network Load Balancer DNS name. For ``AWS`` or ``AWS_PROXY`` integrations, the URI is of the form ``arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}``. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_ap ### Nested Schema for `integration.integration_responses` diff --git a/docs/data-sources/appsync_resolver.md b/docs/data-sources/appsync_resolver.md index 6db317bcfb..ed4909864e 100644 --- a/docs/data-sources/appsync_resolver.md +++ b/docs/data-sources/appsync_resolver.md @@ -21,22 +21,26 @@ Data Source schema for AWS::AppSync::Resolver ### Read-Only -- `api_id` (String) The AWS AppSync GraphQL API to which you want to attach this resolver. +- `api_id` (String) The APSYlong GraphQL API to which you want to attach this resolver. - `caching_config` (Attributes) The caching configuration for the resolver. (see [below for nested schema](#nestedatt--caching_config)) -- `code` (String) The resolver code that contains the request and response functions. When code is used, the runtime is required. +- `code` (String) The ``resolver`` code that contains the request and response functions. When code is used, the ``runtime`` is required. The runtime value must be ``APPSYNC_JS``. - `code_s3_location` (String) The Amazon S3 endpoint. - `data_source_name` (String) The resolver data source name. - `field_name` (String) The GraphQL field on a type that invokes the resolver. - `kind` (String) The resolver type. -- `max_batch_size` (Number) The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a BatchInvoke operation. + + *UNIT*: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source. + + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. +- `max_batch_size` (Number) The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. +- `metrics_config` (String) - `pipeline_config` (Attributes) Functions linked with the pipeline resolver. (see [below for nested schema](#nestedatt--pipeline_config)) -- `request_mapping_template` (String) Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. -- `request_mapping_template_s3_location` (String) The location of a request mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template. -- `resolver_arn` (String) The Amazon Resource Name (ARN) for the resolver. +- `request_mapping_template` (String) The request mapping template. + Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. +- `request_mapping_template_s3_location` (String) The location of a request mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. +- `resolver_arn` (String) - `response_mapping_template` (String) The response mapping template. -- `response_mapping_template_s3_location` (String) The location of a response mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template. -- `runtime` (Attributes) Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. (see [below for nested schema](#nestedatt--runtime)) -- `sync_config` (Attributes) The SyncConfig for a resolver attached to a versioned data source. (see [below for nested schema](#nestedatt--sync_config)) +- `response_mapping_template_s3_location` (String) The location of a response mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. +- `runtime` (Attributes) Describes a runtime used by an APSYlong resolver or APSYlong function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. (see [below for nested schema](#nestedatt--runtime)) +- `sync_config` (Attributes) The ``SyncConfig`` for a resolver attached to a versioned data source. (see [below for nested schema](#nestedatt--sync_config)) - `type_name` (String) The GraphQL type that invokes this resolver. @@ -44,8 +48,10 @@ Data Source schema for AWS::AppSync::Resolver Read-Only: -- `caching_keys` (List of String) The caching keys for a resolver that has caching activated. Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. -- `ttl` (Number) The TTL in seconds for a resolver that has caching activated. Valid values are 1-36.00 seconds. +- `caching_keys` (List of String) The caching keys for a resolver that has caching activated. + Valid values are entries from the ``$context.arguments``, ``$context.source``, and ``$context.identity`` maps. +- `ttl` (Number) The TTL in seconds for a resolver that has caching activated. + Valid values are 1?3,600 seconds. @@ -53,7 +59,7 @@ Read-Only: Read-Only: -- `functions` (List of String) A list of Function objects. +- `functions` (List of String) A list of ``Function`` objects. @@ -61,8 +67,8 @@ Read-Only: Read-Only: -- `name` (String) The name of the runtime to use. -- `runtime_version` (String) The version of the runtime to use. +- `name` (String) The ``name`` of the runtime to use. Currently, the only allowed value is ``APPSYNC_JS``. +- `runtime_version` (String) The ``version`` of the runtime to use. Currently, the only allowed version is ``1.0.0``. @@ -71,8 +77,13 @@ Read-Only: Read-Only: - `conflict_detection` (String) The Conflict Detection strategy to use. + + *VERSION*: Detect conflicts based on object versions for this resolver. + + *NONE*: Do not detect conflicts when invoking this resolver. - `conflict_handler` (String) The Conflict Resolution strategy to perform in the event of a conflict. -- `lambda_conflict_handler_config` (Attributes) The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler. (see [below for nested schema](#nestedatt--sync_config--lambda_conflict_handler_config)) + + *OPTIMISTIC_CONCURRENCY*: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server. + + *AUTOMERGE*: Resolve conflicts with the Automerge conflict resolution strategy. + + *LAMBDA*: Resolve conflicts with an LAMlong function supplied in the ``LambdaConflictHandlerConfig``. +- `lambda_conflict_handler_config` (Attributes) The ``LambdaConflictHandlerConfig`` when configuring ``LAMBDA`` as the Conflict Handler. (see [below for nested schema](#nestedatt--sync_config--lambda_conflict_handler_config)) ### Nested Schema for `sync_config.lambda_conflict_handler_config` diff --git a/docs/data-sources/batch_job_definition.md b/docs/data-sources/batch_job_definition.md index de206fc074..9f86cf337b 100644 --- a/docs/data-sources/batch_job_definition.md +++ b/docs/data-sources/batch_job_definition.md @@ -54,6 +54,7 @@ Read-Only: - `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--network_configuration)) - `privileged` (Boolean) - `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_properties--repository_credentials)) - `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--resource_requirements)) - `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--container_properties--runtime_platform)) - `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--secrets)) @@ -157,6 +158,14 @@ Read-Only: - `assign_public_ip` (String) + +### Nested Schema for `container_properties.repository_credentials` + +Read-Only: + +- `credentials_parameter` (String) + + ### Nested Schema for `container_properties.resource_requirements` @@ -393,6 +402,7 @@ Read-Only: - `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--network_configuration)) - `privileged` (Boolean) - `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--repository_credentials)) - `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--resource_requirements)) - `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--runtime_platform)) - `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--secrets)) @@ -496,6 +506,14 @@ Read-Only: - `assign_public_ip` (String) + +### Nested Schema for `node_properties.node_range_properties.container.volumes` + +Read-Only: + +- `credentials_parameter` (String) + + ### Nested Schema for `node_properties.node_range_properties.container.volumes` diff --git a/docs/data-sources/cloudfront_distribution.md b/docs/data-sources/cloudfront_distribution.md index 50fde45ec2..c7e1531f23 100644 --- a/docs/data-sources/cloudfront_distribution.md +++ b/docs/data-sources/cloudfront_distribution.md @@ -21,80 +21,143 @@ Data Source schema for AWS::CloudFront::Distribution ### Read-Only -- `distribution_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config)) +- `distribution_config` (Attributes) The distribution's configuration. (see [below for nested schema](#nestedatt--distribution_config)) - `domain_name` (String) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) A complex type that contains zero or more ``Tag`` elements. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `distribution_config` Read-Only: -- `aliases` (List of String) -- `cache_behaviors` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors)) +- `aliases` (List of String) A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution. +- `cache_behaviors` (Attributes List) A complex type that contains zero or more ``CacheBehavior`` elements. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors)) - `cnames` (List of String) -- `comment` (String) -- `continuous_deployment_policy_id` (String) -- `custom_error_responses` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--custom_error_responses)) +- `comment` (String) A comment to describe the distribution. The comment cannot be longer than 128 characters. +- `continuous_deployment_policy_id` (String) The identifier of a continuous deployment policy. For more information, see ``CreateContinuousDeploymentPolicy``. +- `custom_error_responses` (Attributes List) A complex type that controls the following: + + Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. + + How long CloudFront caches HTTP status codes in the 4xx and 5xx range. + + For more information about custom error pages, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--custom_error_responses)) - `custom_origin` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--custom_origin)) -- `default_cache_behavior` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior)) -- `default_root_object` (String) -- `enabled` (Boolean) -- `http_version` (String) -- `ipv6_enabled` (Boolean) -- `logging` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--logging)) -- `origin_groups` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups)) -- `origins` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origins)) -- `price_class` (String) -- `restrictions` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--restrictions)) +- `default_cache_behavior` (Attributes) A complex type that describes the default cache behavior if you don't specify a ``CacheBehavior`` element or if files don't match any of the values of ``PathPattern`` in ``CacheBehavior`` elements. You must create exactly one default cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior)) +- `default_root_object` (String) The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution. + Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name. + If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. + To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. + To replace the default root object, update the distribution configuration and specify the new object. + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D +- `enabled` (Boolean) From this field, you can enable or disable the selected distribution. +- `http_version` (String) (Optional) Specify the maximum HTTP version(s) that you want viewers to use to communicate with CF. The default value for new distributions is ``http1.1``. + For viewers and CF to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI). + For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). +- `ipv6_enabled` (Boolean) If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel +- `logging` (Attributes) A complex type that controls whether access logs are written for the distribution. + For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--logging)) +- `origin_groups` (Attributes) A complex type that contains information about origin groups for this distribution. (see [below for nested schema](#nestedatt--distribution_config--origin_groups)) +- `origins` (Attributes List) A complex type that contains information about origins for this distribution. (see [below for nested schema](#nestedatt--distribution_config--origins)) +- `price_class` (String) The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify ``PriceClass_All``, CloudFront responds to requests for your objects from all CloudFront edge locations. + If you specify a price class other than ``PriceClass_All``, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. + For more information about price classes, see [Choosing the Price Class for a CloudFront Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) in the *Amazon CloudFront Developer Guide*. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see [Amazon CloudFront Pricing](https://docs.aws.amazon.com/cloudfront/pricing/). +- `restrictions` (Attributes) A complex type that identifies ways in which you want to restrict distribution of your content. (see [below for nested schema](#nestedatt--distribution_config--restrictions)) - `s3_origin` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--s3_origin)) -- `staging` (Boolean) -- `viewer_certificate` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--viewer_certificate)) -- `web_acl_id` (String) +- `staging` (Boolean) A Boolean that indicates whether this is a staging distribution. When this value is ``true``, this is a staging distribution. When this value is ``false``, this is not a staging distribution. +- `viewer_certificate` (Attributes) A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. (see [below for nested schema](#nestedatt--distribution_config--viewer_certificate)) +- `web_acl_id` (String) A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest ### Nested Schema for `distribution_config.cache_behaviors` Read-Only: -- `allowed_methods` (List of String) -- `cache_policy_id` (String) -- `cached_methods` (List of String) -- `compress` (Boolean) -- `default_ttl` (Number) -- `field_level_encryption_id` (String) -- `forwarded_values` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values)) -- `function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--function_associations)) -- `lambda_function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--lambda_function_associations)) -- `max_ttl` (Number) -- `min_ttl` (Number) -- `origin_request_policy_id` (String) -- `path_pattern` (String) -- `realtime_log_config_arn` (String) -- `response_headers_policy_id` (String) -- `smooth_streaming` (Boolean) -- `target_origin_id` (String) -- `trusted_key_groups` (List of String) -- `trusted_signers` (List of String) -- `viewer_protocol_policy` (String) +- `allowed_methods` (List of String) A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + + CloudFront forwards only ``GET`` and ``HEAD`` requests. + + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + CloudFront forwards ``GET, HEAD, OPTIONS, PUT, PATCH, POST``, and ``DELETE`` requests. + + If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you might not want users to have permissions to delete objects from your origin. +- `cache_policy_id` (String) The unique identifier of the cache policy that is attached to this cache behavior. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +- `cached_methods` (List of String) A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices: + + CloudFront caches responses to ``GET`` and ``HEAD`` requests. + + CloudFront caches responses to ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. +- `compress` (Boolean) Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. +- `default_ttl` (Number) This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +- `field_level_encryption_id` (String) The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. +- `forwarded_values` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values)) +- `function_associations` (Attributes List) A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--function_associations)) +- `lambda_function_associations` (Attributes List) A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--lambda_function_associations)) +- `max_ttl` (Number) This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +- `min_ttl` (Number) This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +- `origin_request_policy_id` (String) The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +- `path_pattern` (String) The pattern (for example, ``images/*.jpg``) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. + You can optionally include a slash (``/``) at the beginning of the path pattern. For example, ``/images/*.jpg``. CloudFront behavior is the same with or without the leading ``/``. + The path pattern for the default cache behavior is ``*`` and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior. + For more information, see [Path Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) in the *Amazon CloudFront Developer Guide*. +- `realtime_log_config_arn` (String) The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. +- `response_headers_policy_id` (String) The identifier for a response headers policy. +- `smooth_streaming` (Boolean) Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify ``true``; if not, specify ``false``. If you specify ``true`` for ``SmoothStreaming``, you can still distribute other content using this cache behavior if the content matches the value of ``PathPattern``. +- `target_origin_id` (String) The value of ``ID`` for the origin that you want CloudFront to route requests to when they match this cache behavior. +- `trusted_key_groups` (List of String) A list of key groups that CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `trusted_signers` (List of String) We recommend using ``TrustedKeyGroups`` instead of ``TrustedSigners``. + A list of AWS-account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer's AWS-account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `viewer_protocol_policy` (String) The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options: + + ``allow-all``: Viewers can use HTTP or HTTPS. + + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. + + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol ### Nested Schema for `distribution_config.cache_behaviors.forwarded_values` Read-Only: -- `cookies` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values--cookies)) -- `headers` (List of String) -- `query_string` (Boolean) -- `query_string_cache_keys` (List of String) +- `cookies` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values--cookies)) +- `headers` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +- `query_string` (Boolean) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of +- `query_string_cache_keys` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior. ### Nested Schema for `distribution_config.cache_behaviors.forwarded_values.query_string_cache_keys` Read-Only: -- `forward` (String) -- `whitelisted_names` (List of String) +- `forward` (String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. + Amazon S3 doesn't process cookies. When the cache behavior is forw +- `whitelisted_names` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se @@ -103,8 +166,8 @@ Read-Only: Read-Only: -- `event_type` (String) -- `function_arn` (String) +- `event_type` (String) The event type of the function, either ``viewer-request`` or ``viewer-response``. You cannot use origin-facing event types (``origin-request`` and ``origin-response``) with a CloudFront function. +- `function_arn` (String) The Amazon Resource Name (ARN) of the function. @@ -112,9 +175,14 @@ Read-Only: Read-Only: -- `event_type` (String) -- `include_body` (Boolean) -- `lambda_function_arn` (String) +- `event_type` (String) Specifies the event type that triggers a Lambda@Edge function invocation. You can specify the following values: + + ``viewer-request``: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. + + ``origin-request``: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute. + + ``origin-response``: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. + + ``viewer-response``: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. + If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. +- `include_body` (Boolean) A flag that allows a Lambda@Edge function to have read access to the body content. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide. +- `lambda_function_arn` (String) The ARN of the Lambda@Edge function. You must specify the ARN of a function version; you can't specify an alias or $LATEST. @@ -123,10 +191,21 @@ Read-Only: Read-Only: -- `error_caching_min_ttl` (Number) -- `error_code` (Number) -- `response_code` (Number) -- `response_page_path` (String) +- `error_caching_min_ttl` (Number) The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in ``ErrorCode``. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available. + For more information, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*. +- `error_code` (Number) The HTTP status code for which you want to specify a custom error page and/or a caching duration. +- `response_code` (Number) The HTTP status code that you want CloudFront to return to the viewer along with the custom error page. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: + + Some Internet devices (some firewalls and corporate proxies, for example) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer. If you substitute ``200``, the response typically won't be intercepted. + + If you don't care about distinguishing among different client errors or server errors, you can specify ``400`` or ``500`` as the ``ResponseCode`` for all 4xx or 5xx errors. + + You might want to return a ``200`` status code (OK) and static website so your customers don't know that your website is down. + + If you specify a value for ``ResponseCode``, you must also specify a value for ``ResponsePagePath``. +- `response_page_path` (String) The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: + + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``. + + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. + + If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. + We recommend @@ -146,43 +225,87 @@ Read-Only: Read-Only: -- `allowed_methods` (List of String) -- `cache_policy_id` (String) -- `cached_methods` (List of String) -- `compress` (Boolean) -- `default_ttl` (Number) -- `field_level_encryption_id` (String) -- `forwarded_values` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values)) -- `function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--function_associations)) -- `lambda_function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--lambda_function_associations)) -- `max_ttl` (Number) -- `min_ttl` (Number) -- `origin_request_policy_id` (String) -- `realtime_log_config_arn` (String) -- `response_headers_policy_id` (String) -- `smooth_streaming` (Boolean) -- `target_origin_id` (String) -- `trusted_key_groups` (List of String) -- `trusted_signers` (List of String) -- `viewer_protocol_policy` (String) +- `allowed_methods` (List of String) A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + + CloudFront forwards only ``GET`` and ``HEAD`` requests. + + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + CloudFront forwards ``GET, HEAD, OPTIONS, PUT, PATCH, POST``, and ``DELETE`` requests. + + If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you might not want users to have permissions to delete objects from your origin. +- `cache_policy_id` (String) The unique identifier of the cache policy that is attached to the default cache behavior. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +- `cached_methods` (List of String) A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices: + + CloudFront caches responses to ``GET`` and ``HEAD`` requests. + + CloudFront caches responses to ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. +- `compress` (Boolean) Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. +- `default_ttl` (Number) This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +- `field_level_encryption_id` (String) The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. +- `forwarded_values` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values)) +- `function_associations` (Attributes List) A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--function_associations)) +- `lambda_function_associations` (Attributes List) A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--lambda_function_associations)) +- `max_ttl` (Number) This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +- `min_ttl` (Number) This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +- `origin_request_policy_id` (String) The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +- `realtime_log_config_arn` (String) The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. +- `response_headers_policy_id` (String) The identifier for a response headers policy. +- `smooth_streaming` (Boolean) Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify ``true``; if not, specify ``false``. If you specify ``true`` for ``SmoothStreaming``, you can still distribute other content using this cache behavior if the content matches the value of ``PathPattern``. +- `target_origin_id` (String) The value of ``ID`` for the origin that you want CloudFront to route requests to when they use the default cache behavior. +- `trusted_key_groups` (List of String) A list of key groups that CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `trusted_signers` (List of String) We recommend using ``TrustedKeyGroups`` instead of ``TrustedSigners``. + A list of AWS-account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer's AWS-account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `viewer_protocol_policy` (String) The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options: + + ``allow-all``: Viewers can use HTTP or HTTPS. + + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. + + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol ### Nested Schema for `distribution_config.default_cache_behavior.forwarded_values` Read-Only: -- `cookies` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values--cookies)) -- `headers` (List of String) -- `query_string` (Boolean) -- `query_string_cache_keys` (List of String) +- `cookies` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values--cookies)) +- `headers` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +- `query_string` (Boolean) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of +- `query_string_cache_keys` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior. ### Nested Schema for `distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys` Read-Only: -- `forward` (String) -- `whitelisted_names` (List of String) +- `forward` (String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. + Amazon S3 doesn't process cookies. When the cache behavior is forw +- `whitelisted_names` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se @@ -191,8 +314,8 @@ Read-Only: Read-Only: -- `event_type` (String) -- `function_arn` (String) +- `event_type` (String) The event type of the function, either ``viewer-request`` or ``viewer-response``. You cannot use origin-facing event types (``origin-request`` and ``origin-response``) with a CloudFront function. +- `function_arn` (String) The Amazon Resource Name (ARN) of the function. @@ -200,9 +323,14 @@ Read-Only: Read-Only: -- `event_type` (String) -- `include_body` (Boolean) -- `lambda_function_arn` (String) +- `event_type` (String) Specifies the event type that triggers a Lambda@Edge function invocation. You can specify the following values: + + ``viewer-request``: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. + + ``origin-request``: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute. + + ``origin-response``: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. + + ``viewer-response``: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. + If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. +- `include_body` (Boolean) A flag that allows a Lambda@Edge function to have read access to the body content. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide. +- `lambda_function_arn` (String) The ARN of the Lambda@Edge function. You must specify the ARN of a function version; you can't specify an alias or $LATEST. @@ -211,9 +339,9 @@ Read-Only: Read-Only: -- `bucket` (String) -- `include_cookies` (Boolean) -- `prefix` (String) +- `bucket` (String) The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``. +- `include_cookies` (Boolean) Specifies whether you want CloudFront to include cookies in access logs, specify ``true`` for ``IncludeCookies``. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify ``false`` for ``IncludeCookies``. +- `prefix` (String) An optional string that you want CloudFront to prefix to the access log ``filenames`` for this distribution, for example, ``myprefix/``. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty ``Prefix`` element in the ``Logging`` element. @@ -221,32 +349,32 @@ Read-Only: Read-Only: -- `items` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items)) -- `quantity` (Number) +- `items` (Attributes List) The items (origin groups) in a distribution. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items)) +- `quantity` (Number) The number of origin groups. ### Nested Schema for `distribution_config.origin_groups.items` Read-Only: -- `failover_criteria` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--failover_criteria)) -- `id` (String) -- `members` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members)) +- `failover_criteria` (Attributes) A complex type that contains information about the failover criteria for an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--failover_criteria)) +- `id` (String) The origin group's ID. +- `members` (Attributes) A complex type that contains information about the origins in an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members)) ### Nested Schema for `distribution_config.origin_groups.items.members` Read-Only: -- `status_codes` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--status_codes)) +- `status_codes` (Attributes) The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--status_codes)) ### Nested Schema for `distribution_config.origin_groups.items.members.status_codes` Read-Only: -- `items` (List of Number) -- `quantity` (Number) +- `items` (List of Number) The items (status codes) for an origin group. +- `quantity` (Number) The number of status codes. @@ -255,15 +383,15 @@ Read-Only: Read-Only: -- `items` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--items)) -- `quantity` (Number) +- `items` (Attributes List) Items (origins) in an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--items)) +- `quantity` (Number) The number of origins in an origin group. ### Nested Schema for `distribution_config.origin_groups.items.members.items` Read-Only: -- `origin_id` (String) +- `origin_id` (String) The ID for an origin in an origin group. @@ -274,28 +402,43 @@ Read-Only: Read-Only: -- `connection_attempts` (Number) -- `connection_timeout` (Number) -- `custom_origin_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--custom_origin_config)) -- `domain_name` (String) -- `id` (String) -- `origin_access_control_id` (String) -- `origin_custom_headers` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origins--origin_custom_headers)) -- `origin_path` (String) -- `origin_shield` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--origin_shield)) -- `s3_origin_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--s3_origin_config)) +- `connection_attempts` (Number) The number of times that CloudFront attempts to connect to the origin. The minimum number is 1, the maximum is 3, and the default (if you don't specify otherwise) is 3. + For a custom origin (including an Amazon S3 bucket that's configured with static website hosting), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout). + For more information, see [Origin Connection Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) in the *Amazon CloudFront Developer Guide*. +- `connection_timeout` (Number) The number of seconds that CloudFront waits when trying to establish a connection to the origin. The minimum timeout is 1 second, the maximum is 10 seconds, and the default (if you don't specify otherwise) is 10 seconds. + For more information, see [Origin Connection Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) in the *Amazon CloudFront Developer Guide*. +- `custom_origin_config` (Attributes) Use this type to specify an origin that is not an Amazon S3 bucket, with one exception. If the Amazon S3 bucket is configured with static website hosting, use this type. If the Amazon S3 bucket is not configured with static website hosting, use the ``S3OriginConfig`` type instead. (see [below for nested schema](#nestedatt--distribution_config--origins--custom_origin_config)) +- `domain_name` (String) The domain name for the origin. + For more information, see [Origin Domain Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) in the *Amazon CloudFront Developer Guide*. +- `id` (String) A unique identifier for the origin. This value must be unique within the distribution. + Use this value to specify the ``TargetOriginId`` in a ``CacheBehavior`` or ``DefaultCacheBehavior``. +- `origin_access_control_id` (String) The unique identifier of an origin access control for this origin. + For more information, see [Restricting access to an Amazon S3 origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. +- `origin_custom_headers` (Attributes List) A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin. + For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--origins--origin_custom_headers)) +- `origin_path` (String) An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin. + For more information, see [Origin Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) in the *Amazon CloudFront Developer Guide*. +- `origin_shield` (Attributes) CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin. + For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--origins--origin_shield)) +- `s3_origin_config` (Attributes) Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the ``CustomOriginConfig`` type instead. (see [below for nested schema](#nestedatt--distribution_config--origins--s3_origin_config)) ### Nested Schema for `distribution_config.origins.custom_origin_config` Read-Only: -- `http_port` (Number) -- `https_port` (Number) -- `origin_keepalive_timeout` (Number) -- `origin_protocol_policy` (String) -- `origin_read_timeout` (Number) -- `origin_ssl_protocols` (List of String) +- `http_port` (Number) The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP port that the origin listens on. +- `https_port` (Number) The HTTPS port that CloudFront uses to connect to the origin. Specify the HTTPS port that the origin listens on. +- `origin_keepalive_timeout` (Number) Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds. + For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*. +- `origin_protocol_policy` (String) Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are: + + ``http-only`` ? CloudFront always uses HTTP to connect to the origin. + + ``match-viewer`` ? CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront. + + ``https-only`` ? CloudFront always uses HTTPS to connect to the origin. +- `origin_read_timeout` (Number) Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds. + For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*. +- `origin_ssl_protocols` (List of String) Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS. Valid values include ``SSLv3``, ``TLSv1``, ``TLSv1.1``, and ``TLSv1.2``. + For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the *Amazon CloudFront Developer Guide*. @@ -303,8 +446,8 @@ Read-Only: Read-Only: -- `header_name` (String) -- `header_value` (String) +- `header_name` (String) The name of a header that you want CloudFront to send to your origin. For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) in the *Amazon CloudFront Developer Guide*. +- `header_value` (String) The value for the header that you specified in the ``HeaderName`` field. @@ -312,8 +455,11 @@ Read-Only: Read-Only: -- `enabled` (Boolean) -- `origin_shield_region` (String) +- `enabled` (Boolean) A flag that specifies whether Origin Shield is enabled. + When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches. +- `origin_shield_region` (String) The AWS-Region for Origin Shield. + Specify the AWS-Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2``. + When you enable CloudFront Origin Shield, you must specify the AWS-Region for Origin Shield. For the list of AWS-Regions that you can specify, and for help choosing the best Region for your origin, see [Choosing the for Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) in the *Amazon CloudFront Developer Guide*. @@ -321,7 +467,13 @@ Read-Only: Read-Only: -- `origin_access_identity` (String) +- `origin_access_identity` (String) The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is: + origin-access-identity/cloudfront/*ID-of-origin-access-identity* + where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity. + If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. + To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. + To replace the origin access identity, update the distribution configuration and specify the new origin access identity. + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d @@ -330,15 +482,20 @@ Read-Only: Read-Only: -- `geo_restriction` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--restrictions--geo_restriction)) +- `geo_restriction` (Attributes) A complex type that controls the countries in which your content is distributed. CF determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template. (see [below for nested schema](#nestedatt--distribution_config--restrictions--geo_restriction)) ### Nested Schema for `distribution_config.restrictions.geo_restriction` Read-Only: -- `locations` (List of String) -- `restriction_type` (String) +- `locations` (List of String) A complex type that contains a ``Location`` element for each country in which you want CloudFront either to distribute your content (``whitelist``) or not distribute your content (``blacklist``). + The ``Location`` element is a two-letter, uppercase country code for a country that you want to include in your ``blacklist`` or ``whitelist``. Include one ``Location`` element for each country. + CloudFront and ``MaxMind`` both use ``ISO 3166`` country codes. For the current list of countries and the corresponding codes, see ``ISO 3166-1-alpha-2`` code on the *International Organization for Standardization* website. You can also refer to the country list on the CloudFront console, which includes both country names and codes. +- `restriction_type` (String) The method that you want to use to restrict distribution of your content by country: + + ``none``: No geo restriction is enabled, meaning access to content is not restricted by client geo location. + + ``blacklist``: The ``Location`` elements specify the countries in which you don't want CloudFront to distribute your content. + + ``whitelist``: The ``Location`` elements specify the countries in which you want CloudFront to distribute your content. @@ -356,11 +513,29 @@ Read-Only: Read-Only: -- `acm_certificate_arn` (String) -- `cloudfront_default_certificate` (Boolean) -- `iam_certificate_id` (String) -- `minimum_protocol_version` (String) -- `ssl_support_method` (String) +- `acm_certificate_arn` (String) In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). + If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +- `cloudfront_default_certificate` (Boolean) If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, set this field to ``true``. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields: + + ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both) + + ``MinimumProtocolVersion`` + + ``SslSupportMethod`` +- `iam_certificate_id` (String) In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), provide the ID of the IAM certificate. + If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +- `minimum_protocol_version` (String) If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: + + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. + + The ciphers that CloudFront can use to encrypt the content that it returns to viewers. + + For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. + On the CloudFront console, this setting is called *Security Policy*. + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl +- `ssl_support_method` (String) In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. + + ``sni-only`` ? The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + + ``vip`` ? The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). @@ -369,5 +544,7 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) A string that contains ``Tag`` key. + The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``. +- `value` (String) A string that contains an optional ``Tag`` value. + The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``. diff --git a/docs/data-sources/cognito_user_pool_risk_configuration_attachment.md b/docs/data-sources/cognito_user_pool_risk_configuration_attachment.md new file mode 100644 index 0000000000..7767108c2f --- /dev/null +++ b/docs/data-sources/cognito_user_pool_risk_configuration_attachment.md @@ -0,0 +1,142 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cognito_user_pool_risk_configuration_attachment Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Cognito::UserPoolRiskConfigurationAttachment +--- + +# awscc_cognito_user_pool_risk_configuration_attachment (Data Source) + +Data Source schema for AWS::Cognito::UserPoolRiskConfigurationAttachment + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `account_takeover_risk_configuration` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration)) +- `client_id` (String) +- `compromised_credentials_risk_configuration` (Attributes) (see [below for nested schema](#nestedatt--compromised_credentials_risk_configuration)) +- `risk_exception_configuration` (Attributes) (see [below for nested schema](#nestedatt--risk_exception_configuration)) +- `user_pool_id` (String) + + +### Nested Schema for `account_takeover_risk_configuration` + +Read-Only: + +- `actions` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions)) +- `notify_configuration` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration)) + + +### Nested Schema for `account_takeover_risk_configuration.actions` + +Read-Only: + +- `high_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--high_action)) +- `low_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--low_action)) +- `medium_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--medium_action)) + + +### Nested Schema for `account_takeover_risk_configuration.actions.high_action` + +Read-Only: + +- `event_action` (String) +- `notify` (Boolean) + + + +### Nested Schema for `account_takeover_risk_configuration.actions.low_action` + +Read-Only: + +- `event_action` (String) +- `notify` (Boolean) + + + +### Nested Schema for `account_takeover_risk_configuration.actions.medium_action` + +Read-Only: + +- `event_action` (String) +- `notify` (Boolean) + + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration` + +Read-Only: + +- `block_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--block_email)) +- `from` (String) +- `mfa_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--mfa_email)) +- `no_action_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--no_action_email)) +- `reply_to` (String) +- `source_arn` (String) + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.block_email` + +Read-Only: + +- `html_body` (String) +- `subject` (String) +- `text_body` (String) + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.mfa_email` + +Read-Only: + +- `html_body` (String) +- `subject` (String) +- `text_body` (String) + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.no_action_email` + +Read-Only: + +- `html_body` (String) +- `subject` (String) +- `text_body` (String) + + + + + +### Nested Schema for `compromised_credentials_risk_configuration` + +Read-Only: + +- `actions` (Attributes) (see [below for nested schema](#nestedatt--compromised_credentials_risk_configuration--actions)) +- `event_filter` (List of String) + + +### Nested Schema for `compromised_credentials_risk_configuration.actions` + +Read-Only: + +- `event_action` (String) + + + + +### Nested Schema for `risk_exception_configuration` + +Read-Only: + +- `blocked_ip_range_list` (List of String) +- `skipped_ip_range_list` (List of String) diff --git a/docs/data-sources/config_config_rule.md b/docs/data-sources/config_config_rule.md index 705da4b081..6116e7f4cc 100644 --- a/docs/data-sources/config_config_rule.md +++ b/docs/data-sources/config_config_rule.md @@ -21,16 +21,21 @@ Data Source schema for AWS::Config::ConfigRule ### Read-Only -- `arn` (String) ARN generated for the AWS Config rule -- `compliance` (Attributes) Compliance details of the Config rule (see [below for nested schema](#nestedatt--compliance)) -- `config_rule_id` (String) ID of the config rule -- `config_rule_name` (String) Name for the AWS Config rule -- `description` (String) Description provided for the AWS Config rule -- `evaluation_modes` (Attributes List) List of EvaluationModeConfiguration objects (see [below for nested schema](#nestedatt--evaluation_modes)) -- `input_parameters` (String) JSON string passed the Lambda function -- `maximum_execution_frequency` (String) Maximum frequency at which the rule has to be evaluated -- `scope` (Attributes) Scope to constrain which resources can trigger the AWS Config rule (see [below for nested schema](#nestedatt--scope)) -- `source` (Attributes) Source of events for the AWS Config rule (see [below for nested schema](#nestedatt--source)) +- `arn` (String) +- `compliance` (Attributes) Indicates whether an AWS resource or CC rule is compliant and provides the number of contributors that affect the compliance. (see [below for nested schema](#nestedatt--compliance)) +- `config_rule_id` (String) +- `config_rule_name` (String) A name for the CC rule. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the rule name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). +- `description` (String) The description that you provide for the CC rule. +- `evaluation_modes` (Attributes List) The modes the CC rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only. (see [below for nested schema](#nestedatt--evaluation_modes)) +- `input_parameters` (String) A string, in JSON format, that is passed to the CC rule Lambda function. +- `maximum_execution_frequency` (String) The maximum frequency with which CC runs evaluations for a rule. You can specify a value for ``MaximumExecutionFrequency`` when: + + You are using an AWS managed rule that is triggered at a periodic frequency. + + Your custom rule is triggered when CC delivers the configuration snapshot. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html). + + By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the ``MaximumExecutionFrequency`` parameter. +- `scope` (Attributes) Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes. + The scope can be empty. (see [below for nested schema](#nestedatt--scope)) +- `source` (Attributes) Provides the rule owner (```` for managed rules, ``CUSTOM_POLICY`` for Custom Policy rules, and ``CUSTOM_LAMBDA`` for Custom Lambda rules), the rule identifier, and the notifications that cause the function to evaluate your AWS resources. (see [below for nested schema](#nestedatt--source)) ### Nested Schema for `compliance` @@ -45,7 +50,7 @@ Read-Only: Read-Only: -- `mode` (String) Mode of evaluation of AWS Config rule +- `mode` (String) The mode of an evaluation. The valid values are Detective or Proactive. @@ -53,10 +58,10 @@ Read-Only: Read-Only: -- `compliance_resource_id` (String) ID of the only one resource which we want to trigger the rule -- `compliance_resource_types` (List of String) Resource types of resources which we want to trigger the rule -- `tag_key` (String) Tag key applied only to resources which we want to trigger the rule -- `tag_value` (String) Tag value applied only to resources which we want to trigger the rule +- `compliance_resource_id` (String) The ID of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ``ComplianceResourceTypes``. +- `compliance_resource_types` (List of String) The resource types of only those AWS resources that you want to trigger an evaluation for the rule. You can only specify one type if you also specify a resource ID for ``ComplianceResourceId``. +- `tag_key` (String) The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule. +- `tag_value` (String) The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for ``TagValue``, you must also specify a value for ``TagKey``. @@ -64,19 +69,24 @@ Read-Only: Read-Only: -- `custom_policy_details` (Attributes) Custom policy details when rule is custom owned (see [below for nested schema](#nestedatt--source--custom_policy_details)) -- `owner` (String) Owner of the config rule -- `source_details` (Attributes List) List of message types that can trigger the rule (see [below for nested schema](#nestedatt--source--source_details)) -- `source_identifier` (String) Identifier for the source of events +- `custom_policy_details` (Attributes) Provides the runtime system, policy definition, and whether debug logging is enabled. Required when owner is set to ``CUSTOM_POLICY``. (see [below for nested schema](#nestedatt--source--custom_policy_details)) +- `owner` (String) Indicates whether AWS or the customer owns and manages the CC rule. + CC Managed Rules are predefined rules owned by AWS. For more information, see [Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) in the *developer guide*. + CC Custom Rules are rules that you can develop either with Guard (``CUSTOM_POLICY``) or LAMlong (``CUSTOM_LAMBDA``). For more information, see [Custom Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html) in the *developer guide*. +- `source_details` (Attributes List) Provides the source and the message types that cause CC to evaluate your AWS resources against a rule. It also provides the frequency with which you want CC to run evaluations for the rule if the trigger type is periodic. + If the owner is set to ``CUSTOM_POLICY``, the only acceptable values for the CC rule trigger message type are ``ConfigurationItemChangeNotification`` and ``OversizedConfigurationItemChangeNotification``. (see [below for nested schema](#nestedatt--source--source_details)) +- `source_identifier` (String) For CC Managed rules, a predefined identifier from a list. For example, ``IAM_PASSWORD_POLICY`` is a managed rule. To reference a managed rule, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). + For CC Custom Lambda rules, the identifier is the Amazon Resource Name (ARN) of the rule's LAMlong function, such as ``arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name``. + For CC Custom Policy rules, this field will be ignored. ### Nested Schema for `source.custom_policy_details` Read-Only: -- `enable_debug_log_delivery` (Boolean) Logging toggle for custom policy rule -- `policy_runtime` (String) Runtime system for custom policy rule -- `policy_text` (String) Policy definition containing logic for custom policy rule +- `enable_debug_log_delivery` (Boolean) The boolean expression for enabling debug logging for your CC Custom Policy rule. The default value is ``false``. +- `policy_runtime` (String) The runtime system for your CC Custom Policy rule. Guard is a policy-as-code language that allows you to write policies that are enforced by CC Custom Policy rules. For more information about Guard, see the [Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard). +- `policy_text` (String) The policy definition containing the logic for your CC Custom Policy rule. @@ -84,6 +94,14 @@ Read-Only: Read-Only: -- `event_source` (String) Source of event that can trigger the rule -- `maximum_execution_frequency` (String) Frequency at which the rule has to be evaluated -- `message_type` (String) Notification type that can trigger the rule +- `event_source` (String) The source of the event, such as an AWS service, that triggers CC to evaluate your AWS resources. +- `maximum_execution_frequency` (String) The frequency at which you want CC to run evaluations for a custom rule with a periodic trigger. If you specify a value for ``MaximumExecutionFrequency``, then ``MessageType`` must use the ``ScheduledNotification`` value. + By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the ``MaximumExecutionFrequency`` parameter. + Based on the valid value you choose, CC runs evaluations once for each valid value. For example, if you choose ``Three_Hours``, CC runs evaluations once every three hours. In this case, ``Three_Hours`` is the frequency of this rule. +- `message_type` (String) The type of notification that triggers CC to run an evaluation for a rule. You can specify the following notification types: + + ``ConfigurationItemChangeNotification`` - Triggers an evaluation when CC delivers a configuration item as a result of a resource change. + + ``OversizedConfigurationItemChangeNotification`` - Triggers an evaluation when CC delivers an oversized configuration item. CC may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS. + + ``ScheduledNotification`` - Triggers a periodic evaluation at the frequency specified for ``MaximumExecutionFrequency``. + + ``ConfigurationSnapshotDeliveryCompleted`` - Triggers a periodic evaluation when CC delivers a configuration snapshot. + + If you want your custom rule to be triggered by configuration changes, specify two SourceDetail objects, one for ``ConfigurationItemChangeNotification`` and one for ``OversizedConfigurationItemChangeNotification``. diff --git a/docs/data-sources/dynamodb_table.md b/docs/data-sources/dynamodb_table.md index e8bb80f5a4..429fb8f8e5 100644 --- a/docs/data-sources/dynamodb_table.md +++ b/docs/data-sources/dynamodb_table.md @@ -22,32 +22,51 @@ Data Source schema for AWS::DynamoDB::Table ### Read-Only - `arn` (String) -- `attribute_definitions` (Attributes List) (see [below for nested schema](#nestedatt--attribute_definitions)) -- `billing_mode` (String) -- `contributor_insights_specification` (Attributes) (see [below for nested schema](#nestedatt--contributor_insights_specification)) -- `deletion_protection_enabled` (Boolean) -- `global_secondary_indexes` (Attributes List) (see [below for nested schema](#nestedatt--global_secondary_indexes)) -- `import_source_specification` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification)) -- `key_schema` (String) -- `kinesis_stream_specification` (Attributes) (see [below for nested schema](#nestedatt--kinesis_stream_specification)) -- `local_secondary_indexes` (Attributes List) (see [below for nested schema](#nestedatt--local_secondary_indexes)) -- `point_in_time_recovery_specification` (Attributes) (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) -- `provisioned_throughput` (Attributes) (see [below for nested schema](#nestedatt--provisioned_throughput)) -- `sse_specification` (Attributes) (see [below for nested schema](#nestedatt--sse_specification)) +- `attribute_definitions` (Attributes List) A list of attributes that describe the key schema for the table and indexes. + This property is required to create a DDB table. + Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) +- `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. + Valid values include: + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + If not specified, the default is ``PROVISIONED``. +- `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) +- `deletion_protection_enabled` (Boolean) Determines if a table is protected from deletion. When enabled, the table cannot be deleted by any user or process. This setting is disabled by default. For more information, see [Using deletion protection](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection) in the *Developer Guide*. +- `global_secondary_indexes` (Attributes List) Global secondary indexes to be created on the table. You can create up to 20 global secondary indexes. + If you update a table to include a new global secondary index, CFNlong initiates the index creation and then proceeds with the stack update. CFNlong doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table. You can't use the index or update the table until the index's status is ``ACTIVE``. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command. + If you add or delete an index during an update, we recommend that you don't update any other resources. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index. + Updates are not supported. The following are exceptions: + + If you update either the contributor insights specification or the provisioned throughput value (see [below for nested schema](#nestedatt--global_secondary_indexes)) +- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the table. + If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) +- `key_schema` (String) Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property. +- `kinesis_stream_specification` (Attributes) The Kinesis Data Streams configuration for the specified table. (see [below for nested schema](#nestedatt--kinesis_stream_specification)) +- `local_secondary_indexes` (Attributes List) Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes. (see [below for nested schema](#nestedatt--local_secondary_indexes)) +- `point_in_time_recovery_specification` (Attributes) The settings used to enable point in time recovery. (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) +- `provisioned_throughput` (Attributes) Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). + If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. (see [below for nested schema](#nestedatt--provisioned_throughput)) +- `sse_specification` (Attributes) Specifies the settings to enable server-side encryption. (see [below for nested schema](#nestedatt--sse_specification)) - `stream_arn` (String) -- `stream_specification` (Attributes) (see [below for nested schema](#nestedatt--stream_specification)) -- `table_class` (String) -- `table_name` (String) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) -- `time_to_live_specification` (Attributes) (see [below for nested schema](#nestedatt--time_to_live_specification)) +- `stream_specification` (Attributes) The settings for the DDB table stream, which capture changes to items stored in the table. (see [below for nested schema](#nestedatt--stream_specification)) +- `table_class` (String) The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``. +- `table_name` (String) A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `tags` (Attributes List) An array of key-value pairs to apply to this resource. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--tags)) +- `time_to_live_specification` (Attributes) Specifies the Time to Live (TTL) settings for the table. + For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. (see [below for nested schema](#nestedatt--time_to_live_specification)) ### Nested Schema for `attribute_definitions` Read-Only: -- `attribute_name` (String) -- `attribute_type` (String) +- `attribute_name` (String) A name for the attribute. +- `attribute_type` (String) The data type for the attribute, where: + + ``S`` - the attribute is of type String + + ``N`` - the attribute is of type Number + + ``B`` - the attribute is of type Binary @@ -55,7 +74,7 @@ Read-Only: Read-Only: -- `enabled` (Boolean) +- `enabled` (Boolean) Indicates whether CloudWatch Contributor Insights are to be enabled (true) or disabled (false). @@ -63,18 +82,24 @@ Read-Only: Read-Only: -- `contributor_insights_specification` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--contributor_insights_specification)) -- `index_name` (String) -- `key_schema` (Attributes List) (see [below for nested schema](#nestedatt--global_secondary_indexes--key_schema)) -- `projection` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--projection)) -- `provisioned_throughput` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--provisioned_throughput)) +- `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index. (see [below for nested schema](#nestedatt--global_secondary_indexes--contributor_insights_specification)) +- `index_name` (String) The name of the global secondary index. The name must be unique among all other indexes on this table. +- `key_schema` (Attributes List) The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. (see [below for nested schema](#nestedatt--global_secondary_indexes--key_schema)) +- `projection` (Attributes) Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. (see [below for nested schema](#nestedatt--global_secondary_indexes--projection)) +- `provisioned_throughput` (Attributes) Represents the provisioned throughput settings for the specified global secondary index. + For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. (see [below for nested schema](#nestedatt--global_secondary_indexes--provisioned_throughput)) ### Nested Schema for `global_secondary_indexes.contributor_insights_specification` Read-Only: -- `enabled` (Boolean) +- `enabled` (Boolean) Indicates whether CloudWatch Contributor Insights are to be enabled (true) or disabled (false). @@ -82,8 +107,13 @@ Read-Only: Read-Only: -- `attribute_name` (String) -- `key_type` (String) +- `attribute_name` (String) The name of a key attribute. +- `key_type` (String) The role that this key attribute will assume: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. @@ -91,8 +121,12 @@ Read-Only: Read-Only: -- `non_key_attributes` (List of String) -- `projection_type` (String) +- `non_key_attributes` (List of String) Represents the non-key attribute names which will be projected into the index. + For local secondary indexes, the total count of ``NonKeyAttributes`` summed across all of the local secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. +- `projection_type` (String) The set of attributes that are projected into the index: + + ``KEYS_ONLY`` - Only the index and primary keys are projected into the index. + + ``INCLUDE`` - In addition to the attributes described in ``KEYS_ONLY``, the secondary index will include other non-key attributes that you specify. + + ``ALL`` - All of the table attributes are projected into the index. @@ -100,8 +134,10 @@ Read-Only: Read-Only: -- `read_capacity_units` (Number) -- `write_capacity_units` (Number) +- `read_capacity_units` (Number) The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. +- `write_capacity_units` (Number) The maximum number of writes consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. @@ -110,25 +146,25 @@ Read-Only: Read-Only: -- `input_compression_type` (String) -- `input_format` (String) -- `input_format_options` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--input_format_options)) -- `s3_bucket_source` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--s3_bucket_source)) +- `input_compression_type` (String) Type of compression to be used on the input coming from the imported table. +- `input_format` (String) The format of the source data. Valid values for ``ImportFormat`` are ``CSV``, ``DYNAMODB_JSON`` or ``ION``. +- `input_format_options` (Attributes) Additional properties that specify how the input is formatted, (see [below for nested schema](#nestedatt--import_source_specification--input_format_options)) +- `s3_bucket_source` (Attributes) The S3 bucket that provides the source for the import. (see [below for nested schema](#nestedatt--import_source_specification--s3_bucket_source)) ### Nested Schema for `import_source_specification.input_format_options` Read-Only: -- `csv` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--input_format_options--csv)) +- `csv` (Attributes) The options for imported source files in CSV format. The values are Delimiter and HeaderList. (see [below for nested schema](#nestedatt--import_source_specification--input_format_options--csv)) ### Nested Schema for `import_source_specification.input_format_options.csv` Read-Only: -- `delimiter` (String) -- `header_list` (List of String) +- `delimiter` (String) The delimiter used for separating items in the CSV file being imported. +- `header_list` (List of String) List of the headers used to specify a common header for all source CSV files being imported. If this field is specified then the first line of each CSV file is treated as data instead of the header. If this field is not specified the the first line of each CSV file is treated as the header. @@ -137,9 +173,9 @@ Read-Only: Read-Only: -- `s3_bucket` (String) -- `s3_bucket_owner` (String) -- `s3_key_prefix` (String) +- `s3_bucket` (String) The S3 bucket that is being imported from. +- `s3_bucket_owner` (String) The account number of the S3 bucket that is being imported from. If the bucket is owned by the requester this is optional. +- `s3_key_prefix` (String) The key prefix shared by all S3 Objects that are being imported. @@ -148,8 +184,9 @@ Read-Only: Read-Only: -- `approximate_creation_date_time_precision` (String) -- `stream_arn` (String) +- `approximate_creation_date_time_precision` (String) The precision for the time and date that the stream was created. +- `stream_arn` (String) The ARN for a specific Kinesis data stream. + Length Constraints: Minimum length of 37. Maximum length of 1024. @@ -157,17 +194,27 @@ Read-Only: Read-Only: -- `index_name` (String) -- `key_schema` (Attributes List) (see [below for nested schema](#nestedatt--local_secondary_indexes--key_schema)) -- `projection` (Attributes) (see [below for nested schema](#nestedatt--local_secondary_indexes--projection)) +- `index_name` (String) The name of the local secondary index. The name must be unique among all other indexes on this table. +- `key_schema` (Attributes List) The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. (see [below for nested schema](#nestedatt--local_secondary_indexes--key_schema)) +- `projection` (Attributes) Represents attributes that are copied (projected) from the table into the local secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. (see [below for nested schema](#nestedatt--local_secondary_indexes--projection)) ### Nested Schema for `local_secondary_indexes.key_schema` Read-Only: -- `attribute_name` (String) -- `key_type` (String) +- `attribute_name` (String) The name of a key attribute. +- `key_type` (String) The role that this key attribute will assume: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. @@ -175,8 +222,12 @@ Read-Only: Read-Only: -- `non_key_attributes` (List of String) -- `projection_type` (String) +- `non_key_attributes` (List of String) Represents the non-key attribute names which will be projected into the index. + For local secondary indexes, the total count of ``NonKeyAttributes`` summed across all of the local secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. +- `projection_type` (String) The set of attributes that are projected into the index: + + ``KEYS_ONLY`` - Only the index and primary keys are projected into the index. + + ``INCLUDE`` - In addition to the attributes described in ``KEYS_ONLY``, the secondary index will include other non-key attributes that you specify. + + ``ALL`` - All of the table attributes are projected into the index. @@ -185,7 +236,7 @@ Read-Only: Read-Only: -- `point_in_time_recovery_enabled` (Boolean) +- `point_in_time_recovery_enabled` (Boolean) Indicates whether point in time recovery is enabled (true) or disabled (false) on the table. @@ -193,8 +244,10 @@ Read-Only: Read-Only: -- `read_capacity_units` (Number) -- `write_capacity_units` (Number) +- `read_capacity_units` (Number) The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. +- `write_capacity_units` (Number) The maximum number of writes consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. @@ -202,9 +255,10 @@ Read-Only: Read-Only: -- `kms_master_key_id` (String) -- `sse_enabled` (Boolean) -- `sse_type` (String) +- `kms_master_key_id` (String) The KMS key that should be used for the KMS encryption. To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB key ``alias/aws/dynamodb``. +- `sse_enabled` (Boolean) Indicates whether server-side encryption is done using an AWS managed key or an AWS owned key. If enabled (true), server-side encryption type is set to ``KMS`` and an AWS managed key is used (KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned key. +- `sse_type` (String) Server-side encryption type. The only supported value is: + + ``KMS`` - Server-side encryption that uses KMSlong. The key is stored in your account and is managed by KMS (KMS charges apply). @@ -212,7 +266,11 @@ Read-Only: Read-Only: -- `stream_view_type` (String) +- `stream_view_type` (String) When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: + + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. + + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. + + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream. + + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. @@ -220,8 +278,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The key of the tag. Tag keys are case sensitive. Each DynamoDB table can only have up to one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value. +- `value` (String) The value of the tag. Tag values are case-sensitive and can be null. @@ -229,5 +287,7 @@ Read-Only: Read-Only: -- `attribute_name` (String) -- `enabled` (Boolean) +- `attribute_name` (String) The name of the TTL attribute used to store the expiration time for items in the table. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + To update this property, you must first disable TTL and then enable TTL with the new attribute name. +- `enabled` (Boolean) Indicates whether TTL is to be enabled (true) or disabled (false) on the table. diff --git a/docs/data-sources/ec2_ec2_fleet.md b/docs/data-sources/ec2_ec2_fleet.md index f9ef2438ab..1aeee7a73d 100644 --- a/docs/data-sources/ec2_ec2_fleet.md +++ b/docs/data-sources/ec2_ec2_fleet.md @@ -86,6 +86,7 @@ Read-Only: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--network_bandwidth_gbps)) diff --git a/docs/data-sources/ec2_eip.md b/docs/data-sources/ec2_eip.md index 5d1245a692..a40d00e09e 100644 --- a/docs/data-sources/ec2_eip.md +++ b/docs/data-sources/ec2_eip.md @@ -21,19 +21,24 @@ Data Source schema for AWS::EC2::EIP ### Read-Only -- `allocation_id` (String) The Allocation ID of the EIP generated by resource. -- `domain` (String) Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2-Classic. +- `allocation_id` (String) +- `domain` (String) The network (``vpc``). + If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. - `instance_id` (String) The ID of the instance. -- `network_border_group` (String) A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises IP addresses. -- `public_ip` (String) The PublicIP of the EIP generated by resource. + Updates to the ``InstanceId`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. +- `network_border_group` (String) A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. + Use [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups. +- `public_ip` (String) - `public_ipv_4_pool` (String) The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. -- `tags` (Attributes List) Any tags assigned to the EIP. (see [below for nested schema](#nestedatt--tags)) -- `transfer_address` (String) The PublicIP of the EIP generated by resource through transfer from another account + Updates to the ``PublicIpv4Pool`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. +- `tags` (Attributes List) Any tags assigned to the Elastic IP address. + Updates to the ``Tags`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. (see [below for nested schema](#nestedatt--tags)) +- `transfer_address` (String) The Elastic IP address you are accepting for transfer. You can only accept one transferred address. For more information on Elastic IP address transfers, see [Transfer Elastic IP addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) in the *Amazon Virtual Private Cloud User Guide*. ### Nested Schema for `tags` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ec2_launch_template.md b/docs/data-sources/ec2_launch_template.md index 91a1dca688..4b9a58592f 100644 --- a/docs/data-sources/ec2_launch_template.md +++ b/docs/data-sources/ec2_launch_template.md @@ -21,12 +21,13 @@ Data Source schema for AWS::EC2::LaunchTemplate ### Read-Only -- `default_version_number` (String) The default version of the launch template -- `latest_version_number` (String) The latest version of the launch template +- `default_version_number` (String) +- `latest_version_number` (String) - `launch_template_data` (Attributes) The information for the launch template. (see [below for nested schema](#nestedatt--launch_template_data)) -- `launch_template_id` (String) LaunchTemplate ID generated by service +- `launch_template_id` (String) - `launch_template_name` (String) A name for the launch template. -- `tag_specifications` (Attributes List) The tags to apply to the launch template on creation. (see [below for nested schema](#nestedatt--tag_specifications)) +- `tag_specifications` (Attributes List) The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``. + To specify the tags for the resources that are created when an instance is launched, you must use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) - `version_description` (String) A description for the first version of the launch template. @@ -35,46 +36,72 @@ Data Source schema for AWS::EC2::LaunchTemplate Read-Only: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) -- `capacity_reservation_specification` (Attributes) Specifies an instance's Capacity Reservation targeting option. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) specifies the CPU options for an instance. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) -- `credit_specification` (Attributes) The user data to make available to the instance. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. -- `disable_api_termination` (Boolean) If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API. -- `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. -- `elastic_gpu_specifications` (Attributes List) An elastic GPU to associate with the instance. (see [below for nested schema](#nestedatt--launch_template_data--elastic_gpu_specifications)) -- `elastic_inference_accelerators` (Attributes List) The elastic inference accelerator for the instance. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) -- `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Specifies whether your instance is configured for hibernation. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) -- `iam_instance_profile` (Attributes) Specifies an IAM instance profile, which is a container for an IAM role for your instance. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) +- `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. +- `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. +- `elastic_gpu_specifications` (Attributes List) Deprecated. + Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. (see [below for nested schema](#nestedatt--launch_template_data--elastic_gpu_specifications)) +- `elastic_inference_accelerators` (Attributes List) An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. + You cannot specify accelerators from different generations in the same request. + Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) +- `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. + You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. + Valid formats: + + ``ami-17characters00000`` + + ``resolve:ssm:parameter-name`` + + ``resolve:ssm:parameter-name:version-number`` + + ``resolve:ssm:parameter-name:label`` + + For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*. - `instance_initiated_shutdown_behavior` (String) Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). + Default: ``stop`` - `instance_market_options` (Attributes) The market (purchasing) option for the instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options)) -- `instance_requirements` (Attributes) The attributes for the instance types. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) +- `instance_requirements` (Attributes) The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. + You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default. + When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. + To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: + + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. + + If you specify ``InstanceReq (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) +- `instance_type` (String) The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. + If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. -- `key_name` (String) The name of the EC2 key pair + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. +- `key_name` (String) The name of the key pair. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html). + If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) -- `monitoring` (Attributes) Specifies whether detailed monitoring is enabled for an instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) -- `network_interfaces` (Attributes List) If you specify a network interface, you must specify any security groups and subnets as part of the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) -- `placement` (Attributes) Specifies the placement of an instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) -- `private_dns_name_options` (Attributes) Describes the options for instance hostnames. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) -- `ram_disk_id` (String) -- `security_group_ids` (List of String) One or more security group IDs. -- `security_groups` (List of String) One or more security group names. -- `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) +- `network_interfaces` (Attributes List) One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) +- `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) +- `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) +- `ram_disk_id` (String) The ID of the RAM disk. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `security_group_ids` (List of String) The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. +- `security_groups` (List of String) One or more security group names. For a nondefault VPC, you must use security group IDs instead. +- `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. + To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. + If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. ### Nested Schema for `launch_template_data.block_device_mappings` Read-Only: -- `device_name` (String) The user data to make available to the instance. -- `ebs` (Attributes) Parameters for a block device for an EBS volume in an Amazon EC2 launch template. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings--ebs)) +- `device_name` (String) The device name (for example, /dev/sdh or xvdh). +- `ebs` (Attributes) Parameters used to automatically set up EBS volumes when the instance is launched. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings--ebs)) - `no_device` (String) To omit the device from the block device mapping, specify an empty string. -- `virtual_name` (String) The virtual device name (ephemeralN). +- `virtual_name` (String) The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. ### Nested Schema for `launch_template_data.block_device_mappings.ebs` @@ -83,12 +110,25 @@ Read-Only: - `delete_on_termination` (Boolean) Indicates whether the EBS volume is deleted on instance termination. - `encrypted` (Boolean) Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. -- `iops` (Number) The number of I/O operations per second (IOPS). -- `kms_key_id` (String) The ARN of the symmetric AWS Key Management Service (AWS KMS) CMK used for encryption. +- `iops` (Number) The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. + The following are the supported values for each volume type: + + ``gp3``: 3,000 - 16,000 IOPS + + ``io1``: 100 - 64,000 IOPS + + ``io2``: 100 - 256,000 IOPS + + For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS. + This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only. +- `kms_key_id` (String) The ARN of the symmetric KMSlong (KMS) CMK used for encryption. - `snapshot_id` (String) The ID of the snapshot. -- `throughput` (Number) The throughput to provision for a gp3 volume, with a maximum of 1,000 MiB/s. -- `volume_size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. -- `volume_type` (String) The volume type. +- `throughput` (Number) The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s. + Valid Range: Minimum value of 125. Maximum value of 1000. +- `volume_size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: + + ``gp2`` and ``gp3``: 1 - 16,384 GiB + + ``io1``: 4 - 16,384 GiB + + ``io2``: 4 - 65,536 GiB + + ``st1`` and ``sc1``: 125 - 16,384 GiB + + ``standard``: 1 - 1024 GiB +- `volume_type` (String) The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. @@ -97,8 +137,10 @@ Read-Only: Read-Only: -- `capacity_reservation_preference` (String) Indicates the instance's Capacity Reservation preferences. -- `capacity_reservation_target` (Attributes) Specifies a target Capacity Reservation. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification--capacity_reservation_target)) +- `capacity_reservation_preference` (String) Indicates the instance's Capacity Reservation preferences. Possible preferences include: + + ``open`` - The instance can run in any ``open`` Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). + + ``none`` - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity. +- `capacity_reservation_target` (Attributes) Information about the target Capacity Reservation or Capacity Reservation group. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification--capacity_reservation_target)) ### Nested Schema for `launch_template_data.capacity_reservation_specification.capacity_reservation_target` @@ -115,9 +157,9 @@ Read-Only: Read-Only: -- `amd_sev_snp` (String) Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. +- `amd_sev_snp` (String) Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). - `core_count` (Number) The number of CPU cores for the instance. -- `threads_per_core` (Number) The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2. +- `threads_per_core` (Number) The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``. @@ -125,7 +167,8 @@ Read-Only: Read-Only: -- `cpu_credits` (String) The user data to make available to the instance. +- `cpu_credits` (String) The credit option for CPU usage of a T instance. + Valid values: ``standard`` | ``unlimited`` @@ -133,7 +176,7 @@ Read-Only: Read-Only: -- `type` (String) The type of Elastic Graphics accelerator. +- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. @@ -141,8 +184,9 @@ Read-Only: Read-Only: -- `count` (Number) The number of elastic inference accelerators to attach to the instance. -- `type` (String) The type of elastic inference accelerator. +- `count` (Number) The number of elastic inference accelerators to attach to the instance. + Default: 1 +- `type` (String) The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge. @@ -150,7 +194,7 @@ Read-Only: Read-Only: -- `enabled` (Boolean) If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. +- `enabled` (Boolean) If this parameter is set to ``true``, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. @@ -158,7 +202,8 @@ Read-Only: Read-Only: -- `configured` (Boolean) TIf you set this parameter to true, the instance is enabled for hibernation. +- `configured` (Boolean) If you set this parameter to ``true``, the instance is enabled for hibernation. + Default: ``false`` @@ -176,18 +221,24 @@ Read-Only: Read-Only: - `market_type` (String) The market type. -- `spot_options` (Attributes) Specifies options for Spot Instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options--spot_options)) +- `spot_options` (Attributes) The options for Spot Instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options--spot_options)) ### Nested Schema for `launch_template_data.instance_market_options.spot_options` Read-Only: -- `block_duration_minutes` (Number) Deprecated -- `instance_interruption_behavior` (String) The behavior when a Spot Instance is interrupted. The default is terminate. -- `max_price` (String) The maximum hourly price you're willing to pay for the Spot Instances. +- `block_duration_minutes` (Number) Deprecated. +- `instance_interruption_behavior` (String) The behavior when a Spot Instance is interrupted. The default is ``terminate``. +- `max_price` (String) The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. + If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. - `spot_instance_type` (String) The Spot Instance request type. -- `valid_until` (String) The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. +- `valid_until` (String) The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. + + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. + + For a one-time request, ``ValidUntil`` is not supported. The request remains active until all instances launch or you cancel the request. + + Default: 7 days from the current date @@ -196,29 +247,111 @@ Read-Only: Read-Only: -- `accelerator_count` (Attributes) The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferential chips) on an instance. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_count)) +- `accelerator_count` (Attributes) The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. + To exclude accelerator-enabled instance types, set ``Max`` to ``0``. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_count)) - `accelerator_manufacturers` (List of String) Indicates whether instance types must have accelerators by specific manufacturers. + + For instance types with AWS devices, specify ``amazon-web-services``. + + For instance types with AMD devices, specify ``amd``. + + For instance types with Habana devices, specify ``habana``. + + For instance types with NVIDIA devices, specify ``nvidia``. + + For instance types with Xilinx devices, specify ``xilinx``. + + Default: Any manufacturer - `accelerator_names` (List of String) The accelerators that must be on the instance type. -- `accelerator_total_memory_mi_b` (Attributes) The minimum and maximum amount of total accelerator memory, in MiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_total_memory_mi_b)) + + For instance types with NVIDIA A10G GPUs, specify ``a10g``. + + For instance types with NVIDIA A100 GPUs, specify ``a100``. + + For instance types with NVIDIA H100 GPUs, specify ``h100``. + + For instance types with AWS Inferentia chips, specify ``inferentia``. + + For instance types with NVIDIA GRID K520 GPUs, specify ``k520``. + + For instance types with NVIDIA K80 GPUs, specify ``k80``. + + For instance types with NVIDIA M60 GPUs, specify ``m60``. + + For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520``. + + For instance types with NVIDIA T4 GPUs, specify ``t4``. + + For instance types with NVIDIA T4G GPUs, specify ``t4g``. + + For instance types with Xilinx VU9P FPGAs, specify ``vu9p``. + + For instance types with NVIDIA V100 GPUs, specify ``v100``. + + Default: Any accelerator +- `accelerator_total_memory_mi_b` (Attributes) The minimum and maximum amount of total accelerator memory, in MiB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_total_memory_mi_b)) - `accelerator_types` (List of String) The accelerator types that must be on the instance type. -- `allowed_instance_types` (List of String) The instance types to apply your specified attributes against. + + For instance types with GPU accelerators, specify ``gpu``. + + For instance types with FPGA accelerators, specify ``fpga``. + + For instance types with inference accelerators, specify ``inference``. + + Default: Any accelerator type +- `allowed_instance_types` (List of String) The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. + You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. + For example, if you specify ``c5*``,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. + If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``. + Default: All instance types - `bare_metal` (String) Indicates whether bare metal instance types must be included, excluded, or required. -- `baseline_ebs_bandwidth_mbps` (Attributes) The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--baseline_ebs_bandwidth_mbps)) -- `burstable_performance` (String) + + To include bare metal instance types, specify ``included``. + + To require only bare metal instance types, specify ``required``. + + To exclude bare metal instance types, specify ``excluded``. + + Default: ``excluded`` +- `baseline_ebs_bandwidth_mbps` (Attributes) The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--baseline_ebs_bandwidth_mbps)) +- `burstable_performance` (String) Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html). + + To include burstable performance instance types, specify ``included``. + + To require only burstable performance instance types, specify ``required``. + + To exclude burstable performance instance types, specify ``excluded``. + + Default: ``excluded`` - `cpu_manufacturers` (List of String) The CPU manufacturers to include. + + For instance types with Intel CPUs, specify ``intel``. + + For instance types with AMD CPUs, specify ``amd``. + + For instance types with AWS CPUs, specify ``amazon-web-services``. + + Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template. + Default: Any manufacturer - `excluded_instance_types` (List of String) The instance types to exclude. -- `instance_generations` (List of String) Indicates whether current or previous generation instance types are included. -- `local_storage` (String) The user data to make available to the instance. + You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. + For example, if you specify ``c5*``,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types. + If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``. + Default: No excluded instance types +- `instance_generations` (List of String) Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. + For current generation instance types, specify ``current``. + For previous generation instance types, specify ``previous``. + Default: Current and previous generation instance types +- `local_storage` (String) Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*. + + To include instance types with instance store volumes, specify ``included``. + + To require only instance types with instance store volumes, specify ``required``. + + To exclude instance types with instance store volumes, specify ``excluded``. + + Default: ``included`` - `local_storage_types` (List of String) The type of local storage that is required. -- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) The price protection threshold for Spot Instances. -- `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) + + For instance types with hard disk drive (HDD) storage, specify ``hdd``. + + For instance types with solid state drive (SSD) storage, specify ``ssd``. + + Default: ``hdd`` and ``ssd`` +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To indicate no price protection threshold, specify a high value, such as ``999999``. + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc +- `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) The minimum and maximum amount of memory, in MiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_mi_b)) -- `network_bandwidth_gbps` (Attributes) The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_bandwidth_gbps)) -- `network_interface_count` (Attributes) TThe minimum and maximum number of network interfaces. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_interface_count)) -- `on_demand_max_price_percentage_over_lowest_price` (Number) The price protection threshold for On-Demand Instances. +- `network_bandwidth_gbps` (Attributes) The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_bandwidth_gbps)) +- `network_interface_count` (Attributes) The minimum and maximum number of network interfaces. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_interface_count)) +- `on_demand_max_price_percentage_over_lowest_price` (Number) [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To turn off price protection, specify a high value, such as ``999999``. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- - `require_hibernate_support` (Boolean) Indicates whether instance types must support hibernation for On-Demand Instances. -- `spot_max_price_percentage_over_lowest_price` (Number) The price protection threshold for Spot Instances. -- `total_local_storage_gb` (Attributes) The minimum and maximum amount of total local storage, in GB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--total_local_storage_gb)) + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). + Default: ``false`` +- `spot_max_price_percentage_over_lowest_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To indicate no price protection threshold, specify a high value, such as ``999999``. + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i +- `total_local_storage_gb` (Attributes) The minimum and maximum amount of total local storage, in GB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--total_local_storage_gb)) - `v_cpu_count` (Attributes) The minimum and maximum number of vCPUs. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--v_cpu_count)) @@ -226,8 +359,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum number of accelerators. -- `min` (Number) The minimum number of accelerators. +- `max` (Number) The maximum number of accelerators. To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set ``Max`` to ``0``. +- `min` (Number) The minimum number of accelerators. To specify no minimum limit, omit this parameter. @@ -235,8 +368,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum amount of accelerator memory, in MiB. -- `min` (Number) The minimum amount of accelerator memory, in MiB. +- `max` (Number) The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this parameter. @@ -244,8 +377,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum baseline bandwidth, in Mbps. -- `min` (Number) The minimum baseline bandwidth, in Mbps. +- `max` (Number) The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit this parameter. @@ -253,8 +386,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum amount of memory per vCPU, in GiB. -- `min` (Number) TThe minimum amount of memory per vCPU, in GiB. +- `max` (Number) The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this parameter. @@ -262,8 +395,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum amount of memory, in MiB. -- `min` (Number) The minimum amount of memory, in MiB. +- `max` (Number) The maximum amount of memory, in MiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of memory, in MiB. To specify no minimum limit, specify ``0``. @@ -271,8 +404,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum amount of network bandwidth, in Gbps. -- `min` (Number) The minimum amount of network bandwidth, in Gbps. +- `max` (Number) The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum limit. @@ -280,8 +413,8 @@ Read-Only: Read-Only: -- `max` (Number) -- `min` (Number) +- `max` (Number) The maximum number of network interfaces. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum number of network interfaces. To specify no minimum limit, omit this parameter. @@ -289,8 +422,8 @@ Read-Only: Read-Only: -- `max` (Number) -- `min` (Number) +- `max` (Number) The maximum amount of total local storage, in GB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of total local storage, in GB. To specify no minimum limit, omit this parameter. @@ -298,8 +431,8 @@ Read-Only: Read-Only: -- `max` (Number) The maximum number of vCPUs. -- `min` (Number) The minimum number of vCPUs. +- `max` (Number) The maximum number of vCPUs. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum number of vCPUs. To specify no minimum limit, specify ``0``. @@ -317,7 +450,7 @@ Read-Only: Read-Only: - `auto_recovery` (String) Disables the automatic recovery behavior of your instance or sets it to default. -- `reboot_migration` (String) Disables the automatic reboot-migration behavior of your instance or sets it to default. +- `reboot_migration` (String) @@ -325,11 +458,20 @@ Read-Only: Read-Only: -- `http_endpoint` (String) Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled. +- `http_endpoint` (String) Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``. + If you specify a value of ``disabled``, you will not be able to access your instance metadata. - `http_protocol_ipv_6` (String) Enables or disables the IPv6 endpoint for the instance metadata service. + Default: ``disabled`` - `http_put_response_hop_limit` (Number) The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. -- `http_tokens` (String) IMDSv2 uses token-backed sessions. -- `instance_metadata_tags` (String) Set to enabled to allow access to instance tags from the instance metadata. + Default: ``1`` + Possible values: Integers from 1 to 64 +- `http_tokens` (String) Indicates whether IMDSv2 is required. + + ``optional`` - IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials. + + ``required`` - IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + + Default: If the value of ``ImdsSupport`` for the Amazon Machine Image (AMI) for your instance is ``v2.0``, the default is ``required``. +- `instance_metadata_tags` (String) Set to ``enabled`` to allow access to instance tags from the instance metadata. Set to ``disabled`` to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). + Default: ``disabled`` @@ -337,7 +479,7 @@ Read-Only: Read-Only: -- `enabled` (Boolean) Specify true to enable detailed monitoring. +- `enabled` (Boolean) Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. @@ -345,24 +487,28 @@ Read-Only: Read-Only: -- `associate_carrier_ip_address` (Boolean) Indicates whether to associate a Carrier IP address with eth0 for a new network interface. +- `associate_carrier_ip_address` (Boolean) Associates a Carrier IP address with eth0 for a new network interface. + Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *Developer Guide*. - `associate_public_ip_address` (Boolean) Associates a public IPv4 address with eth0 for a new network interface. -- `connection_tracking_specification` (Attributes) Allows customer to specify Connection Tracking options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--connection_tracking_specification)) + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). +- `connection_tracking_specification` (Attributes) A connection tracking specification for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--connection_tracking_specification)) - `delete_on_termination` (Boolean) Indicates whether the network interface is deleted when the instance is terminated. - `description` (String) A description for the network interface. - `device_index` (Number) The device index for the network interface attachment. -- `ena_srd_specification` (Attributes) Allows customer to specify ENA-SRD options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) +- `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. -- `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. -- `ipv_4_prefixes` (Attributes List) One or more IPv4 prefixes to be assigned to the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_4_prefixes)) -- `ipv_6_address_count` (Number) The number of IPv6 addresses to assign to a network interface. -- `ipv_6_addresses` (Attributes List) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_addresses)) -- `ipv_6_prefix_count` (Number) The number of IPv6 prefixes to be automatically assigned to the network interface. -- `ipv_6_prefixes` (Attributes List) One or more IPv6 prefixes to be assigned to the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_prefixes)) -- `network_card_index` (Number) The index of the network card. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. + If you are not creating an EFA, specify ``interface`` or omit this parameter. + Valid values: ``interface`` | ``efa`` +- `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. +- `ipv_4_prefixes` (Attributes List) One or more IPv4 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv4PrefixCount`` option. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_4_prefixes)) +- `ipv_6_address_count` (Number) The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. +- `ipv_6_addresses` (Attributes List) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_addresses)) +- `ipv_6_prefix_count` (Number) The number of IPv6 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv6Prefix`` option. +- `ipv_6_prefixes` (Attributes List) One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_prefixes)) +- `network_card_index` (Number) The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0. - `network_interface_id` (String) The ID of the network interface. -- `primary_ipv_6` (Boolean) Enables the first IPv6 global unique address (GUA) on a dual stack or IPv6-only ENI immutable. +- `primary_ipv_6` (Boolean) The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). - `private_ip_address` (String) The primary private IPv4 address of the network interface. - `private_ip_addresses` (Attributes List) One or more private IPv4 addresses. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--private_ip_addresses)) - `secondary_private_ip_address_count` (Number) The number of secondary private IPv4 addresses to assign to a network interface. @@ -373,9 +519,9 @@ Read-Only: Read-Only: -- `tcp_established_timeout` (Number) Integer value for TCP Established Timeout -- `udp_stream_timeout` (Number) Integer value for UDP Stream Timeout -- `udp_timeout` (Number) Integer value for UDP Timeout +- `tcp_established_timeout` (Number) Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds. +- `udp_stream_timeout` (Number) Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds. +- `udp_timeout` (Number) Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds. @@ -383,15 +529,15 @@ Read-Only: Read-Only: -- `ena_srd_enabled` (Boolean) Enables TCP ENA-SRD -- `ena_srd_udp_specification` (Attributes) Allows customer to specify ENA-SRD (UDP) options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `launch_template_data.network_interfaces.ena_srd_specification.ena_srd_udp_specification` Read-Only: -- `ena_srd_udp_enabled` (Boolean) Enables UDP ENA-SRD +- `ena_srd_udp_enabled` (Boolean) Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express. @@ -400,7 +546,7 @@ Read-Only: Read-Only: -- `ipv_4_prefix` (String) The IPv4 prefix. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. @@ -408,7 +554,7 @@ Read-Only: Read-Only: -- `ipv_6_address` (String) +- `ipv_6_address` (String) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses. @@ -416,7 +562,7 @@ Read-Only: Read-Only: -- `ipv_6_prefix` (String) +- `ipv_6_prefix` (String) The IPv6 prefix. @@ -436,13 +582,13 @@ Read-Only: - `affinity` (String) The affinity setting for an instance on a Dedicated Host. - `availability_zone` (String) The Availability Zone for the instance. -- `group_id` (String) The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement group. +- `group_id` (String) The Group Id of a placement group. You must specify the Placement Group *Group Id* to launch an instance in a shared placement group. - `group_name` (String) The name of the placement group for the instance. - `host_id` (String) The ID of the Dedicated Host for the instance. -- `host_resource_group_arn` (String) The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host. -- `partition_number` (Number) The number of the partition the instance should launch in. Valid only if the placement group strategy is set to partition. +- `host_resource_group_arn` (String) The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to ``host``. +- `partition_number` (Number) The number of the partition the instance should launch in. Valid only if the placement group strategy is set to ``partition``. - `spread_domain` (String) Reserved for future use. -- `tenancy` (String) 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. +- `tenancy` (String) The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware. @@ -452,7 +598,7 @@ Read-Only: - `enable_resource_name_dns_a_record` (Boolean) Indicates whether to respond to DNS queries for instance hostnames with DNS A records. - `enable_resource_name_dns_aaaa_record` (Boolean) Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. -- `hostname_type` (String) The type of hostname for EC2 instances. +- `hostname_type` (String) The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. @@ -461,15 +607,17 @@ Read-Only: Read-Only: - `resource_type` (String) The type of resource to tag. -- `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) + Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. + To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). +- `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) ### Nested Schema for `launch_template_data.tag_specifications.tags` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -479,7 +627,7 @@ Read-Only: Read-Only: -- `resource_type` (String) The type of resource to tag. +- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) @@ -487,5 +635,5 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ec2_nat_gateway.md b/docs/data-sources/ec2_nat_gateway.md index 49e96d87c1..8a43387b8d 100644 --- a/docs/data-sources/ec2_nat_gateway.md +++ b/docs/data-sources/ec2_nat_gateway.md @@ -21,21 +21,23 @@ Data Source schema for AWS::EC2::NatGateway ### Read-Only -- `allocation_id` (String) -- `connectivity_type` (String) -- `max_drain_duration_seconds` (Number) +- `allocation_id` (String) [Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway. +- `connectivity_type` (String) Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity. +- `max_drain_duration_seconds` (Number) The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds. - `nat_gateway_id` (String) -- `private_ip_address` (String) -- `secondary_allocation_ids` (List of String) -- `secondary_private_ip_address_count` (Number) -- `secondary_private_ip_addresses` (List of String) -- `subnet_id` (String) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `private_ip_address` (String) The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned. +- `secondary_allocation_ids` (List of String) Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. +- `secondary_private_ip_address_count` (Number) [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. +- `secondary_private_ip_addresses` (List of String) Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. +- `subnet_id` (String) The ID of the subnet in which the NAT gateway is located. +- `tags` (Attributes List) The tags for the NAT gateway. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ec2_route_table.md b/docs/data-sources/ec2_route_table.md index 23e928e72f..08e1fc06e9 100644 --- a/docs/data-sources/ec2_route_table.md +++ b/docs/data-sources/ec2_route_table.md @@ -21,7 +21,7 @@ Data Source schema for AWS::EC2::RouteTable ### Read-Only -- `route_table_id` (String) The route table ID. +- `route_table_id` (String) - `tags` (Attributes List) Any tags assigned to the route table. (see [below for nested schema](#nestedatt--tags)) - `vpc_id` (String) The ID of the VPC. @@ -30,5 +30,5 @@ Data Source schema for AWS::EC2::RouteTable Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ec2_security_group_egress.md b/docs/data-sources/ec2_security_group_egress.md index 5cdef018fd..237ee5e515 100644 --- a/docs/data-sources/ec2_security_group_egress.md +++ b/docs/data-sources/ec2_security_group_egress.md @@ -21,12 +21,20 @@ Data Source schema for AWS::EC2::SecurityGroupEgress ### Read-Only -- `cidr_ip` (String) The IPv4 ranges -- `cidr_ipv_6` (String) [VPC only] The IPv6 ranges -- `description` (String) Resource Type definition for an egress (outbound) security group rule. -- `destination_prefix_list_id` (String) [EC2-VPC only] The ID of a prefix list. -- `destination_security_group_id` (String) You must specify a destination security group (DestinationPrefixListId or DestinationSecurityGroupId) or a CIDR range (CidrIp or CidrIpv6). -- `from_port` (Number) The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. +- `cidr_ip` (String) The IPv4 address range, in CIDR format. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. +- `cidr_ipv_6` (String) The IPv6 address range, in CIDR format. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. +- `description` (String) The description of an egress (outbound) security group rule. + Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* +- `destination_prefix_list_id` (String) The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +- `destination_security_group_id` (String) The ID of the security group. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +- `from_port` (Number) If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). - `group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. -- `ip_protocol` (String) [VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. -- `to_port` (Number) The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. +- `ip_protocol` (String) The IP protocol name (``tcp``, ``udp``, ``icmp``, ``icmpv6``) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + Use ``-1`` to specify all protocols. When authorizing security group rules, specifying ``-1`` or a protocol number other than ``tcp``, ``udp``, ``icmp``, or ``icmpv6`` allows traffic on all ports, regardless of any port range you specify. For ``tcp``, ``udp``, and ``icmp``, you must specify a port range. For ``icmpv6``, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. +- `to_port` (Number) If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes). diff --git a/docs/data-sources/ec2_security_group_ingress.md b/docs/data-sources/ec2_security_group_ingress.md new file mode 100644 index 0000000000..486cd27da0 --- /dev/null +++ b/docs/data-sources/ec2_security_group_ingress.md @@ -0,0 +1,47 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_ingress Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::SecurityGroupIngress +--- + +# awscc_ec2_security_group_ingress (Data Source) + +Data Source schema for AWS::EC2::SecurityGroupIngress + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `cidr_ip` (String) The IPv4 ranges +- `cidr_ipv_6` (String) [VPC only] The IPv6 ranges +- `description` (String) Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously +- `from_port` (Number) The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. + +Use this for ICMP and any protocol that uses ports. +- `group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. + +You must specify the GroupName property or the GroupId property. For security groups that are in a VPC, you must use the GroupId property. +- `group_name` (String) The name of the security group. +- `ip_protocol` (String) The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers). + +[VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. +- `source_prefix_list_id` (String) [EC2-VPC only] The ID of a prefix list. +- `source_security_group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name. For security groups in a nondefault VPC, you must specify the security group ID. +- `source_security_group_name` (String) [EC2-Classic, default VPC] The name of the source security group. + +You must specify the GroupName property or the GroupId property. For security groups that are in a VPC, you must use the GroupId property. +- `source_security_group_owner_id` (String) [nondefault VPC] The AWS account ID that owns the source security group. You can't specify this property with an IP address range. + +If you specify SourceSecurityGroupName or SourceSecurityGroupId and that security group is owned by a different account than the account creating the stack, you must specify the SourceSecurityGroupOwnerId; otherwise, this property is optional. +- `to_port` (Number) The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes. + +Use this for ICMP and any protocol that uses ports. diff --git a/docs/data-sources/ec2_security_group_ingresses.md b/docs/data-sources/ec2_security_group_ingresses.md new file mode 100644 index 0000000000..20ed129731 --- /dev/null +++ b/docs/data-sources/ec2_security_group_ingresses.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_ingresses Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::SecurityGroupIngress +--- + +# awscc_ec2_security_group_ingresses (Data Source) + +Plural Data Source schema for AWS::EC2::SecurityGroupIngress + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ec2_spot_fleet.md b/docs/data-sources/ec2_spot_fleet.md index 8a7c74db1a..f7fc1736c0 100644 --- a/docs/data-sources/ec2_spot_fleet.md +++ b/docs/data-sources/ec2_spot_fleet.md @@ -127,6 +127,7 @@ Read-Only: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--network_bandwidth_gbps)) @@ -349,6 +350,7 @@ Read-Only: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--network_bandwidth_gbps)) diff --git a/docs/data-sources/ec2_subnet.md b/docs/data-sources/ec2_subnet.md index 8bf2f6538b..95a4a42216 100644 --- a/docs/data-sources/ec2_subnet.md +++ b/docs/data-sources/ec2_subnet.md @@ -34,10 +34,10 @@ Data Source schema for AWS::EC2::Subnet - `ipv_6_native` (Boolean) - `ipv_6_netmask_length` (Number) The netmask length of the IPv6 CIDR you want to allocate to this subnet from an Amazon VPC IP Address Manager (IPAM) pool - `map_public_ip_on_launch` (Boolean) -- `network_acl_association_id` (String) +- `network_acl_association_id` (String) The ID of the network ACL that is associated with the subnet's VPC - `outpost_arn` (String) - `private_dns_name_options_on_launch` (Attributes) (see [below for nested schema](#nestedatt--private_dns_name_options_on_launch)) -- `subnet_id` (String) +- `subnet_id` (String) The ID of the subnet - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `vpc_id` (String) diff --git a/docs/data-sources/ec2_subnet_route_table_association.md b/docs/data-sources/ec2_subnet_route_table_association.md index 489704022d..8fd4646862 100644 --- a/docs/data-sources/ec2_subnet_route_table_association.md +++ b/docs/data-sources/ec2_subnet_route_table_association.md @@ -21,5 +21,6 @@ Data Source schema for AWS::EC2::SubnetRouteTableAssociation ### Read-Only -- `route_table_id` (String) -- `subnet_id` (String) +- `route_table_id` (String) The ID of the route table. + The physical ID changes when the route table ID is changed. +- `subnet_id` (String) The ID of the subnet. diff --git a/docs/data-sources/ec2_volume.md b/docs/data-sources/ec2_volume.md index f5e4fb54c4..178481e659 100644 --- a/docs/data-sources/ec2_volume.md +++ b/docs/data-sources/ec2_volume.md @@ -21,24 +21,55 @@ Data Source schema for AWS::EC2::Volume ### Read-Only -- `auto_enable_io` (Boolean) The Availability Zone in which to create the volume. -- `availability_zone` (String) The Availability Zone in which to create the volume. -- `encrypted` (Boolean) Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Encryption by default in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. -- `iops` (Number) The number of I/O operations per second (IOPS) to provision for an io1 or io2 volume, with a maximum ratio of 50 IOPS/GiB for io1, and 500 IOPS/GiB for io2. Range is 100 to 64,000 IOPS for volumes in most Regions. Maximum IOPS of 64,000 is guaranteed only on Nitro-based instances. Other instance families guarantee performance up to 32,000 IOPS. For more information, see Amazon EBS volume types in the Amazon Elastic Compute Cloud User Guide. This parameter is valid only for Provisioned IOPS SSD (io1 and io2) volumes. -- `kms_key_id` (String) The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If KmsKeyId is specified, the encrypted state must be true. If you omit this property and your account is enabled for encryption by default, or Encrypted is set to true, then the volume is encrypted using the default CMK specified for your account. If your account does not have a default CMK, then the volume is encrypted using the AWS managed CMK. Alternatively, if you want to specify a different CMK, you can specify one of the following: Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. Key alias. Specify the alias for the CMK, prefixed with alias/. For example, for a CMK with the alias my_cmk, use alias/my_cmk. Or to specify the AWS managed CMK, use alias/aws/ebs. Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. +- `auto_enable_io` (Boolean) Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O. +- `availability_zone` (String) The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``. +- `encrypted` (Boolean) Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*. + Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances). +- `iops` (Number) The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. + The following are the supported values for each volume type: + + ``gp3``: 3,000 - 16,000 IOPS + + ``io1``: 100 - 64,000 IOPS + + ``io2``: 100 - 256,000 IOPS + + For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS. + This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes. +- `kms_key_id` (String) The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``. + If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key. + Alternatively, if you want to specify a different key, you can specify one of the following: + + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``. + + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. - `multi_attach_enabled` (Boolean) Indicates whether Amazon EBS Multi-Attach is enabled. + CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume. - `outpost_arn` (String) The Amazon Resource Name (ARN) of the Outpost. -- `size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. Constraints: 1-16,384 for gp2, 4-16,384 for io1 and io2, 500-16,384 for st1, 500-16,384 for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size. +- `size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. + The following are the supported volumes sizes for each volume type: + + ``gp2`` and ``gp3``: 1 - 16,384 GiB + + ``io1``: 4 - 16,384 GiB + + ``io2``: 4 - 65,536 GiB + + ``st1`` and ``sc1``: 125 - 16,384 GiB + + ``standard``: 1 - 1024 GiB - `snapshot_id` (String) The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. - `tags` (Attributes List) The tags to apply to the volume during creation. (see [below for nested schema](#nestedatt--tags)) -- `throughput` (Number) The throughput that the volume supports, in MiB/s. +- `throughput` (Number) The throughput to provision for a volume, with a maximum of 1,000 MiB/s. + This parameter is valid only for ``gp3`` volumes. The default value is 125. + Valid Range: Minimum value of 125. Maximum value of 1000. - `volume_id` (String) -- `volume_type` (String) The volume type. This parameter can be one of the following values: General Purpose SSD: gp2 | gp3, Provisioned IOPS SSD: io1 | io2, Throughput Optimized HDD: st1, Cold HDD: sc1, Magnetic: standard +- `volume_type` (String) The volume type. This parameter can be one of the following values: + + General Purpose SSD: ``gp2`` | ``gp3`` + + Provisioned IOPS SSD: ``io1`` | ``io2`` + + Throughput Optimized HDD: ``st1`` + + Cold HDD: ``sc1`` + + Magnetic: ``standard`` + + For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + Default: ``gp2`` ### Nested Schema for `tags` Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ec2_vpc.md b/docs/data-sources/ec2_vpc.md index 8885649e16..f3095c94e3 100644 --- a/docs/data-sources/ec2_vpc.md +++ b/docs/data-sources/ec2_vpc.md @@ -21,29 +21,30 @@ Data Source schema for AWS::EC2::VPC ### Read-Only -- `cidr_block` (String) The primary IPv4 CIDR block for the VPC. -- `cidr_block_associations` (List of String) A list of IPv4 CIDR block association IDs for the VPC. -- `default_network_acl` (String) The default network ACL ID that is associated with the VPC. -- `default_security_group` (String) The default security group ID that is associated with the VPC. -- `enable_dns_hostnames` (Boolean) Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. -- `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. +- `cidr_block` (String) The IPv4 network range for the VPC, in CIDR notation. For example, ``10.0.0.0/16``. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18``, we modify it to ``100.68.0.0/18``. + You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``. +- `cidr_block_associations` (List of String) +- `default_network_acl` (String) +- `default_security_group` (String) +- `enable_dns_hostnames` (Boolean) Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). + You can only enable DNS hostnames if you've enabled DNS support. +- `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). - `instance_tenancy` (String) The allowed tenancy of instances launched into the VPC. - -"default": An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. - -"dedicated": An instance launched into the VPC is a Dedicated Instance by default, unless you explicitly specify a tenancy of host during instance launch. You cannot specify a tenancy of default during instance launch. - -Updating InstanceTenancy requires no replacement only if you are updating its value from "dedicated" to "default". Updating InstanceTenancy from "default" to "dedicated" requires replacement. -- `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR -- `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool -- `ipv_6_cidr_blocks` (List of String) A list of IPv6 CIDR blocks that are associated with the VPC. + + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. + + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. + + Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement. +- `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. + You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``. +- `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. +- `ipv_6_cidr_blocks` (List of String) - `tags` (Attributes List) The tags for the VPC. (see [below for nested schema](#nestedatt--tags)) -- `vpc_id` (String) The Id for the model. +- `vpc_id` (String) ### Nested Schema for `tags` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. diff --git a/docs/data-sources/ecs_task_definition.md b/docs/data-sources/ecs_task_definition.md index 0f7e56762a..28a753065e 100644 --- a/docs/data-sources/ecs_task_definition.md +++ b/docs/data-sources/ecs_task_definition.md @@ -21,78 +21,174 @@ Data Source schema for AWS::ECS::TaskDefinition ### Read-Only -- `container_definitions` (Attributes Set) (see [below for nested schema](#nestedatt--container_definitions)) -- `cpu` (String) -- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--ephemeral_storage)) -- `execution_role_arn` (String) -- `family` (String) -- `inference_accelerators` (Attributes Set) (see [below for nested schema](#nestedatt--inference_accelerators)) -- `ipc_mode` (String) -- `memory` (String) -- `network_mode` (String) -- `pid_mode` (String) -- `placement_constraints` (Attributes Set) (see [below for nested schema](#nestedatt--placement_constraints)) -- `proxy_configuration` (Attributes) (see [below for nested schema](#nestedatt--proxy_configuration)) -- `requires_compatibilities` (Set of String) -- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--runtime_platform)) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) -- `task_definition_arn` (String) The Amazon Resource Name (ARN) of the Amazon ECS task definition -- `task_role_arn` (String) -- `volumes` (Attributes Set) (see [below for nested schema](#nestedatt--volumes)) +- `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) +- `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. + The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) + + 8192 (8 vCPU) - Available ``memory`` va +- `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) +- `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*. +- `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add. + To use revision numbers when you update a task definition, specify this property. If you don't specify a value, CFNlong generates a new task definition each time that you update it. +- `inference_accelerators` (Attributes Set) The Elastic Inference accelerators to use for the containers in the task. (see [below for nested schema](#nestedatt--inference_accelerators)) +- `ipc_mode` (String) The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform +- `memory` (String) The amount (in MiB) of memory used by the task. + If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). + If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va +- `network_mode` (String) The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. + For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti +- `pid_mode` (String) The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. + If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. + If ``task`` is specified, all containers within the specified task share the same process namespace. + If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc +- `placement_constraints` (Attributes Set) An array of placement constraint objects to use for tasks. + This parameter isn't supported for tasks run on FARGATElong. (see [below for nested schema](#nestedatt--placement_constraints)) +- `proxy_configuration` (Attributes) The configuration details for the App Mesh proxy. + Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ``ecs-init`` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version ``20190301`` or later, they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--proxy_configuration)) +- `requires_compatibilities` (Set of String) The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*. +- `runtime_platform` (Attributes) The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type. + When you specify a task definition in a service, this value must match the ``runtimePlatform`` value of the service. (see [below for nested schema](#nestedatt--runtime_platform)) +- `tags` (Attributes List) The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them. + The following basic restrictions apply to tags: + + Maximum number of tags per resource - 50 + + For each resource, each tag key must be unique, and each tag key can have only one value. + + Maximum key length - 128 Unicode characters in UTF-8 + + Maximum value length - 256 Unicode characters in UTF-8 + + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + + Tag keys and values are case-sensitive. + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values (see [below for nested schema](#nestedatt--tags)) +- `task_definition_arn` (String) +- `task_role_arn` (String) The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. + IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. +- `volumes` (Attributes Set) The list of data volume definitions for the task. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*. + The ``host`` and ``sourcePath`` parameters aren't supported for tasks run on FARGATElong. (see [below for nested schema](#nestedatt--volumes)) ### Nested Schema for `container_definitions` Read-Only: -- `command` (List of String) -- `cpu` (Number) -- `credential_specs` (List of String) -- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--depends_on)) -- `disable_networking` (Boolean) -- `dns_search_domains` (List of String) -- `dns_servers` (List of String) -- `docker_labels` (Map of String) -- `docker_security_options` (List of String) -- `entry_point` (List of String) -- `environment` (Attributes Set) The environment variables to pass to a container (see [below for nested schema](#nestedatt--container_definitions--environment)) -- `environment_files` (Attributes List) The list of one or more files that contain the environment variables to pass to a container (see [below for nested schema](#nestedatt--container_definitions--environment_files)) -- `essential` (Boolean) -- `extra_hosts` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--extra_hosts)) -- `firelens_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--firelens_configuration)) -- `health_check` (Attributes) The health check command and associated configuration parameters for the container. (see [below for nested schema](#nestedatt--container_definitions--health_check)) -- `hostname` (String) -- `image` (String) The image used to start a container. This string is passed directly to the Docker daemon. -- `interactive` (Boolean) -- `links` (Set of String) -- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters)) -- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--log_configuration)) -- `memory` (Number) The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. -- `memory_reservation` (Number) -- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--mount_points)) -- `name` (String) The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed -- `port_mappings` (Attributes Set) Port mappings allow containers to access ports on the host container instance to send or receive traffic. (see [below for nested schema](#nestedatt--container_definitions--port_mappings)) -- `privileged` (Boolean) -- `pseudo_terminal` (Boolean) -- `readonly_root_filesystem` (Boolean) -- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--repository_credentials)) -- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--resource_requirements)) -- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--secrets)) -- `start_timeout` (Number) -- `stop_timeout` (Number) -- `system_controls` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--system_controls)) -- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--ulimits)) -- `user` (String) -- `volumes_from` (Attributes Set) (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) -- `working_directory` (String) +- `command` (List of String) The command that's passed to the container. This parameter maps to ``Cmd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``COMMAND`` parameter to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#cmd](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple arguments, each argument is a separated string in the array. +- `cpu` (Number) The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. + You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. + Linux containers share unallocated CPU units with other containers on the cont +- `credential_specs` (List of String) A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. + There are two formats for each ARN. + + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. + In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must +- `depends_on` (Attributes List) The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ (see [below for nested schema](#nestedatt--container_definitions--depends_on)) +- `disable_networking` (Boolean) When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). + This parameter is not supported for Windows containers. +- `dns_search_domains` (List of String) A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns-search`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `dns_servers` (List of String) A list of DNS servers that are presented to the container. This parameter maps to ``Dns`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `docker_labels` (Map of String) A key/value map of labels to add to the container. This parameter maps to ``Labels`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--label`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `docker_security_options` (List of String) A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. + For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. + For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. + This parameter maps to ``SecurityOpt`` in the [Create a co +- `entry_point` (List of String) Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. + The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). +- `environment` (Attributes Set) The environment variables to pass to a container. This parameter maps to ``Env`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--env`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + We don't recommend that you use plaintext environment variables for sensitive information, such as credential data. (see [below for nested schema](#nestedatt--container_definitions--environment)) +- `environment_files` (Attributes List) A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t (see [below for nested schema](#nestedatt--container_definitions--environment_files)) +- `essential` (Boolean) If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. + All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. +- `extra_hosts` (Attributes List) A list of hostnames and IP address mappings to append to the ``/etc/hosts`` file on the container. This parameter maps to ``ExtraHosts`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--add-host`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter isn't supported for Windows containers or tasks that use the ``awsvpc`` network mode. (see [below for nested schema](#nestedatt--container_definitions--extra_hosts)) +- `firelens_configuration` (Attributes) The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom Log Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--firelens_configuration)) +- `health_check` (Attributes) The container health check command and associated configuration parameters for the container. This parameter maps to ``HealthCheck`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). (see [below for nested schema](#nestedatt--container_definitions--health_check)) +- `hostname` (String) The hostname to use for your container. This parameter maps to ``Hostname`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--hostname`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. +- `image` (String) The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image +- `interactive` (Boolean) When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +- `links` (Set of String) The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for W +- `linux_parameters` (Attributes) Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + This parameter is not supported for Windows containers. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters)) +- `log_configuration` (Attributes) The log configuration specification for the container. + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt (see [below for nested schema](#nestedatt--container_definitions--log_configuration)) +- `memory` (Number) The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If using the Fargate launch type, this parameter is optional. + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva +- `memory_reservation` (Number) The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti +- `mount_points` (Attributes List) The mount points for data volumes in your container. + This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. (see [below for nested schema](#nestedatt--container_definitions--mount_points)) +- `name` (String) The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--name`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +- `port_mappings` (Attributes Set) The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. + For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. + Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to (see [below for nested schema](#nestedatt--container_definitions--port_mappings)) +- `privileged` (Boolean) When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers or tasks run on FARGATElong. +- `pseudo_terminal` (Boolean) When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--tty`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +- `readonly_root_filesystem` (Boolean) When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ``ReadonlyRootfs`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--read-only`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `repository_credentials` (Attributes) The private repository authentication credentials to use. (see [below for nested schema](#nestedatt--container_definitions--repository_credentials)) +- `resource_requirements` (Attributes List) The type and amount of a resource to assign to a container. The only supported resource is a GPU. (see [below for nested schema](#nestedatt--container_definitions--resource_requirements)) +- `secrets` (Attributes List) The secrets to pass to the container. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--secrets)) +- `start_timeout` (Number) Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state. + When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However +- `stop_timeout` (Number) Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm +- `system_controls` (Attributes List) A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. (see [below for nested schema](#nestedatt--container_definitions--system_controls)) +- `ulimits` (Attributes List) A list of ``ulimits`` to set in the container. This parameter maps to ``Ulimits`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--ulimit`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + This parameter is not supported for Windows containers. (see [below for nested schema](#nestedatt--container_definitions--ulimits)) +- `user` (String) The user to use inside the container. This parameter maps to ``User`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--user`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + When running tasks using the ``host`` network mode, don't run containers using the root user (UID 0). We recommend using a non-root user for better security. + You can specify the ``user`` using the following formats. If specifying a UID or GID, you must specify it as a positive integer. + + ``user`` + + ``user:group`` + + ``uid`` + + ``uid:gid`` + + ``user:gid`` + + ``uid:group`` + + This parameter is not supported for Windows containers. +- `volumes_from` (Attributes Set) Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volumes-from`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) +- `working_directory` (String) The working directory to run commands inside the container in. This parameter maps to ``WorkingDir`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--workdir`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). ### Nested Schema for `container_definitions.depends_on` Read-Only: -- `condition` (String) -- `container_name` (String) +- `condition` (String) The dependency condition of the container. The following are the available conditions and their behavior: + + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi +- `container_name` (String) The name of a container. @@ -100,8 +196,8 @@ Read-Only: Read-Only: -- `name` (String) -- `value` (String) +- `name` (String) The name of the key-value pair. For environment variables, this is the name of the environment variable. +- `value` (String) The value of the key-value pair. For environment variables, this is the value of the environment variable. @@ -109,8 +205,8 @@ Read-Only: Read-Only: -- `type` (String) -- `value` (String) +- `type` (String) The file type to use. The only supported value is ``s3``. +- `value` (String) The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. @@ -118,8 +214,8 @@ Read-Only: Read-Only: -- `hostname` (String) -- `ip_address` (String) +- `hostname` (String) The hostname to use in the ``/etc/hosts`` entry. +- `ip_address` (String) The IP address to use in the ``/etc/hosts`` entry. @@ -127,8 +223,12 @@ Read-Only: Read-Only: -- `options` (Map of String) -- `type` (String) +- `options` (Map of String) The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. + If specified, valid option keys are: + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path +- `type` (String) The log router to use. The valid values are ``fluentd`` or ``fluentbit``. @@ -136,11 +236,17 @@ Read-Only: Read-Only: -- `command` (List of String) A string array representing the command that the container runs to determine if it is healthy. +- `command` (List of String) A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. + When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. + ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` + You don't include the double quotes and brackets when you use the AWS Management Console. + ``CMD-SHELL, curl -f http://localhost/ || exit 1`` + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). - `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. -- `start_period` (Number) The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. + If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. @@ -148,21 +254,33 @@ Read-Only: Read-Only: -- `capabilities` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--capabilities)) -- `devices` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--devices)) -- `init_process_enabled` (Boolean) -- `max_swap` (Number) -- `shared_memory_size` (Number) -- `swappiness` (Number) -- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--tmpfs)) +- `capabilities` (Attributes) The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. + For tasks that use the Fargate launch type, ``capabilities`` is supported for all platform versions but the ``add`` parameter is only supported if using platform version 1.4.0 or later. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--capabilities)) +- `devices` (Attributes List) Any host devices to expose to the container. This parameter maps to ``Devices`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--device`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``devices`` parameter isn't supported. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--devices)) +- `init_process_enabled` (Boolean) Run an ``init`` process inside the container that forwards signals and reaps processes. This parameter maps to the ``--init`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `max_swap` (Number) The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the ``--memory-swap`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) where the value would be the sum of the container memory plus the ``maxSwap`` value. + If a ``maxSwap`` value of ``0`` is specified, the container will not use swap. Accepted values are ``0`` or any positive integer. If the ``maxSwap`` parameter is omitted, the container will use the swap configuration for the container instance it is running on. A ``maxSwap`` value must be set for the ``swappiness`` parameter to be used. + If you're using tasks that use the Fargate launch type, the ``maxSwap`` parameter isn't supported. + If you're using tasks on Amazon Linux 2023 the ``swappiness`` parameter isn't supported. +- `shared_memory_size` (Number) The value for the size (in MiB) of the ``/dev/shm`` volume. This parameter maps to the ``--shm-size`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you are using tasks that use the Fargate launch type, the ``sharedMemorySize`` parameter is not supported. +- `swappiness` (Number) This allows you to tune a container's memory swappiness behavior. A ``swappiness`` value of ``0`` will cause swapping to not happen unless absolutely necessary. A ``swappiness`` value of ``100`` will cause pages to be swapped very aggressively. Accepted values are whole numbers between ``0`` and ``100``. If the ``swappiness`` parameter is not specified, a default value of ``60`` is used. If a value is not specified for ``maxSwap`` then this parameter is ignored. This parameter maps to the ``--memory-swappiness`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``swappiness`` parameter isn't supported. + If you're using tasks on Amazon Linux 2023 the ``swappiness`` parameter isn't supported. +- `tmpfs` (Attributes List) The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the ``--tmpfs`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``tmpfs`` parameter isn't supported. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--tmpfs)) ### Nested Schema for `container_definitions.linux_parameters.capabilities` Read-Only: -- `add` (List of String) -- `drop` (List of String) +- `add` (List of String) The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" +- `drop` (List of String) The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" @@ -170,9 +288,9 @@ Read-Only: Read-Only: -- `container_path` (String) -- `host_path` (String) -- `permissions` (Set of String) +- `container_path` (String) The path inside the container at which to expose the host device. +- `host_path` (String) The path for the device on the host container instance. +- `permissions` (Set of String) The explicit permissions to provide to the container for the device. By default, the container has permissions for ``read``, ``write``, and ``mknod`` for the device. @@ -180,9 +298,10 @@ Read-Only: Read-Only: -- `container_path` (String) -- `mount_options` (List of String) -- `size` (Number) +- `container_path` (String) The absolute file path where the tmpfs volume is to be mounted. +- `mount_options` (List of String) The list of tmpfs volume mount options. + Valid values: ``"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"`` +- `size` (Number) The maximum size (in MiB) of the tmpfs volume. @@ -191,17 +310,24 @@ Read-Only: Read-Only: -- `log_driver` (String) -- `options` (Map of String) -- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) +- `log_driver` (String) The log driver to use for the container. + For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``. + For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. + For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs +- `options` (Map of String) The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) ### Nested Schema for `container_definitions.log_configuration.secret_options` Read-Only: -- `name` (String) -- `value_from` (String) +- `name` (String) The name of the secret. +- `value_from` (String) The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store. + For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*. + If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. @@ -210,9 +336,9 @@ Read-Only: Read-Only: -- `container_path` (String) -- `read_only` (Boolean) -- `source_volume` (String) +- `container_path` (String) The path on the container to mount the host volume at. +- `read_only` (Boolean) If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``. +- `source_volume` (String) The name of the volume to mount. Must be a volume name referenced in the ``name`` parameter of task definition ``volume``. @@ -220,12 +346,33 @@ Read-Only: Read-Only: -- `app_protocol` (String) -- `container_port` (Number) -- `container_port_range` (String) -- `host_port` (Number) -- `name` (String) -- `protocol` (String) +- `app_protocol` (String) The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. + If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. + ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se +- `container_port` (Number) The port number on the container that's bound to the user-specified or automatically assigned host port. + If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. + If you use containers in a task with the ``bridge`` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see ``hostPort``. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. +- `container_port_range` (String) The port number range on the container that's bound to the dynamically mapped host port range. + The following rules apply when you specify a ``containerPortRange``: + + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode. + + This parameter is available for both the EC2 and FARGATElong launch types. + + This parameter is available for both the Linux and Windows operating systems. + + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package + + You can specify a maximum of 100 port ranges per container. + + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host +- `host_port` (Number) The port number on the container instance to reserve for your container. + If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: + + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy. + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. + + If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically +- `name` (String) The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. + For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. +- `protocol` (String) The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -233,7 +380,8 @@ Read-Only: Read-Only: -- `credentials_parameter` (String) +- `credentials_parameter` (String) The Amazon Resource Name (ARN) of the secret containing the private repository credentials. + When you use the Amazon ECS API, CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret. When you use the AWS Management Console, you must specify the full ARN of the secret. @@ -241,8 +389,10 @@ Read-Only: Read-Only: -- `type` (String) -- `value` (String) +- `type` (String) The type of resource to assign to a container. The supported values are ``GPU`` or ``InferenceAccelerator``. +- `value` (String) The value for the specified resource type. + If the ``GPU`` type is used, the value is the number of physical ``GPUs`` the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. + If the ``InferenceAccelerator`` type is used, the ``value`` matches the ``deviceName`` for an [InferenceAccelerator](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html) specified in a task definition. @@ -250,8 +400,10 @@ Read-Only: Read-Only: -- `name` (String) -- `value_from` (String) +- `name` (String) The name of the secret. +- `value_from` (String) The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store. + For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*. + If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. @@ -259,8 +411,11 @@ Read-Only: Read-Only: -- `namespace` (String) -- `value` (String) +- `namespace` (String) The namespaced kernel parameter to set a ``value`` for. +- `value` (String) The namespaced kernel parameter to set a ``value`` for. + Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"`` + Valid network namespace values: ``Sysctls`` that start with ``"net.*"`` + All of these values are supported by Fargate. @@ -268,9 +423,9 @@ Read-Only: Read-Only: -- `hard_limit` (Number) -- `name` (String) -- `soft_limit` (Number) +- `hard_limit` (Number) The hard limit for the ``ulimit`` type. +- `name` (String) The ``type`` of the ``ulimit``. +- `soft_limit` (Number) The soft limit for the ``ulimit`` type. @@ -278,8 +433,8 @@ Read-Only: Read-Only: -- `read_only` (Boolean) -- `source_container` (String) +- `read_only` (Boolean) If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``. +- `source_container` (String) The name of another container within the same task definition to mount volumes from. @@ -288,7 +443,7 @@ Read-Only: Read-Only: -- `size_in_gi_b` (Number) +- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. @@ -296,8 +451,8 @@ Read-Only: Read-Only: -- `device_name` (String) -- `device_type` (String) +- `device_name` (String) The Elastic Inference accelerator device name. The ``deviceName`` must also be referenced in a container definition as a [ResourceRequirement](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html). +- `device_type` (String) The Elastic Inference accelerator type to use. @@ -305,8 +460,8 @@ Read-Only: Read-Only: -- `expression` (String) -- `type` (String) +- `expression` (String) A cluster query language expression to apply to the constraint. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*. +- `type` (String) The type of constraint. The ``MemberOf`` constraint restricts selection to be from a group of valid candidates. @@ -314,17 +469,22 @@ Read-Only: Read-Only: -- `container_name` (String) -- `proxy_configuration_properties` (Attributes Set) (see [below for nested schema](#nestedatt--proxy_configuration--proxy_configuration_properties)) -- `type` (String) +- `container_name` (String) The name of the container that will serve as the App Mesh proxy. +- `proxy_configuration_properties` (Attributes Set) The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. + + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty. + + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi (see [below for nested schema](#nestedatt--proxy_configuration--proxy_configuration_properties)) +- `type` (String) The proxy type. The only supported value is ``APPMESH``. ### Nested Schema for `proxy_configuration.proxy_configuration_properties` Read-Only: -- `name` (String) -- `value` (String) +- `name` (String) The name of the key-value pair. For environment variables, this is the name of the environment variable. +- `value` (String) The value of the key-value pair. For environment variables, this is the value of the environment variable. @@ -333,8 +493,9 @@ Read-Only: Read-Only: -- `cpu_architecture` (String) -- `operating_system_family` (String) +- `cpu_architecture` (String) The CPU architecture. + You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on Fargate. +- `operating_system_family` (String) The operating system. @@ -342,8 +503,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values. +- `value` (String) The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key). @@ -351,22 +512,30 @@ Read-Only: Read-Only: -- `configured_at_launch` (Boolean) -- `docker_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--volumes--docker_volume_configuration)) -- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration)) -- `host` (Attributes) (see [below for nested schema](#nestedatt--volumes--host)) -- `name` (String) +- `configured_at_launch` (Boolean) Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each task definition revision may only have one volume configured at launch in the volume configuration. + To configure a volume at launch time, use this task definition revision and specify a ``volumeConfigurations`` object when calling the ``CreateService``, ``UpdateService``, ``RunTask`` or ``StartTask`` APIs. +- `docker_volume_configuration` (Attributes) This parameter is specified when you use Docker volumes. + Windows containers only support the use of the ``local`` driver. To use bind mounts, specify the ``host`` parameter instead. + Docker volumes aren't supported by tasks run on FARGATElong. (see [below for nested schema](#nestedatt--volumes--docker_volume_configuration)) +- `efs_volume_configuration` (Attributes) This parameter is specified when you use an Amazon Elastic File System file system for task storage. (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration)) +- `host` (Attributes) This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. + Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. (see [below for nested schema](#nestedatt--volumes--host)) +- `name` (String) The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. + When using a volume configured at launch, the ``name`` is required and must also be specified as the volume name in the ``ServiceVolumeConfiguration`` or ``TaskVolumeConfiguration`` parameter when creating your service or standalone task. + For all other types of volumes, this name is referenced in the ``sourceVolume`` parameter of the ``mountPoints`` object in the container definition. + When a volume is using the ``efsVolumeConfiguration``, the name is required. ### Nested Schema for `volumes.docker_volume_configuration` Read-Only: -- `autoprovision` (Boolean) -- `driver` (String) -- `driver_opts` (Map of String) -- `labels` (Map of String) -- `scope` (String) +- `autoprovision` (Boolean) If this value is ``true``, the Docker volume is created if it doesn't already exist. + This field is only used if the ``scope`` is ``shared``. +- `driver` (String) The Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. If the driver was installed using the Docker plugin CLI, use ``docker plugin ls`` to retrieve the driver name from your container instance. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name. For more information, see [Docker plugin discovery](https://docs.aws.amazon.com/https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery). This parameter maps to ``Driver`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxdriver`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `driver_opts` (Map of String) A map of Docker driver-specific options passed through. This parameter maps to ``DriverOpts`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxopt`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `labels` (Map of String) Custom metadata to add to your Docker volume. This parameter maps to ``Labels`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxlabel`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `scope` (String) The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a ``task`` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as ``shared`` persist after the task stops. @@ -374,19 +543,20 @@ Read-Only: Read-Only: -- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration--authorization_config)) -- `filesystem_id` (String) -- `root_directory` (String) -- `transit_encryption` (String) -- `transit_encryption_port` (Number) +- `authorization_config` (Attributes) The authorization configuration details for the Amazon EFS file system. (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration--authorization_config)) +- `filesystem_id` (String) The Amazon EFS file system ID to use. +- `root_directory` (String) The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying ``/`` will have the same effect as omitting this parameter. + If an EFS access point is specified in the ``authorizationConfig``, the root directory parameter must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. +- `transit_encryption` (String) Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*. +- `transit_encryption_port` (Number) The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*. ### Nested Schema for `volumes.efs_volume_configuration.authorization_config` Read-Only: -- `access_point_id` (String) -- `iam` (String) +- `access_point_id` (String) The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the ``EFSVolumeConfiguration``. For more information, see [Working with Amazon EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*. +- `iam` (String) Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on in the ``EFSVolumeConfiguration``. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see [Using Amazon EFS access points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) in the *Amazon Elastic Container Service Developer Guide*. @@ -395,4 +565,5 @@ Read-Only: Read-Only: -- `source_path` (String) +- `source_path` (String) When the ``host`` parameter is used, specify a ``sourcePath`` to declare the path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the ``host`` parameter contains a ``sourcePath`` file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the ``sourcePath`` value doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. + If you're using the Fargate launch type, the ``sourcePath`` parameter is not supported. diff --git a/docs/data-sources/efs_access_point.md b/docs/data-sources/efs_access_point.md index dca3f7a667..3d47df2b4a 100644 --- a/docs/data-sources/efs_access_point.md +++ b/docs/data-sources/efs_access_point.md @@ -22,20 +22,21 @@ Data Source schema for AWS::EFS::AccessPoint ### Read-Only - `access_point_id` (String) -- `access_point_tags` (Attributes Set) (see [below for nested schema](#nestedatt--access_point_tags)) +- `access_point_tags` (Attributes Set) An array of key-value pairs to apply to this resource. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--access_point_tags)) - `arn` (String) -- `client_token` (String) (optional) A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. -- `file_system_id` (String) The ID of the EFS file system that the access point provides access to. -- `posix_user` (Attributes) The operating system user and group applied to all file system requests made using the access point. (see [below for nested schema](#nestedatt--posix_user)) -- `root_directory` (Attributes) Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory>Path specified does not exist, EFS creates it and applies the CreationInfo settings when a client connects to an access point. When specifying a RootDirectory, you need to provide the Path, and the CreationInfo is optional. (see [below for nested schema](#nestedatt--root_directory)) +- `client_token` (String) The opaque string specified in the request to ensure idempotent creation. +- `file_system_id` (String) The ID of the EFS file system that the access point applies to. Accepts only the ID format for input when specifying a file system, for example ``fs-0123456789abcedf2``. +- `posix_user` (Attributes) The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point. (see [below for nested schema](#nestedatt--posix_user)) +- `root_directory` (Attributes) The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point. (see [below for nested schema](#nestedatt--root_directory)) ### Nested Schema for `access_point_tags` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key (String). The key can't start with ``aws:``. +- `value` (String) The value of the tag key. @@ -53,14 +54,15 @@ Read-Only: Read-Only: -- `creation_info` (Attributes) (Optional) Specifies the POSIX IDs and permissions to apply to the access point's RootDirectory. If the RootDirectory>Path specified does not exist, EFS creates the root directory using the CreationInfo settings when a client connects to an access point. When specifying the CreationInfo, you must provide values for all properties. If you do not provide CreationInfo and the specified RootDirectory>Path does not exist, attempts to mount the file system using the access point will fail. (see [below for nested schema](#nestedatt--root_directory--creation_info)) -- `path` (String) Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the CreationInfo. +- `creation_info` (Attributes) (Optional) Specifies the POSIX IDs and permissions to apply to the access point's ``RootDirectory``. If the ``RootDirectory`` > ``Path`` specified does not exist, EFS creates the root directory using the ``CreationInfo`` settings when a client connects to an access point. When specifying the ``CreationInfo``, you must provide values for all properties. + If you do not provide ``CreationInfo`` and the specified ``RootDirectory`` > ``Path`` does not exist, attempts to mount the file system using the access point will fail. (see [below for nested schema](#nestedatt--root_directory--creation_info)) +- `path` (String) Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the ``CreationInfo``. ### Nested Schema for `root_directory.creation_info` Read-Only: -- `owner_gid` (String) Specifies the POSIX group ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). -- `owner_uid` (String) Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). -- `permissions` (String) Specifies the POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits. +- `owner_gid` (String) Specifies the POSIX group ID to apply to the ``RootDirectory``. Accepts values from 0 to 2^32 (4294967295). +- `owner_uid` (String) Specifies the POSIX user ID to apply to the ``RootDirectory``. Accepts values from 0 to 2^32 (4294967295). +- `permissions` (String) Specifies the POSIX permissions to apply to the ``RootDirectory``, in the format of an octal number representing the file's mode bits. diff --git a/docs/data-sources/efs_file_system.md b/docs/data-sources/efs_file_system.md index 3b83f1cb2d..5305aec59c 100644 --- a/docs/data-sources/efs_file_system.md +++ b/docs/data-sources/efs_file_system.md @@ -22,27 +22,44 @@ Data Source schema for AWS::EFS::FileSystem ### Read-Only - `arn` (String) -- `availability_zone_name` (String) -- `backup_policy` (Attributes) (see [below for nested schema](#nestedatt--backup_policy)) -- `bypass_policy_lockout_safety_check` (Boolean) Whether to bypass the FileSystemPolicy lockout safety check. The policy lockout safety check determines whether the policy in the request will prevent the principal making the request to be locked out from making future PutFileSystemPolicy requests on the file system. Set BypassPolicyLockoutSafetyCheck to True only when you intend to prevent the principal that is making the request from making a subsequent PutFileSystemPolicy request on the file system. Defaults to false -- `encrypted` (Boolean) +- `availability_zone_name` (String) For One Zone file systems, specify the AWS Availability Zone in which to create the file system. Use the format ``us-east-1a`` to specify the Availability Zone. For more information about One Zone file systems, see [EFS file system types](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html#file-system-type) in the *Amazon EFS User Guide*. + One Zone file systems are not available in all Availability Zones in AWS-Regions where Amazon EFS is available. +- `backup_policy` (Attributes) Use the ``BackupPolicy`` to turn automatic backups on or off for the file system. (see [below for nested schema](#nestedatt--backup_policy)) +- `bypass_policy_lockout_safety_check` (Boolean) (Optional) A boolean that specifies whether or not to bypass the ``FileSystemPolicy`` lockout safety check. The lockout safety check determines whether the policy in the request will lock out, or prevent, the IAM principal that is making the request from making future ``PutFileSystemPolicy`` requests on this file system. Set ``BypassPolicyLockoutSafetyCheck`` to ``True`` only when you intend to prevent the IAM principal that is making the request from making subsequent ``PutFileSystemPolicy`` requests on this file system. The default value is ``False``. +- `encrypted` (Boolean) A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing kms-key-long. If you don't specify a kms-key, then the default kms-key for EFS, ``/aws/elasticfilesystem``, is used to protect the encrypted file system. - `file_system_id` (String) -- `file_system_policy` (String) -- `file_system_protection` (Attributes) (see [below for nested schema](#nestedatt--file_system_protection)) -- `file_system_tags` (Attributes List) (see [below for nested schema](#nestedatt--file_system_tags)) -- `kms_key_id` (String) -- `lifecycle_policies` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_policies)) -- `performance_mode` (String) -- `provisioned_throughput_in_mibps` (Number) -- `replication_configuration` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration)) -- `throughput_mode` (String) +- `file_system_policy` (String) The ``FileSystemPolicy`` for the EFS file system. A file system policy is an IAM resource policy used to control NFS access to an EFS file system. For more information, see [Using to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*. +- `file_system_protection` (Attributes) Describes the protection on the file system. (see [below for nested schema](#nestedatt--file_system_protection)) +- `file_system_tags` (Attributes List) Use to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a ``"Key":"Name","Value":"{value}"`` key-value pair. Each key must be unique. For more information, see [Tagging resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *General Reference Guide*. (see [below for nested schema](#nestedatt--file_system_tags)) +- `kms_key_id` (String) The ID of the kms-key-long to be used to protect the encrypted file system. This parameter is only required if you want to use a nondefault kms-key. If this parameter is not specified, the default kms-key for EFS is used. This ID can be in one of the following formats: + + Key ID - A unique identifier of the key, for example ``1234abcd-12ab-34cd-56ef-1234567890ab``. + + ARN - An Amazon Resource Name (ARN) for the key, for example ``arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``. + + Key alias - A previously created display name for a key, for example ``alias/projectKey1``. + + Key alias ARN - An ARN for a key alias, for example ``arn:aws:kms:us-west-2:444455556666:alias/projectKey1``. + + If ``KmsKeyId`` is specified, the ``Encrypted`` parameter must be set to true. +- `lifecycle_policies` (Attributes List) An array of ``LifecyclePolicy`` objects that define the file system's ``LifecycleConfiguration`` object. A ``LifecycleConfiguration`` object informs Lifecycle management of the following: + + When to move files in the file system from primary storage to IA storage. + + When to move files in the file system from primary storage or IA storage to Archive storage. + + When to move files that are in IA or Archive storage to primary storage. + + EFS requires that each ``LifecyclePolicy`` object have only a single transition. This means that in a request body, ``LifecyclePolicies`` needs to be structured as an array of ``LifecyclePolicy`` objects, one object for each transition, ``TransitionToIA``, ``TransitionToArchive`` ``TransitionToPrimaryStorageClass``. See the example requests in the following section for more information. (see [below for nested schema](#nestedatt--lifecycle_policies)) +- `performance_mode` (String) The Performance mode of the file system. We recommend ``generalPurpose`` performance mode for all file systems. File systems using the ``maxIO`` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. The ``maxIO`` mode is not supported on One Zone file systems. + Due to the higher per-operation latencies with Max I/O, we recommend using General Purpose performance mode for all file systems. + Default is ``generalPurpose``. +- `provisioned_throughput_in_mibps` (Number) The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ``ThroughputMode`` is set to ``provisioned``. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact SUP. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*. +- `replication_configuration` (Attributes) Describes the replication configuration for a specific file system. (see [below for nested schema](#nestedatt--replication_configuration)) +- `throughput_mode` (String) Specifies the throughput mode for the file system. The mode can be ``bursting``, ``provisioned``, or ``elastic``. If you set ``ThroughputMode`` to ``provisioned``, you must also set a value for ``ProvisionedThroughputInMibps``. After you create the file system, you can decrease your file system's Provisioned throughput or change between the throughput modes, with certain time restrictions. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*. + Default is ``bursting``. ### Nested Schema for `backup_policy` Read-Only: -- `status` (String) +- `status` (String) Set the backup policy status for the file system. + + *ENABLED* - Turns automatic backups on for the file system. + + *DISABLED* - Turns automatic backups off for the file system. @@ -50,7 +67,12 @@ Read-Only: Read-Only: -- `replication_overwrite_protection` (String) +- `replication_overwrite_protection` (String) The status of the file system's replication overwrite protection. + + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. + + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication. + + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication. + + If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable. @@ -58,8 +80,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key (String). The key can't start with ``aws:``. +- `value` (String) The value of the tag key. @@ -67,9 +89,9 @@ Read-Only: Read-Only: -- `transition_to_archive` (String) -- `transition_to_ia` (String) -- `transition_to_primary_storage_class` (String) +- `transition_to_archive` (String) The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events. +- `transition_to_ia` (String) The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Infrequent Access (IA) storage. Metadata operations such as listing the contents of a directory don't count as file access events. +- `transition_to_primary_storage_class` (String) Whether to move files back to primary (Standard) storage after they are accessed in IA or Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events. @@ -77,14 +99,17 @@ Read-Only: Read-Only: -- `destinations` (Attributes List) (see [below for nested schema](#nestedatt--replication_configuration--destinations)) +- `destinations` (Attributes List) An array of destination objects. Only one destination object is supported. (see [below for nested schema](#nestedatt--replication_configuration--destinations)) ### Nested Schema for `replication_configuration.destinations` Read-Only: -- `availability_zone_name` (String) -- `file_system_id` (String) -- `kms_key_id` (String) -- `region` (String) +- `availability_zone_name` (String) The AWS For One Zone file systems, the replication configuration must specify the Availability Zone in which the destination file system is located. + Use the format ``us-east-1a`` to specify the Availability Zone. For more information about One Zone file systems, see [EFS file system types](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User Guide*. + One Zone file system type is not available in all Availability Zones in AWS-Regions where Amazon EFS is available. +- `file_system_id` (String) The ID of the destination Amazon EFS file system. +- `kms_key_id` (String) The ID of an kms-key-long used to protect the encrypted file system. +- `region` (String) The AWS-Region in which the destination file system is located. + For One Zone file systems, the replication configuration must specify the AWS-Region in which the destination file system is located. diff --git a/docs/data-sources/efs_mount_target.md b/docs/data-sources/efs_mount_target.md index 371b7aac33..e746527bc6 100644 --- a/docs/data-sources/efs_mount_target.md +++ b/docs/data-sources/efs_mount_target.md @@ -21,7 +21,7 @@ Data Source schema for AWS::EFS::MountTarget ### Read-Only -- `file_system_id` (String) -- `ip_address` (String) -- `security_groups` (Set of String) -- `subnet_id` (String) +- `file_system_id` (String) The ID of the file system for which to create the mount target. +- `ip_address` (String) Valid IPv4 address within the address range of the specified subnet. +- `security_groups` (Set of String) Up to five VPC security group IDs, of the form ``sg-xxxxxxxx``. These must be for the same VPC as subnet specified. +- `subnet_id` (String) The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. diff --git a/docs/data-sources/gamelift_fleet.md b/docs/data-sources/gamelift_fleet.md index 09cc39f577..4f029a7f80 100644 --- a/docs/data-sources/gamelift_fleet.md +++ b/docs/data-sources/gamelift_fleet.md @@ -22,7 +22,7 @@ Data Source schema for AWS::GameLift::Fleet ### Read-Only - `anywhere_configuration` (Attributes) Configuration for Anywhere fleet. (see [below for nested schema](#nestedatt--anywhere_configuration)) -- `apply_capacity` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. +- `apply_capacity` (String) Determines whether to apply fleet or location capacities on fleet creation. - `build_id` (String) A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created. - `certificate_configuration` (Attributes) Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created. (see [below for nested schema](#nestedatt--certificate_configuration)) - `compute_type` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. diff --git a/docs/data-sources/guardduty_master.md b/docs/data-sources/guardduty_master.md new file mode 100644 index 0000000000..01bd9b3f97 --- /dev/null +++ b/docs/data-sources/guardduty_master.md @@ -0,0 +1,26 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_master Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::GuardDuty::Master +--- + +# awscc_guardduty_master (Data Source) + +Data Source schema for AWS::GuardDuty::Master + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `detector_id` (String) Unique ID of the detector of the GuardDuty member account. +- `invitation_id` (String) Value used to validate the master account to the member account. +- `master_id` (String) ID of the account used as the master account. diff --git a/docs/data-sources/guardduty_member.md b/docs/data-sources/guardduty_member.md new file mode 100644 index 0000000000..8b40f1be95 --- /dev/null +++ b/docs/data-sources/guardduty_member.md @@ -0,0 +1,29 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_member Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::GuardDuty::Member +--- + +# awscc_guardduty_member (Data Source) + +Data Source schema for AWS::GuardDuty::Member + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `detector_id` (String) +- `disable_email_notification` (Boolean) +- `email` (String) +- `member_id` (String) +- `message` (String) +- `status` (String) diff --git a/docs/data-sources/iam_group_policy.md b/docs/data-sources/iam_group_policy.md index f5f2836bd8..d386cdbf40 100644 --- a/docs/data-sources/iam_group_policy.md +++ b/docs/data-sources/iam_group_policy.md @@ -22,5 +22,12 @@ Data Source schema for AWS::IAM::GroupPolicy ### Read-Only - `group_name` (String) The name of the group to associate the policy with. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. - `policy_document` (String) The policy document. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) - `policy_name` (String) The name of the policy document. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- diff --git a/docs/data-sources/iam_user.md b/docs/data-sources/iam_user.md index 3f381960a7..c14fb1ba86 100644 --- a/docs/data-sources/iam_user.md +++ b/docs/data-sources/iam_user.md @@ -21,15 +21,29 @@ Data Source schema for AWS::IAM::User ### Read-Only -- `arn` (String) The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the IAM User Guide. +- `arn` (String) - `groups` (List of String) A list of group names to which you want to add the user. -- `login_profile` (Attributes) Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console. (see [below for nested schema](#nestedatt--login_profile)) -- `managed_policy_arns` (Set of String) A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role. -- `path` (String) The path to the user. For more information about paths, see IAM identifiers in the IAM User Guide. The ARN of the policy used to set the permissions boundary for the user. -- `permissions_boundary` (String) The ARN of the policy that is used to set the permissions boundary for the user. -- `policies` (Attributes List) Adds or updates an inline policy document that is embedded in the specified IAM role. (see [below for nested schema](#nestedatt--policies)) -- `tags` (Attributes List) A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide. (see [below for nested schema](#nestedatt--tags)) -- `user_name` (String) The friendly name identifying the user. +- `login_profile` (Attributes) Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the console. + You can use the CLI, the AWS API, or the *Users* page in the IAM console to create a password for any IAM user. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the *My Security Credentials* page in the console. + For more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *User Guide*. (see [below for nested schema](#nestedatt--login_profile)) +- `managed_policy_arns` (Set of String) A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the user. + For more information about ARNs, see [Amazon Resource Names (ARNs) and Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. +- `path` (String) The path for the user name. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. +- `permissions_boundary` (String) The ARN of the managed policy that is used to set the permissions boundary for the user. + A permissions boundary policy defines the maximum permissions that identity-based policies can grant to an entity, but does not grant permissions. Permissions boundaries do not define the maximum permissions that a resource-based policy can grant to an entity. To learn more, see [Permissions boundaries for IAM entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*. + For more information about policy types, see [Policy types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) in the *IAM User Guide*. +- `policies` (Attributes List) Adds or updates an inline policy document that is embedded in the specified IAM user. To view AWS::IAM::User snippets, see [Declaring an User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user). + The name of each policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail. + For information about limits on the number of inline policies that you can embed in a user, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. (see [below for nested schema](#nestedatt--policies)) +- `tags` (Attributes List) A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*. + If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. (see [below for nested schema](#nestedatt--tags)) +- `user_name` (String) The name of the user to create. Do not include the path in this value. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The user name must be unique within the account. User names are not distinguished by case. For example, you cannot create users named both "John" and "john". + If you don't specify a name, CFN generates a unique physical ID and uses that ID for the user name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. ### Nested Schema for `login_profile` @@ -45,7 +59,7 @@ Read-Only: Read-Only: -- `policy_document` (String) The policy document. +- `policy_document` (String) The entire contents of the policy that defines permissions. For more information, see [Overview of JSON policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json). - `policy_name` (String) The friendly name (not ARN) identifying the policy. @@ -54,5 +68,6 @@ Read-Only: Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) The key name that can be used to look up or retrieve the associated value. For example, ``Department`` or ``Cost Center`` are common choices. +- `value` (String) The value associated with this tag. For example, tags with a key name of ``Department`` could have values such as ``Human Resources``, ``Accounting``, and ``Support``. Tags with a key name of ``Cost Center`` might have values that consist of the number associated with the different cost centers in your company. Typically, many resources have tags with the same key name but with different values. + AWS always interprets the tag ``Value`` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. diff --git a/docs/data-sources/iot_domain_configuration.md b/docs/data-sources/iot_domain_configuration.md index 4148841229..5da212172d 100644 --- a/docs/data-sources/iot_domain_configuration.md +++ b/docs/data-sources/iot_domain_configuration.md @@ -28,6 +28,7 @@ Data Source schema for AWS::IoT::DomainConfiguration - `domain_name` (String) - `domain_type` (String) - `server_certificate_arns` (List of String) +- `server_certificate_config` (Attributes) (see [below for nested schema](#nestedatt--server_certificate_config)) - `server_certificates` (Attributes List) (see [below for nested schema](#nestedatt--server_certificates)) - `service_type` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -43,6 +44,14 @@ Read-Only: - `default_authorizer_name` (String) + +### Nested Schema for `server_certificate_config` + +Read-Only: + +- `enable_ocsp_check` (Boolean) + + ### Nested Schema for `server_certificates` diff --git a/docs/data-sources/iotwireless_wireless_device.md b/docs/data-sources/iotwireless_wireless_device.md index fdab43f095..7a59608afe 100644 --- a/docs/data-sources/iotwireless_wireless_device.md +++ b/docs/data-sources/iotwireless_wireless_device.md @@ -41,6 +41,7 @@ Read-Only: - `abp_v11` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--abp_v11)) - `dev_eui` (String) - `device_profile_id` (String) +- `f_ports` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--f_ports)) - `otaa_v10_x` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--otaa_v10_x)) - `otaa_v11` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--otaa_v11)) - `service_profile_id` (String) @@ -83,6 +84,24 @@ Read-Only: + +### Nested Schema for `lo_ra_wan.f_ports` + +Read-Only: + +- `applications` (Attributes Set) A list of optional LoRaWAN application information, which can be used for geolocation. (see [below for nested schema](#nestedatt--lo_ra_wan--f_ports--applications)) + + +### Nested Schema for `lo_ra_wan.f_ports.applications` + +Read-Only: + +- `destination_name` (String) The name of the position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN. +- `f_port` (Number) The Fport value. +- `type` (String) Application type, which can be specified to obtain real-time position information of your LoRaWAN device. + + + ### Nested Schema for `lo_ra_wan.otaa_v10_x` diff --git a/docs/data-sources/kms_alias.md b/docs/data-sources/kms_alias.md index f9ca2c2920..d5fd834ed0 100644 --- a/docs/data-sources/kms_alias.md +++ b/docs/data-sources/kms_alias.md @@ -21,5 +21,15 @@ Data Source schema for AWS::KMS::Alias ### Read-Only -- `alias_name` (String) Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed keys. -- `target_key_id` (String) Identifies the AWS KMS key to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the AWS KMS key. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide. +- `alias_name` (String) Specifies the alias name. This value must begin with ``alias/`` followed by a name, such as ``alias/ExampleAlias``. + If you change the value of the ``AliasName`` property, the existing alias is deleted and a new alias is created for the specified KMS key. This change can disrupt applications that use the alias. It can also allow or deny access to a KMS key affected by attribute-based access control (ABAC). + The alias must be string of 1-256 characters. It can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with ``alias/aws/``. The ``alias/aws/`` prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). +- `target_key_id` (String) Associates the alias with the specified [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). The KMS key must be in the same AWS-account and Region. + A valid key ID is required. If you supply a null or empty string value, this operation returns an error. + For help finding the key ID and ARN, see [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) in the *Developer Guide*. + Specify the key ID or the key ARN of the KMS key. + For example: + + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` + + To get the key ID and key ARN for a KMS key, use [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) or [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html). diff --git a/docs/data-sources/kms_key.md b/docs/data-sources/kms_key.md index f4fae9b02f..101cef2d16 100644 --- a/docs/data-sources/kms_key.md +++ b/docs/data-sources/kms_key.md @@ -23,22 +23,52 @@ Data Source schema for AWS::KMS::Key - `arn` (String) - `bypass_policy_lockout_safety_check` (Boolean) Skips ("bypasses") the key policy lockout safety check. The default value is false. -- `description` (String) A description of the AWS KMS key. Use a description that helps you to distinguish this AWS KMS key from others in the account, such as its intended use. -- `enable_key_rotation` (Boolean) Enables automatic rotation of the key material for the specified AWS KMS key. By default, automation key rotation is not enabled. -- `enabled` (Boolean) Specifies whether the AWS KMS key is enabled. Disabled AWS KMS keys cannot be used in cryptographic operations. + Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. + For more information, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) in the *Developer Guide*. + Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key. +- `description` (String) A description of the KMS key. Use a description that helps you to distinguish this KMS key from others in the account, such as its intended use. +- `enable_key_rotation` (Boolean) Enables automatic rotation of the key material for the specified KMS key. By default, automatic key rotation is not enabled. + KMS supports automatic rotation only for symmetric encryption KMS keys (``KeySpec`` = ``SYMMETRIC_DEFAULT``). For asymmetric KMS keys, HMAC KMS keys, and KMS keys with Origin ``EXTERNAL``, omit the ``EnableKeyRotation`` property or set it to ``false``. + To enable automatic key rotation of the key material for a multi-Region KMS key, set ``EnableKeyRotation`` to ``true`` on the primary key (created by using ``AWS::KMS::Key``). KMS copies the rotation status to all replica keys. For details, see [Rotating multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate) in the *Developer Guide*. + When you enable automatic rotation, KMS automatically creates new key material for the KMS key one year after the enable date and every year thereafter. KMS retains all key material until you delete the KMS key. Fo +- `enabled` (Boolean) Specifies whether the KMS key is enabled. Disabled KMS keys cannot be used in cryptographic operations. + When ``Enabled`` is ``true``, the *key state* of the KMS key is ``Enabled``. When ``Enabled`` is ``false``, the key state of the KMS key is ``Disabled``. The default value is ``true``. + The actual key state of the KMS key might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations. + For information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *Developer Guide*. - `key_id` (String) -- `key_policy` (String) The key policy that authorizes use of the AWS KMS key. The key policy must observe the following rules. -- `key_spec` (String) Specifies the type of AWS KMS key to create. The default value is SYMMETRIC_DEFAULT. This property is required only for asymmetric AWS KMS keys. You can't change the KeySpec value after the AWS KMS key is created. -- `key_usage` (String) Determines the cryptographic operations for which you can use the AWS KMS key. The default value is ENCRYPT_DECRYPT. This property is required only for asymmetric AWS KMS keys. You can't change the KeyUsage value after the AWS KMS key is created. -- `multi_region` (Boolean) Specifies whether the AWS KMS key should be Multi-Region. You can't change the MultiRegion value after the AWS KMS key is created. -- `origin` (String) The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is AWS_KMS, which means that AWS KMS creates the key material. -- `pending_window_in_days` (Number) Specifies the number of days in the waiting period before AWS KMS deletes an AWS KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. -- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `key_policy` (String) The key policy to attach to the KMS key. + If you provide a key policy, it must meet the following criteria: + + The key policy must allow the caller to make a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) in the *Developer Guide*. (To omit this condition, set ``BypassPolicyLockoutSafetyCheck`` to true.) + + Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see [ +- `key_spec` (String) Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*. + The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*. + If you change the value of the ``KeySpec`` property on an existing KMS key, the u +- `key_usage` (String) Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created. + If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. + Select only one valid value. + + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``. + + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. + + For asymmetric KMS keys with ECC key material, specify +- `multi_region` (Boolean) Creates a multi-Region primary key that you can replicate in other AWS-Regions. You can't change the ``MultiRegion`` value after the KMS key is created. + For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **. + If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. + For a multi-Region key, set to this property to ``true``. For a single-Region key, omit this property or set it to ``false``. The default value is ``false``. + *Multi-Region keys* are an KMS feature that lets you create multiple interoperable KMS keys in different AWS-Regions. Bec +- `origin` (String) The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS``, which means that KMS creates the key material. + To [create a KMS key with no key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html) (for imported key material), set this value to ``EXTERNAL``. For more information about importing key material into KMS, see [Importing Key Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in the *Developer Guide*. + You can ignore ``ENABLED`` when Origin is ``EXTERNAL``. When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false``. After you import the key material, ``ENABLED`` updated to ``true``. The KMS key can then be used for Cryptographic Operations. + CFN doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values. +- `pending_window_in_days` (Number) Specifies the number of days in the waiting period before KMS deletes a KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. + When you remove a KMS key from a CloudFormation stack, KMS schedules the KMS key for deletion and starts the mandatory waiting period. The ``PendingWindowInDays`` property determines the length of waiting period. During the waiting period, the key state of KMS key is ``Pending Deletion`` or ``Pending Replica Deletion``, which prevents the KMS key from being used in cryptographic operations. When the waiting period expires, KMS permanently deletes the KMS key. + KMS will not delete a [multi-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic ope +- `tags` (Attributes Set) Assigns one or more tags to the replica key. + Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*. + For information about tags in KMS, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) in the *Developer Guide*. For information about tags in CloudFormation, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/lambda_function.md b/docs/data-sources/lambda_function.md index dd8f443ecd..34ddff5f29 100644 --- a/docs/data-sources/lambda_function.md +++ b/docs/data-sources/lambda_function.md @@ -21,44 +21,49 @@ Data Source schema for AWS::Lambda::Function ### Read-Only -- `architectures` (List of String) -- `arn` (String) Unique identifier for function resources +- `architectures` (List of String) The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``. +- `arn` (String) - `code` (Attributes) The code for the function. (see [below for nested schema](#nestedatt--code)) -- `code_signing_config_arn` (String) A unique Arn for CodeSigningConfig resource -- `dead_letter_config` (Attributes) A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. (see [below for nested schema](#nestedatt--dead_letter_config)) +- `code_signing_config_arn` (String) To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function. +- `dead_letter_config` (Attributes) A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq). (see [below for nested schema](#nestedatt--dead_letter_config)) - `description` (String) A description of the function. - `environment` (Attributes) Environment variables that are accessible from function code during execution. (see [below for nested schema](#nestedatt--environment)) -- `ephemeral_storage` (Attributes) A function's ephemeral storage settings. (see [below for nested schema](#nestedatt--ephemeral_storage)) -- `file_system_configs` (Attributes List) Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an AWS::EFS::MountTarget resource, you must also specify a DependsOn attribute to ensure that the mount target is created or updated before the function. (see [below for nested schema](#nestedatt--file_system_configs)) -- `function_name` (String) The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. -- `handler` (String) The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime -- `image_config` (Attributes) ImageConfig (see [below for nested schema](#nestedatt--image_config)) -- `kms_key_arn` (String) The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key. -- `layers` (List of String) A list of function layers to add to the function's execution environment. Specify each layer by its ARN, including the version. -- `logging_config` (Attributes) The logging configuration of your function (see [below for nested schema](#nestedatt--logging_config)) -- `memory_size` (Number) The amount of memory that your function has access to. Increasing the function's memory also increases its CPU allocation. The default value is 128 MB. The value must be a multiple of 64 MB. -- `package_type` (String) PackageType. +- `ephemeral_storage` (Attributes) The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB. (see [below for nested schema](#nestedatt--ephemeral_storage)) +- `file_system_configs` (Attributes List) Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. + For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html). (see [below for nested schema](#nestedatt--file_system_configs)) +- `function_name` (String) The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `handler` (String) The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html). +- `image_config` (Attributes) Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms). (see [below for nested schema](#nestedatt--image_config)) +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key. +- `layers` (List of String) A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version. +- `logging_config` (Attributes) The function's Amazon CloudWatch Logs configuration settings. (see [below for nested schema](#nestedatt--logging_config)) +- `memory_size` (Number) The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. +- `package_type` (String) The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive. - `reserved_concurrent_executions` (Number) The number of simultaneous executions to reserve for the function. - `role` (String) The Amazon Resource Name (ARN) of the function's execution role. -- `runtime` (String) The identifier of the function's runtime. -- `runtime_management_config` (Attributes) RuntimeManagementConfig (see [below for nested schema](#nestedatt--runtime_management_config)) -- `snap_start` (Attributes) The SnapStart setting of your function (see [below for nested schema](#nestedatt--snap_start)) -- `snap_start_response` (Attributes) The SnapStart response of your function (see [below for nested schema](#nestedatt--snap_start_response)) -- `tags` (Attributes Set) A list of tags to apply to the function. (see [below for nested schema](#nestedatt--tags)) -- `timeout` (Number) The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. -- `tracing_config` (Attributes) Set Mode to Active to sample and trace a subset of incoming requests with AWS X-Ray. (see [below for nested schema](#nestedatt--tracing_config)) -- `vpc_config` (Attributes) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. (see [below for nested schema](#nestedatt--vpc_config)) +- `runtime` (String) The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. + The following list includes deprecated runtimes. For more information, see [Runtime deprecation policy](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy). +- `runtime_management_config` (Attributes) Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html). (see [below for nested schema](#nestedatt--runtime_management_config)) +- `snap_start` (Attributes) The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting. (see [below for nested schema](#nestedatt--snap_start)) +- `snap_start_response` (Attributes) The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting. (see [below for nested schema](#nestedatt--snap_start_response)) +- `tags` (Attributes Set) A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function. (see [below for nested schema](#nestedatt--tags)) +- `timeout` (Number) The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html). +- `tracing_config` (Attributes) Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html). (see [below for nested schema](#nestedatt--tracing_config)) +- `vpc_config` (Attributes) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html). (see [below for nested schema](#nestedatt--vpc_config)) ### Nested Schema for `code` Read-Only: -- `image_uri` (String) ImageUri. -- `s3_bucket` (String) An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. +- `image_uri` (String) URI of a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the Amazon ECR registry. +- `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. -- `zip_file` (String) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named index and zips it to create a deployment package.. +- `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. + For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. + If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs @@ -74,7 +79,7 @@ Read-Only: Read-Only: -- `variables` (Map of String) Environment variable key-value pairs. +- `variables` (Map of String) Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html). @@ -82,7 +87,7 @@ Read-Only: Read-Only: -- `size` (Number) The amount of ephemeral storage that your function has access to. +- `size` (Number) The size of the function's ``/tmp`` directory. @@ -91,7 +96,7 @@ Read-Only: Read-Only: - `arn` (String) The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system. -- `local_mount_path` (String) The path where the function can access the file system, starting with /mnt/. +- `local_mount_path` (String) The path where the function can access the file system, starting with ``/mnt/``. @@ -99,9 +104,9 @@ Read-Only: Read-Only: -- `command` (List of String) Command. -- `entry_point` (List of String) EntryPoint. -- `working_directory` (String) WorkingDirectory. +- `command` (List of String) Specifies parameters that you want to pass in with ENTRYPOINT. You can specify a maximum of 1,500 parameters in the list. +- `entry_point` (List of String) Specifies the entry point to their application, which is typically the location of the runtime executable. You can specify a maximum of 1,500 string entries in the list. +- `working_directory` (String) Specifies the working directory. The length of the directory string cannot exceed 1,000 characters. @@ -109,10 +114,10 @@ Read-Only: Read-Only: -- `application_log_level` (String) Application log granularity level, can only be used when LogFormat is set to JSON -- `log_format` (String) Log delivery format for the lambda function -- `log_group` (String) The log group name. -- `system_log_level` (String) System log granularity level, can only be used when LogFormat is set to JSON +- `application_log_level` (String) Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level of detail and lower, where ``TRACE`` is the highest level and ``FATAL`` is the lowest. +- `log_format` (String) The format in which Lambda sends your function's application and system logs to CloudWatch. Select between plain text and structured JSON. +- `log_group` (String) The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/``. To use a different log group, enter an existing log group or enter a new log group name. +- `system_log_level` (String) Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest. @@ -120,8 +125,12 @@ Read-Only: Read-Only: -- `runtime_version_arn` (String) Unique identifier for a runtime version arn -- `update_runtime_on` (String) Trigger for runtime update +- `runtime_version_arn` (String) The ARN of the runtime version you want the function to use. + This is only required if you're using the *Manual* runtime update mode. +- `update_runtime_on` (String) Specify the runtime update mode. + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incomp @@ -129,7 +138,7 @@ Read-Only: Read-Only: -- `apply_on` (String) Applying SnapStart setting on function resource type. +- `apply_on` (String) Set ``ApplyOn`` to ``PublishedVersions`` to create a snapshot of the initialized execution environment when you publish a function version. @@ -137,8 +146,8 @@ Read-Only: Read-Only: -- `apply_on` (String) Applying SnapStart setting on function resource type. -- `optimization_status` (String) Indicates whether SnapStart is activated for the specified function version. +- `apply_on` (String) When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version. +- `optimization_status` (String) When you provide a [qualified Amazon Resource Name (ARN)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using), this response element indicates whether SnapStart is activated for the specified function version. @@ -146,8 +155,8 @@ Read-Only: Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) +- `value` (String) @@ -163,6 +172,6 @@ Read-Only: Read-Only: -- `ipv_6_allowed_for_dual_stack` (Boolean) A boolean indicating whether IPv6 protocols will be allowed for dual stack subnets -- `security_group_ids` (List of String) A list of VPC security groups IDs. +- `ipv_6_allowed_for_dual_stack` (Boolean) Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets. +- `security_group_ids` (List of String) A list of VPC security group IDs. - `subnet_ids` (List of String) A list of VPC subnet IDs. diff --git a/docs/data-sources/lambda_permission.md b/docs/data-sources/lambda_permission.md index 7347f650ba..5afbdf29ec 100644 --- a/docs/data-sources/lambda_permission.md +++ b/docs/data-sources/lambda_permission.md @@ -21,11 +21,18 @@ Data Source schema for AWS::Lambda::Permission ### Read-Only -- `action` (String) The action that the principal can use on the function. -- `event_source_token` (String) For Alexa Smart Home functions, a token that must be supplied by the invoker. +- `action` (String) The action that the principal can use on the function. For example, ``lambda:InvokeFunction`` or ``lambda:GetFunction``. +- `event_source_token` (String) For Alexa Smart Home functions, a token that the invoker must supply. - `function_name` (String) The name of the Lambda function, version, or alias. -- `function_url_auth_type` (String) The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. -- `principal` (String) The AWS service or account that invokes the function. If you specify a service, use SourceArn or SourceAccount to limit who can invoke the function through that service. -- `principal_org_id` (String) The identifier for your organization in AWS Organizations. Use this to grant permissions to all the AWS accounts under this organization. -- `source_account` (String) For Amazon S3, the ID of the account that owns the resource. Use this together with SourceArn to ensure that the resource is owned by the specified account. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account. -- `source_arn` (String) For AWS services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic. + **Name formats** + + *Function name* ? ``my-function`` (name-only), ``my-function:v1`` (with alias). + + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:my-function``. + + *Partial ARN* ? ``123456789012:function:my-function``. + + You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length. +- `function_url_auth_type` (String) The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). +- `principal` (String) The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. +- `principal_org_id` (String) The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. +- `source_account` (String) For AWS-service, the ID of the AWS-account that owns the resource. Use this together with ``SourceArn`` to ensure that the specified account owns the resource. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account. +- `source_arn` (String) For AWS-services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic. + Note that Lambda configures the comparison using the ``StringLike`` operator. diff --git a/docs/data-sources/mediapackagev2_channel.md b/docs/data-sources/mediapackagev2_channel.md index 1a031e8352..c31fe47da6 100644 --- a/docs/data-sources/mediapackagev2_channel.md +++ b/docs/data-sources/mediapackagev2_channel.md @@ -21,13 +21,13 @@ Data Source schema for AWS::MediaPackageV2::Channel ### Read-Only -- `arn` (String) +- `arn` (String)

The Amazon Resource Name (ARN) associated with the resource.

- `channel_group_name` (String) - `channel_name` (String) -- `created_at` (String) -- `description` (String) -- `ingest_endpoints` (Attributes List) (see [below for nested schema](#nestedatt--ingest_endpoints)) -- `modified_at` (String) +- `created_at` (String)

The date and time the channel was created.

+- `description` (String)

Enter any descriptive text that helps you to identify the channel.

+- `ingest_endpoints` (Attributes List)

The list of ingest endpoints.

(see [below for nested schema](#nestedatt--ingest_endpoints)) +- `modified_at` (String)

The date and time the channel was modified.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) @@ -35,8 +35,8 @@ Data Source schema for AWS::MediaPackageV2::Channel Read-Only: -- `id` (String) -- `url` (String) +- `id` (String)

The system-generated unique identifier for the IngestEndpoint.

+- `url` (String)

The ingest domain URL where the source stream should be sent.

diff --git a/docs/data-sources/mediapackagev2_channel_group.md b/docs/data-sources/mediapackagev2_channel_group.md index 63924f15f6..d133f2e5f0 100644 --- a/docs/data-sources/mediapackagev2_channel_group.md +++ b/docs/data-sources/mediapackagev2_channel_group.md @@ -21,12 +21,12 @@ Data Source schema for AWS::MediaPackageV2::ChannelGroup ### Read-Only -- `arn` (String) +- `arn` (String)

The Amazon Resource Name (ARN) associated with the resource.

- `channel_group_name` (String) -- `created_at` (String) -- `description` (String) -- `egress_domain` (String) -- `modified_at` (String) +- `created_at` (String)

The date and time the channel group was created.

+- `description` (String)

Enter any descriptive text that helps you to identify the channel group.

+- `egress_domain` (String)

The output domain where the source stream should be sent. Integrate the domain with a downstream CDN (such as Amazon CloudFront) or playback device.

+- `modified_at` (String)

The date and time the channel group was modified.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/rds_db_instance.md b/docs/data-sources/rds_db_instance.md index e711d8bcac..6975c65e76 100644 --- a/docs/data-sources/rds_db_instance.md +++ b/docs/data-sources/rds_db_instance.md @@ -21,109 +21,416 @@ Data Source schema for AWS::RDS::DBInstance ### Read-Only -- `allocated_storage` (String) The amount of storage (in gigabytes) to be initially allocated for the database instance. +- `allocated_storage` (String) The amount of storage in gibibytes (GiB) to be initially allocated for the database instance. + If any value is set in the ``Iops`` parameter, ``AllocatedStorage`` must be at least 100 GiB, which corresponds to the minimum Iops value of 1,000. If you increase the ``Iops`` value (in 1,000 IOPS increments), then you must also increase the ``AllocatedStorage`` value (in 100-GiB increments). + *Amazon Aurora* + Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. + *Db2* + Constraints to the amount of storage for each storage type are the following: + + General Purpose (SSD) storage (gp3): Must be an integer from 20 to 64000. + + Provisioned IOPS storage (io1): Must be an integer from 100 to 64000. + + *MySQL* + Constraints to the amount of storage for each storage type are the following: + + General Purpose (SSD) storage (gp2): Must be an integer fro - `allow_major_version_upgrade` (Boolean) A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. -- `associated_roles` (Attributes List) The AWS Identity and Access Management (IAM) roles associated with the DB instance. (see [below for nested schema](#nestedatt--associated_roles)) + Constraints: Major version upgrades must be allowed when specifying a value for the ``EngineVersion`` parameter that is a different major version than the DB instance's current version. +- `associated_roles` (Attributes List) The IAMlong (IAM) roles associated with the DB instance. + *Amazon Aurora* + Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. -- `automatic_backup_replication_region` (String) Enables replication of automated backups to a different Amazon Web Services Region. -- `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones. +- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). + For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. + Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. + Constraints: + + The ``AvailabilityZone`` parameter can't be specified if the DB instance is a Multi-AZ deployment. + + The specified Availability Zone must be in the same AWS-Region as the current endpoint. + + Example: ``us-east-1d`` - `backup_retention_period` (Number) The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. + *Amazon Aurora* + Not applicable. The retention period for automated backups is managed by the DB cluster. + Default: 1 + Constraints: + + Must be a value from 0 to 35 + + Can't be set to 0 if the DB instance is a source to read replicas - `ca_certificate_identifier` (String) The identifier of the CA certificate for this DB instance. -- `certificate_details` (Attributes) Returns the details of the DB instance's server certificate. (see [below for nested schema](#nestedatt--certificate_details)) -- `certificate_rotation_restart` (Boolean) A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate. -By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. -If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate -This setting doesn't apply to RDS Custom. + Specifying or updating this property triggers a reboot. For more information about CA certificate identifiers for RDS DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide*. For more information about CA certificate identifiers for Aurora DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Guide*. +- `certificate_details` (Attributes) The details of the DB instance's server certificate. (see [below for nested schema](#nestedatt--certificate_details)) +- `certificate_rotation_restart` (Boolean) Specifies whether the DB instance is restarted when you rotate your SSL/TLS certificate. + By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. + Set this parameter only if you are *not* using SSL/TLS to connect to the DB instance. + If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate: + + For more information about rotating your SSL/TLS certificate for RDS DB engines, see [Rotating Your SSL/TLS Certificate.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide.* + + For more information about rotating your SSL/TLS certificate for Aurora DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Gui - `character_set_name` (String) For supported engines, indicates that the DB instance should be associated with the specified character set. -- `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. -- `custom_iam_instance_profile` (String) The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements: - * The profile must exist in your account. - * The profile must have an IAM role that Amazon EC2 has permissions to assume. - * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom . -For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide . - -This setting is required for RDS Custom. + *Amazon Aurora* + Not applicable. The character set is managed by the DB cluster. For more information, see [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html). +- `copy_tags_to_snapshot` (Boolean) Specifies whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. + This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. +- `custom_iam_instance_profile` (String) The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. + This setting is required for RDS Custom. + Constraints: + + The profile must exist in your account. + + The profile must have an IAM role that Amazon EC2 has permissions to assume. + + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``. + + For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*. - `db_cluster_identifier` (String) The identifier of the DB cluster that the instance will belong to. -- `db_cluster_snapshot_identifier` (String) The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide . - -Constraints: - * Must match the identifier of an existing Multi-AZ DB cluster snapshot. - * Can't be specified when DBSnapshotIdentifier is specified. - * Must be specified when DBSnapshotIdentifier isn't specified. - * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot. - * Can't be the identifier of an Aurora DB cluster snapshot. - * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot. -- `db_instance_arn` (String) The Amazon Resource Name (ARN) for the DB instance. -- `db_instance_class` (String) The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. -- `db_instance_identifier` (String) A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance. +- `db_cluster_snapshot_identifier` (String) The identifier for the Multi-AZ DB cluster snapshot to restore from. + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) in the *Amazon RDS User Guide*. + Constraints: + + Must match the identifier of an existing Multi-AZ DB cluster snapshot. + + Can't be specified when ``DBSnapshotIdentifier`` is specified. + + Must be specified when ``DBSnapshotIdentifier`` isn't specified. + + If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the ``DBClusterSnapshotIdentifier`` must be the ARN of the shared snapshot. + + Can't be the identifier of an Aurora DB cluster snapshot. +- `db_instance_arn` (String) +- `db_instance_class` (String) The compute and memory capacity of the DB instance, for example, ``db.m4.large``. Not all DB instance classes are available in all AWS Regions, or for all database engines. + For the full list of DB instance classes, and availability for your engine, see [DB Instance Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the *Amazon RDS User Guide.* For more information about DB instance class pricing and AWS Region support for DB instance classes, see [Amazon RDS Pricing](https://docs.aws.amazon.com/rds/pricing/). +- `db_instance_identifier` (String) A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + For information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*. + If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. - `db_name` (String) The meaning of this parameter differs according to the database engine you use. -- `db_parameter_group_name` (String) The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template. + If you specify the ``DBSnapshotIdentifier`` property, this property only applies to RDS for Oracle. + *Amazon Aurora* + Not applicable. The database name is managed by the DB cluster. + *Db2* + The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance. + Constraints: + + Must contain 1 to 64 letters or numbers. + + Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9). + + Can't be a word reserved by the specified database engine. + + *MySQL* + The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. + Constraints: + + Must contain 1 to 64 letters or numbers. + + Can't be a word reserved by the specified database engine + + *MariaDB* + The name of the database to create when the DB instance is +- `db_parameter_group_name` (String) The name of an existing DB parameter group or a reference to an [AWS::RDS::DBParameterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html) resource created in the template. + To list all of the available DB parameter group names, use the following command: + ``aws rds describe-db-parameter-groups --query "DBParameterGroups[].DBParameterGroupName" --output text`` + If any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot. + If you don't specify a value for ``DBParameterGroupName`` property, the default DB parameter group for the specified engine and engine version is used. - `db_security_groups` (List of String) A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template. + If you set DBSecurityGroups, you must not set VPCSecurityGroups, and vice versa. Also, note that the DBSecurityGroups property exists only for backwards compatibility with older regions and is no longer recommended for providing security information to an RDS DB instance. Instead, use VPCSecurityGroups. + If you specify this property, AWS CloudFormation sends only the following properties (if specified) to Amazon RDS during create operations: + + ``AllocatedStorage`` + + ``AutoMinorVersionUpgrade`` + + ``AvailabilityZone`` + + ``BackupRetentionPeriod`` + + ``CharacterSetName`` + + ``DBInstanceClass`` + + ``DBName`` + + ``DBParameterGroupName`` + + ``DBSecurityGroups`` + + ``DBSubnetGroupName`` + + ``Engine`` + + ``EngineVersion`` + + ``Iops`` + + ``LicenseModel`` + + - `db_snapshot_identifier` (String) The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot. -- `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. -- `db_system_id` (String) The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only. -- `dbi_resource_id` (String) The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed. + By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack. + Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazo +- `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. + If there's no DB subnet group, then the DB instance isn't a VPC DB instance. + For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. +- `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. +- `dbi_resource_id` (String) - `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. -- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. -- `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. + *Amazon Aurora* + Not applicable. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the DB cluster are not deleted. +- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + *Amazon Aurora* + Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. +- `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. + For more information, see [Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*. - `domain_auth_secret_arn` (String) The ARN for the Secrets Manager secret with the credentials for the user joining the domain. + Example: ``arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456`` - `domain_dns_ips` (List of String) The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. + Constraints: + + Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. + + Example: ``123.124.125.126,234.235.236.237`` - `domain_fqdn` (String) The fully qualified domain name (FQDN) of an Active Directory domain. -- `domain_iam_role_name` (String) Specify the name of the IAM role to be used when making API calls to the Directory Service. + Constraints: + + Can't be longer than 64 characters. + + Example: ``mymanagedADtest.mymanagedAD.mydomain`` +- `domain_iam_role_name` (String) The name of the IAM role to use when making API calls to the Directory Service. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (The domain is managed by the DB cluster.) + + RDS Custom - `domain_ou` (String) The Active Directory organizational unit for your DB instance to join. -- `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. + Constraints: + + Must be in the distinguished name format. + + Can't be longer than 64 characters. + + Example: ``OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain`` +- `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see [Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Relational Database Service User Guide*. + *Amazon Aurora* + Not applicable. CloudWatch Logs exports are managed by the DB cluster. + *Db2* + Valid values: ``diag.log``, ``notify.log`` + *MariaDB* + Valid values: ``audit``, ``error``, ``general``, ``slowquery`` + *Microsoft SQL Server* + Valid values: ``agent``, ``error`` + *MySQL* + Valid values: ``audit``, ``error``, ``general``, ``slowquery`` + *Oracle* + Valid values: ``alert``, ``audit``, ``listener``, ``trace``, ``oemagent`` + *PostgreSQL* + Valid values: ``postgresql``, ``upgrade`` - `enable_iam_database_authentication` (Boolean) A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. -- `enable_performance_insights` (Boolean) A value that indicates whether to enable Performance Insights for the DB instance. -- `endpoint` (Attributes) Specifies the connection endpoint. (see [below for nested schema](#nestedatt--endpoint)) + This property is supported for RDS for MariaDB, RDS for MySQL, and RDS for PostgreSQL. For more information, see [IAM Database Authentication for MariaDB, MySQL, and PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon RDS User Guide.* + *Amazon Aurora* + Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. +- `enable_performance_insights` (Boolean) Specifies whether to enable Performance Insights for the DB instance. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*. + This setting doesn't apply to RDS Custom DB instances. +- `endpoint` (Attributes) The connection endpoint for the DB instance. + The endpoint might not be shown for instances with the status of ``creating``. (see [below for nested schema](#nestedatt--endpoint)) - `engine` (String) The name of the database engine that you want to use for this DB instance. + Not every database engine is available in every AWS Region. + When you are creating a DB instance, the ``Engine`` property is required. + Valid Values: + + ``aurora-mysql`` (for Aurora MySQL DB instances) + + ``aurora-postgresql`` (for Aurora PostgreSQL DB instances) + + ``custom-oracle-ee`` (for RDS Custom for Oracle DB instances) + + ``custom-oracle-ee-cdb`` (for RDS Custom for Oracle DB instances) + + ``custom-sqlserver-ee`` (for RDS Custom for SQL Server DB instances) + + ``custom-sqlserver-se`` (for RDS Custom for SQL Server DB instances) + + ``custom-sqlserver-web`` (for RDS Custom for SQL Server DB instances) + + ``db2-ae`` + + ``db2-se`` + + ``mariadb`` + + ``mysql`` + + ``oracle-ee`` + + ``oracle-ee-cdb`` + + ``oracle-se2`` + + ``oracle-se2-cdb`` + + ``postgres`` + + ``sqlserver-ee`` + + ``sqlserver-se`` + + ``sqlserver-ex`` + + ``sqlserver-web`` - `engine_version` (String) The version number of the database engine to use. -- `iops` (Number) The number of I/O operations per second (IOPS) that the database provisions. -- `kms_key_id` (String) The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance. + For a list of valid engine versions, use the ``DescribeDBEngineVersions`` action. + The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region. + *Amazon Aurora* + Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. + *Db2* + See [Amazon RDS for Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Db2.html#Db2.Concepts.VersionMgmt) in the *Amazon RDS User Guide.* + *MariaDB* + See [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide.* + *Microsoft SQL Server* + See [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSu +- `iops` (Number) The number of I/O operations per second (IOPS) that the database provisions. The value must be equal to or greater than 1000. + If you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate (IOPS to allocated storage). For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage (a ratio of 5:1), or specify 2000 IOPS with 200 GiB of storage (a ratio of 10:1). For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*. + If you specify ``io1`` for the ``StorageType`` property, then you must also specify the ``Iops`` property. + Constraints: + + For RDS for Db2, MariaDB, MySQL, Oracle, and PostgreSQL - Must be a multiple between .5 and 50 of the storage amount for the DB instance. + + For RDS for SQL Server - Must be a multip +- `kms_key_id` (String) The ARN of the AWS KMS key that's used to encrypt the DB instance, such as ``arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef``. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key. If you specify this property, you must set the StorageEncrypted property to true. + If you specify the ``SourceDBInstanceIdentifier`` property, the value is inherited from the source DB instance if the read replica is created in the same region. + If you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region. + If you specify the ``SnapshotIdentifier`` property, the ``StorageEncrypted`` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified ``KmsKeyId`` property is us - `license_model` (String) License model information for this DB instance. -- `manage_master_user_password` (Boolean) A value that indicates whether to manage the master user password with AWS Secrets Manager. -- `master_user_password` (String) The password for the master user. -- `master_user_secret` (Attributes) Contains the secret managed by RDS in AWS Secrets Manager for the master user password. (see [below for nested schema](#nestedatt--master_user_secret)) + Valid Values: + + Aurora MySQL - ``general-public-license`` + + Aurora PostgreSQL - ``postgresql-license`` + + RDS for Db2 - ``bring-your-own-license``. For more information about RDS for Db2 licensing, see [](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) in the *Amazon RDS User Guide.* + + RDS for MariaDB - ``general-public-license`` + + RDS for Microsoft SQL Server - ``license-included`` + + RDS for MySQL - ``general-public-license`` + + RDS for Oracle - ``bring-your-own-license`` or ``license-included`` + + RDS for PostgreSQL - ``postgresql-license`` + + If you've specified ``DBSecurityGroups`` and then you update the license model, AWS CloudFormation replaces the underlying DB instance. This will incur some interruptions to database availability. +- `manage_master_user_password` (Boolean) Specifies whether to manage the master user password with AWS Secrets Manager. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide.* + Constraints: + + Can't manage the master user password with AWS Secrets Manager if ``MasterUserPassword`` is specified. +- `master_user_password` (String) The password for the master user. The password can include any printable ASCII character except "/", """, or "@". + *Amazon Aurora* + Not applicable. The password for the master user is managed by the DB cluster. + *RDS for Db2* + Must contain from 8 to 255 characters. + *RDS for MariaDB* + Constraints: Must contain from 8 to 41 characters. + *RDS for Microsoft SQL Server* + Constraints: Must contain from 8 to 128 characters. + *RDS for MySQL* + Constraints: Must contain from 8 to 41 characters. + *RDS for Oracle* + Constraints: Must contain from 8 to 30 characters. + *RDS for PostgreSQL* + Constraints: Must contain from 8 to 128 characters. +- `master_user_secret` (Attributes) The secret managed by RDS in AWS Secrets Manager for the master user password. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) - `master_username` (String) The master user name for the DB instance. -- `max_allocated_storage` (Number) The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. -- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. -- `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. -- `multi_az` (Boolean) Specifies whether the database instance is a multiple Availability Zone deployment. -- `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom. -- `network_type` (String) The network type of the DB cluster. + If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot. + When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name. + *Amazon Aurora* + Not applicable. The name for the master user is managed by the DB cluster. + *RDS for Db2* + Constraints: + + Must be 1 to 16 letters or numbers. + + First character must be a letter. + + Can't be a reserved word for the chosen database engine. + + *RDS for MariaDB* + Constraints: + + Must be 1 to 16 letters or numbers. + + Can't be a reserved word for the chosen database engine. + + *RDS for Microsoft SQL Server* + Constraints: + + Must be 1 to 128 letters or numbers. + + First character must be a letter. + + Can't be a reserved word for the chosen database engine. + + *RDS for MySQL* + Constrain +- `max_allocated_storage` (Number) The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance. + For more information about this setting, including limitations that apply to it, see [Managing capacity automatically with Amazon RDS storage autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) in the *Amazon RDS User Guide*. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (Storage is managed by the DB cluster.) + + RDS Custom +- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. + If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0. + This setting doesn't apply to RDS Custom. + Valid Values: ``0, 1, 5, 10, 15, 30, 60`` +- `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. + If ``MonitoringInterval`` is set to a value other than ``0``, then you must supply a ``MonitoringRoleArn`` value. + This setting doesn't apply to RDS Custom DB instances. +- `multi_az` (Boolean) Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. + For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set. +- `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. + This setting doesn't apply to RDS Custom DB instances. +- `network_type` (String) The network type of the DB instance. + Valid values: + + ``IPV4`` + + ``DUAL`` + + The network type is determined by the ``DBSubnetGroup`` specified for the DB instance. A ``DBSubnetGroup`` can support only the IPv4 protocol or the IPv4 and IPv6 protocols (``DUAL``). + For more information, see [Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) in the *Amazon RDS User Guide.* - `option_group_name` (String) Indicates that the DB instance should be associated with the specified option group. -- `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. -- `performance_insights_retention_period` (Number) The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). + Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance once it is associated with a DB instance. +- `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. + The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. + If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region. + For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights). +- `performance_insights_retention_period` (Number) The number of days to retain Performance Insights data. + This setting doesn't apply to RDS Custom DB instances. + Valid Values: + + ``7`` + + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31) + + ``731`` + + Default: ``7`` days + If you specify a retention period that isn't valid, such as ``94``, Amazon RDS returns an error. - `port` (String) The port number on which the database accepts connections. -- `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. -- `preferred_maintenance_window` (String) he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). -- `processor_features` (Attributes List) The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. (see [below for nested schema](#nestedatt--processor_features)) -- `promotion_tier` (Number) A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. -- `publicly_accessible` (Boolean) Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address. -- `replica_mode` (String) The open mode of an Oracle read replica. The default is open-read-only. + *Amazon Aurora* + Not applicable. The port number is managed by the DB cluster. + *Db2* + Default value: ``50000`` +- `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the ``BackupRetentionPeriod`` parameter. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide.* + Constraints: + + Must be in the format ``hh24:mi-hh24:mi``. + + Must be in Universal Coordinated Time (UTC). + + Must not conflict with the preferred maintenance window. + + Must be at least 30 minutes. + + *Amazon Aurora* + Not applicable. The daily time range for creating automated backups is managed by the DB cluster. +- `preferred_maintenance_window` (String) The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). + Format: ``ddd:hh24:mi-ddd:hh24:mi`` + The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see [Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide.* + This property applies when AWS CloudFormation initially creates the DB instance. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately. + Constraints: Minimum 30-minute window. +- `processor_features` (Attributes List) The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. (see [below for nested schema](#nestedatt--processor_features)) +- `promotion_tier` (Number) The order of priority in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see [Fault Tolerance for an Aurora DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Aurora.Managing.FaultTolerance) in the *Amazon Aurora User Guide*. + This setting doesn't apply to RDS Custom DB instances. + Default: ``1`` + Valid Values: ``0 - 15`` +- `publicly_accessible` (Boolean) Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address. + The default behavior value depends on your VPC setup and the database subnet group. For more information, see the ``PubliclyAccessible`` parameter in the [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) in the *Amazon RDS API Reference*. +- `replica_mode` (String) The open mode of an Oracle read replica. For more information, see [Working with Oracle Read Replicas for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) in the *Amazon RDS User Guide*. + This setting is only supported in RDS for Oracle. + Default: ``open-read-only`` + Valid Values: ``open-read-only`` or ``mounted`` - `restore_time` (String) The date and time to restore from. + Constraints: + + Must be a time in Universal Coordinated Time (UTC) format. + + Must be before the latest restorable time for the DB instance. + + Can't be specified if the ``UseLatestRestorableTime`` parameter is enabled. + + Example: ``2009-09-07T23:45:00Z`` - `source_db_cluster_identifier` (String) The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas. -- `source_db_instance_automated_backups_arn` (String) The Amazon Resource Name (ARN) of the replicated automated backups from which to restore. -- `source_db_instance_identifier` (String) If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas. + Constraints: + + Must be the identifier of an existing Multi-AZ DB cluster. + + Can't be specified if the ``SourceDBInstanceIdentifier`` parameter is also specified. + + The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be greater than 0. + + The source DB cluster must be in the same AWS-Region as the read replica. Cross-Region replication isn't supported. +- `source_db_instance_automated_backups_arn` (String) The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, ``arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE``. + This setting doesn't apply to RDS Custom. +- `source_db_instance_identifier` (String) If you want to create a read replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of read replicas. For more information, see [Working with Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/USER_ReadRepl.html) in the *Amazon RDS User Guide*. + For information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*. + The ``SourceDBInstanceIdentifier`` property determines whether a DB instance is a read replica. If you remove the ``SourceDBInstanceIdentifier`` property from your template and then update your stack, AWS CloudFormation promotes the Read Replica to a standalone DB instance. + + If you specify a source DB instance that uses VPC security groups, we recommend that you specify the ``VPCSecurityGroups`` property. If you don't specify the - `source_dbi_resource_id` (String) The resource ID of the source DB instance from which to restore. -- `source_region` (String) The ID of the region that contains the source DB instance for the Read Replica. +- `source_region` (String) The ID of the region that contains the source DB instance for the read replica. - `storage_encrypted` (Boolean) A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted. -- `storage_throughput` (Number) Specifies the storage throughput for the DB instance. + If you specify the ``KmsKeyId`` property, then you must enable encryption. + If you specify the ``SourceDBInstanceIdentifier`` property, don't specify this property. The value is inherited from the source DB instance, and if the DB instance is encrypted, the specified ``KmsKeyId`` property is used. + If you specify the ``DBSnapshotIdentifier`` and the specified snapshot is encrypted, don't specify this property. The value is inherited from the snapshot, and the specified ``KmsKeyId`` property is used. + If you specify the ``DBSnapshotIdentifier`` and the specified snapshot isn't encrypted, you can use this property to specify that the restored DB instance is encrypted. Specify the ``KmsKeyId`` property for the KMS key to use for encryption. If you don't want the restored DB instance to be encrypted, then don't set this property or set it to ``false``. + *Amazon Aurora* + Not applicable. The encrypt +- `storage_throughput` (Number) Specifies the storage throughput value for the DB instance. This setting applies only to the ``gp3`` storage type. + This setting doesn't apply to RDS Custom or Amazon Aurora. - `storage_type` (String) Specifies the storage type to be associated with the DB instance. -- `tags` (Attributes List) Tags to assign to the DB instance. (see [below for nested schema](#nestedatt--tags)) -- `tde_credential_arn` (String) The ARN from the key store with which to associate the instance for TDE encryption. -- `tde_credential_password` (String) The password for the given ARN from the key store in order to access the device. -- `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server. -- `use_default_processor_features` (Boolean) A value that indicates whether the DB instance class of the DB instance uses its default processor features. -- `use_latest_restorable_time` (Boolean) A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time. -- `vpc_security_groups` (List of String) A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template. + Valid values: ``gp2 | gp3 | io1 | standard`` + The ``standard`` value is also known as magnetic. + If you specify ``io1`` or ``gp3``, you must also include a value for the ``Iops`` parameter. + Default: ``io1`` if the ``Iops`` parameter is specified, otherwise ``gp2`` + For more information, see [Amazon RDS DB Instance Storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. Aurora data is stored in the cluster volume, which is a single, virtual volume that uses solid state drives (SSDs). +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `tde_credential_arn` (String) +- `tde_credential_password` (String) +- `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by [Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone). +- `use_default_processor_features` (Boolean) Specifies whether the DB instance class of the DB instance uses its default processor features. + This setting doesn't apply to RDS Custom DB instances. +- `use_latest_restorable_time` (Boolean) Specifies whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time. + Constraints: + + Can't be specified if the ``RestoreTime`` parameter is provided. +- `vpc_security_groups` (List of String) A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template. + If you plan to update the resource, don't specify VPC security groups in a shared VPC. + If you set ``VPCSecurityGroups``, you must not set [DBSecurityGroups](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups), and vice versa. + You can migrate a DB instance in your stack from an RDS DB security group to a VPC security group, but keep the following in mind: + + You can't revert to using an RDS security group after you establish a VPC security group membership. + + When you migrate your DB instance to VPC security groups, if your stack update rolls back because the DB instanc ### Nested Schema for `associated_roles` Read-Only: -- `feature_name` (String) The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf. +- `feature_name` (String) The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf. For the list of supported feature names, see the ``SupportedFeatureNames`` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*. - `role_arn` (String) The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance. @@ -133,7 +440,7 @@ Read-Only: Read-Only: - `ca_identifier` (String) The CA identifier of the CA certificate used for the DB instance's server certificate. -- `valid_till` (String) The expiration date of the DB instance’s server certificate. +- `valid_till` (String) The expiration date of the DB instance?s server certificate. @@ -160,7 +467,7 @@ Read-Only: Read-Only: -- `name` (String) The name of the processor feature. Valid names are coreCount and threadsPerCore. +- `name` (String) The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``. - `value` (String) The value of a processor feature name. @@ -169,5 +476,5 @@ Read-Only: Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). diff --git a/docs/data-sources/rds_db_parameter_group.md b/docs/data-sources/rds_db_parameter_group.md index 12097113e9..7da6bb3c16 100644 --- a/docs/data-sources/rds_db_parameter_group.md +++ b/docs/data-sources/rds_db_parameter_group.md @@ -21,16 +21,33 @@ Data Source schema for AWS::RDS::DBParameterGroup ### Read-Only -- `db_parameter_group_name` (String) Specifies the name of the DB parameter group +- `db_parameter_group_name` (String) The name of the DB parameter group. + Constraints: + + Must be 1 to 255 letters, numbers, or hyphens. + + First character must be a letter + + Can't end with a hyphen or contain two consecutive hyphens + + If you don't specify a value for ``DBParameterGroupName`` property, a name is automatically created for the DB parameter group. + This value is stored as a lowercase string. - `description` (String) Provides the customer-specified description for this DB parameter group. -- `family` (String) The DB parameter group family name. -- `parameters` (String) An array of parameter names and values for the parameter update. -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family. + The DB parameter group family can't be changed when updating a DB parameter group. + To list all of the available parameter group families, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` + The output contains duplicates. + For more information, see ``CreateDBParameterGroup``. +- `parameters` (String) An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional. + RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance. + For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*. + For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. + AWS CloudFormation doesn't support specifying an apply method for each individual +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB parameter group. + Currently, this is the only property that supports drift detection. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). diff --git a/docs/data-sources/rds_db_subnet_group.md b/docs/data-sources/rds_db_subnet_group.md index 93b0f29b0b..61e2a1f698 100644 --- a/docs/data-sources/rds_db_subnet_group.md +++ b/docs/data-sources/rds_db_subnet_group.md @@ -21,15 +21,17 @@ Data Source schema for AWS::RDS::DBSubnetGroup ### Read-Only -- `db_subnet_group_description` (String) -- `db_subnet_group_name` (String) -- `subnet_ids` (List of String) -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `db_subnet_group_description` (String) The description for the DB subnet group. +- `db_subnet_group_name` (String) The name for the DB subnet group. This value is stored as a lowercase string. + Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be "Default". + Example: ``mysubnetgroup`` +- `subnet_ids` (List of String) The EC2 Subnet IDs for the DB subnet group. +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB subnet group. (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` Read-Only: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). diff --git a/docs/data-sources/s3_bucket.md b/docs/data-sources/s3_bucket.md index fbe4adb283..519f51e836 100644 --- a/docs/data-sources/s3_bucket.md +++ b/docs/data-sources/s3_bucket.md @@ -21,30 +21,39 @@ Data Source schema for AWS::S3::Bucket ### Read-Only -- `accelerate_configuration` (Attributes) Configuration for the transfer acceleration state. (see [below for nested schema](#nestedatt--accelerate_configuration)) -- `access_control` (String) A canned access control list (ACL) that grants predefined permissions to the bucket. -- `analytics_configurations` (Attributes List) The configuration and any analyses for the analytics filter of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations)) +- `accelerate_configuration` (Attributes) Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--accelerate_configuration)) +- `access_control` (String) This is a legacy property, and it is not recommended for most use cases. A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we recommend that you keep ACLs disabled. For more information, see [Controlling object ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*. + A canned access control list (ACL) that grants predefined permissions to the bucket. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*. + S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set the [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) property to enable ACLs, your resource will fail to deploy with any value other than Private. Use cases requiring ACLs are uncommon. + The majority of access control configurations can be successfully and more easily achieved with bucket policies. For more information, see [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html). For examples of common policy configurations, including S3 Server Access Logs buckets and more, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in the *Amazon S3 User Guide*. +- `analytics_configurations` (Attributes List) Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations)) - `arn` (String) The Amazon Resource Name (ARN) of the specified bucket. -- `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). (see [below for nested schema](#nestedatt--bucket_encryption)) -- `bucket_name` (String) A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. -- `cors_configuration` (Attributes) Rules that define cross-origin resource sharing of objects in this bucket. (see [below for nested schema](#nestedatt--cors_configuration)) +- `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--bucket_encryption)) +- `bucket_name` (String) A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html). For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*. + If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name. +- `cors_configuration` (Attributes) Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--cors_configuration)) - `domain_name` (String) The IPv4 DNS name of the specified bucket. - `dual_stack_domain_name` (String) The IPv6 DNS name of the specified bucket. For more information about dual-stack endpoints, see [Using Amazon S3 Dual-Stack Endpoints](https://docs.aws.amazon.com/AmazonS3/latest/dev/dual-stack-endpoints.html). -- `intelligent_tiering_configurations` (Attributes List) Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations)) -- `inventory_configurations` (Attributes List) The inventory configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--inventory_configurations)) -- `lifecycle_configuration` (Attributes) Rules that define how Amazon S3 manages objects during their lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration)) +- `intelligent_tiering_configurations` (Attributes List) Defines how Amazon S3 handles Intelligent-Tiering storage. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations)) +- `inventory_configurations` (Attributes List) Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*. (see [below for nested schema](#nestedatt--inventory_configurations)) +- `lifecycle_configuration` (Attributes) Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--lifecycle_configuration)) - `logging_configuration` (Attributes) Settings that define where logs are stored. (see [below for nested schema](#nestedatt--logging_configuration)) -- `metrics_configurations` (Attributes List) Settings that define a metrics configuration for the CloudWatch request metrics from the bucket. (see [below for nested schema](#nestedatt--metrics_configurations)) +- `metrics_configurations` (Attributes List) Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html). (see [below for nested schema](#nestedatt--metrics_configurations)) - `notification_configuration` (Attributes) Configuration that defines how Amazon S3 handles bucket notifications. (see [below for nested schema](#nestedatt--notification_configuration)) -- `object_lock_configuration` (Attributes) Places an Object Lock configuration on the specified bucket. (see [below for nested schema](#nestedatt--object_lock_configuration)) -- `object_lock_enabled` (Boolean) Indicates whether this bucket has an Object Lock configuration enabled. -- `ownership_controls` (Attributes) Specifies the container element for object ownership rules. (see [below for nested schema](#nestedatt--ownership_controls)) +- `object_lock_configuration` (Attributes) This operation is not supported by directory buckets. + Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + The ``DefaultRetention`` settings require both a mode and a period. + + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. + + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html). (see [below for nested schema](#nestedatt--object_lock_configuration)) +- `object_lock_enabled` (Boolean) Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket. +- `ownership_controls` (Attributes) Configuration that defines how Amazon S3 handles Object Ownership rules. (see [below for nested schema](#nestedatt--ownership_controls)) - `public_access_block_configuration` (Attributes) Configuration that defines how Amazon S3 handles public access. (see [below for nested schema](#nestedatt--public_access_block_configuration)) - `regional_domain_name` (String) Returns the regional domain name of the specified bucket. -- `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. (see [below for nested schema](#nestedatt--replication_configuration)) +- `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property. + Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist. (see [below for nested schema](#nestedatt--replication_configuration)) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this S3 bucket. (see [below for nested schema](#nestedatt--tags)) -- `versioning_configuration` (Attributes) Describes the versioning state of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--versioning_configuration)) -- `website_configuration` (Attributes) Specifies website configuration parameters for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--website_configuration)) +- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. (see [below for nested schema](#nestedatt--versioning_configuration)) +- `website_configuration` (Attributes) Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). (see [below for nested schema](#nestedatt--website_configuration)) - `website_url` (String) The Amazon S3 website endpoint for the specified bucket. @@ -52,7 +61,7 @@ Data Source schema for AWS::S3::Bucket Read-Only: -- `acceleration_status` (String) Configures the transfer acceleration state for an Amazon S3 bucket. +- `acceleration_status` (String) Specifies the transfer acceleration status of the bucket. @@ -62,8 +71,9 @@ Read-Only: - `id` (String) The ID that identifies the analytics configuration. - `prefix` (String) The prefix that an object must have to be included in the analytics results. -- `storage_class_analysis` (Attributes) Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis)) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--analytics_configurations--tag_filters)) +- `storage_class_analysis` (Attributes) Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis)) +- `tag_filters` (Attributes List) The tags to use when evaluating an analytics filter. + The analytics only includes objects that meet the filter's criteria. If no filter is specified, all of the contents of the bucket are included in the analysis. (see [below for nested schema](#nestedatt--analytics_configurations--tag_filters)) ### Nested Schema for `analytics_configurations.storage_class_analysis` @@ -77,17 +87,19 @@ Read-Only: Read-Only: -- `destination` (Attributes) Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis--data_export--destination)) -- `output_schema_version` (String) The version of the output schema to use when exporting data. +- `destination` (Attributes) The place to store the data for an analysis. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis--data_export--destination)) +- `output_schema_version` (String) The version of the output schema to use when exporting data. Must be ``V_1``. ### Nested Schema for `analytics_configurations.storage_class_analysis.data_export.output_schema_version` Read-Only: -- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. +- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data. + Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes. - `bucket_arn` (String) The Amazon Resource Name (ARN) of the bucket to which data is exported. - `format` (String) Specifies the file format used when exporting data to Amazon S3. + *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet`` - `prefix` (String) The prefix to use when exporting data. The prefix is prepended to all results. @@ -98,8 +110,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -115,7 +127,8 @@ Read-Only: Read-Only: -- `bucket_key_enabled` (Boolean) Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. +- `bucket_key_enabled` (Boolean) Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. + For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*. - `server_side_encryption_by_default` (Attributes) Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. (see [below for nested schema](#nestedatt--bucket_encryption--server_side_encryption_configuration--server_side_encryption_by_default)) @@ -123,8 +136,16 @@ Read-Only: Read-Only: -- `kms_master_key_id` (String) "KMSMasterKeyID" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse. -- `sse_algorithm` (String) +- `kms_master_key_id` (String) AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``. + You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key. + + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key Alias: ``alias/alias-name`` + + If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. + If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). + Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*. +- `sse_algorithm` (String) Server-side encryption algorithm to use for the default encryption. @@ -134,18 +155,19 @@ Read-Only: Read-Only: -- `cors_rules` (Attributes List) (see [below for nested schema](#nestedatt--cors_configuration--cors_rules)) +- `cors_rules` (Attributes List) A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration. (see [below for nested schema](#nestedatt--cors_configuration--cors_rules)) ### Nested Schema for `cors_configuration.cors_rules` Read-Only: -- `allowed_headers` (List of String) Headers that are specified in the Access-Control-Request-Headers header. -- `allowed_methods` (List of String) An HTTP method that you allow the origin to execute. +- `allowed_headers` (List of String) Headers that are specified in the ``Access-Control-Request-Headers`` header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed. +- `allowed_methods` (List of String) An HTTP method that you allow the origin to run. + *Allowed values*: ``GET`` | ``PUT`` | ``HEAD`` | ``POST`` | ``DELETE`` - `allowed_origins` (List of String) One or more origins you want customers to be able to access the bucket from. -- `exposed_headers` (List of String) One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object). -- `id` (String) A unique identifier for this rule. +- `exposed_headers` (List of String) One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript ``XMLHttpRequest`` object). +- `id` (String) A unique identifier for this rule. The value must be no more than 255 characters. - `max_age` (Number) The time in seconds that your browser is to cache the preflight response for the specified resource. @@ -159,15 +181,16 @@ Read-Only: - `prefix` (String) An object key name prefix that identifies the subset of objects to which the rule applies. - `status` (String) Specifies the status of the configuration. - `tag_filters` (Attributes List) A container for a key-value pair. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations--tag_filters)) -- `tierings` (Attributes List) Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations--tierings)) +- `tierings` (Attributes List) Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ``ARCHIVE_ACCESS`` and ``DEEP_ARCHIVE_ACCESS``. + You only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent-Tiering storage class to Archive Access or Deep Archive Access tiers. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations--tierings)) ### Nested Schema for `intelligent_tiering_configurations.tag_filters` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -175,7 +198,7 @@ Read-Only: Read-Only: -- `access_tier` (String) S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class. +- `access_tier` (String) S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class. - `days` (Number) The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days). @@ -185,12 +208,12 @@ Read-Only: Read-Only: -- `destination` (Attributes) Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--inventory_configurations--destination)) -- `enabled` (Boolean) Specifies whether the inventory is enabled or disabled. +- `destination` (Attributes) Contains information about where to publish the inventory results. (see [below for nested schema](#nestedatt--inventory_configurations--destination)) +- `enabled` (Boolean) Specifies whether the inventory is enabled or disabled. If set to ``True``, an inventory list is generated. If set to ``False``, no inventory list is generated. - `id` (String) The ID used to identify the inventory configuration. -- `included_object_versions` (String) Object versions to include in the inventory list. +- `included_object_versions` (String) Object versions to include in the inventory list. If set to ``All``, the list includes all the object versions, which adds the version-related fields ``VersionId``, ``IsLatest``, and ``DeleteMarker`` to the list. If set to ``Current``, the list does not contain these version-related fields. - `optional_fields` (List of String) Contains the optional fields that are included in the inventory results. -- `prefix` (String) The prefix that is prepended to all inventory results. +- `prefix` (String) Specifies the inventory filter prefix. - `schedule_frequency` (String) Specifies the schedule for generating inventory results. @@ -198,9 +221,11 @@ Read-Only: Read-Only: -- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. +- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data. + Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes. - `bucket_arn` (String) The Amazon Resource Name (ARN) of the bucket to which data is exported. - `format` (String) Specifies the file format used when exporting data to Amazon S3. + *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet`` - `prefix` (String) The prefix to use when exporting data. The prefix is prepended to all results. @@ -217,29 +242,30 @@ Read-Only: Read-Only: -- `abort_incomplete_multipart_upload` (Attributes) Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--abort_incomplete_multipart_upload)) -- `expiration_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `expiration_in_days` (Number) -- `expired_object_delete_marker` (Boolean) -- `id` (String) -- `noncurrent_version_expiration` (Attributes) Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_expiration)) -- `noncurrent_version_expiration_in_days` (Number) -- `noncurrent_version_transition` (Attributes) Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transition)) -- `noncurrent_version_transitions` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transitions)) -- `object_size_greater_than` (String) -- `object_size_less_than` (String) -- `prefix` (String) -- `status` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--tag_filters)) -- `transition` (Attributes) You must specify at least one of "TransitionDate" and "TransitionInDays" (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transition)) -- `transitions` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transitions)) +- `abort_incomplete_multipart_upload` (Attributes) Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--abort_incomplete_multipart_upload)) +- `expiration_date` (String) Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier. The date value must be in ISO 8601 format. The time is always midnight UTC. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. +- `expiration_in_days` (Number) Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. +- `expired_object_delete_marker` (Boolean) Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions. If set to true, the delete marker will be removed if there are no noncurrent versions. This cannot be specified with ``ExpirationInDays``, ``ExpirationDate``, or ``TagFilters``. +- `id` (String) Unique identifier for the rule. The value can't be longer than 255 characters. +- `noncurrent_version_expiration` (Attributes) Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_expiration)) +- `noncurrent_version_expiration_in_days` (Number) (Deprecated.) For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time. +- `noncurrent_version_transition` (Attributes) (Deprecated.) For buckets with versioning enabled (or suspended), specifies when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transition)) +- `noncurrent_version_transitions` (Attributes List) For buckets with versioning enabled (or suspended), one or more transition rules that specify when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransition`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transitions)) +- `object_size_greater_than` (String) Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*. +- `object_size_less_than` (String) Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*. +- `prefix` (String) Object key prefix that identifies one or more objects to which this rule applies. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `status` (String) If ``Enabled``, the rule is currently being applied. If ``Disabled``, the rule is not currently being applied. +- `tag_filters` (Attributes List) Tags to use to identify a subset of objects to which the lifecycle rule applies. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--tag_filters)) +- `transition` (Attributes) (Deprecated.) Specifies when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transitions`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transition)) +- `transitions` (Attributes List) One or more transition rules that specify when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transition`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transitions)) ### Nested Schema for `lifecycle_configuration.rules.abort_incomplete_multipart_upload` Read-Only: -- `days_after_initiation` (Number) Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload. +- `days_after_initiation` (Number) Specifies the number of days after which Amazon S3 stops an incomplete multipart upload. @@ -247,8 +273,8 @@ Read-Only: Read-Only: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action -- `noncurrent_days` (Number) Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. +- `noncurrent_days` (Number) Specifies the number of days an object is noncurrent before S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. @@ -256,9 +282,9 @@ Read-Only: Read-Only: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. - `storage_class` (String) The class of storage used to store the object. -- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. +- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. @@ -266,9 +292,9 @@ Read-Only: Read-Only: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. - `storage_class` (String) The class of storage used to store the object. -- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. +- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. @@ -276,8 +302,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -285,9 +311,9 @@ Read-Only: Read-Only: -- `storage_class` (String) -- `transition_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `transition_in_days` (Number) +- `storage_class` (String) The storage class to which you want the object to transition. +- `transition_date` (String) Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC. +- `transition_in_days` (Number) Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. @@ -295,9 +321,9 @@ Read-Only: Read-Only: -- `storage_class` (String) -- `transition_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `transition_in_days` (Number) +- `storage_class` (String) The storage class to which you want the object to transition. +- `transition_date` (String) Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC. +- `transition_in_days` (Number) Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. @@ -307,16 +333,18 @@ Read-Only: Read-Only: -- `destination_bucket_name` (String) The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined. -- `log_file_prefix` (String) -- `target_object_key_format` (Attributes) Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format)) +- `destination_bucket_name` (String) The name of the bucket where Amazon S3 should store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the ``LoggingConfiguration`` property is defined. +- `log_file_prefix` (String) A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket. +- `target_object_key_format` (Attributes) Amazon S3 key format for log objects. Only one format, either PartitionedPrefix or SimplePrefix, is allowed. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format)) ### Nested Schema for `logging_configuration.target_object_key_format` Read-Only: -- `partitioned_prefix` (Attributes) This format appends a time based prefix to the given log file prefix for delivering server access log file. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format--partitioned_prefix)) +- `partitioned_prefix` (Attributes) Amazon S3 keys for log objects are partitioned in the following format: + ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]`` + PartitionedPrefix defaults to EventTime delivery when server access logs are delivered. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format--partitioned_prefix)) - `simple_prefix` (String) This format defaults the prefix to the given log file prefix for delivering server access log file. @@ -324,7 +352,7 @@ Read-Only: Read-Only: -- `partition_date_source` (String) Date Source for creating a partitioned prefix. This can be event time or delivery time. +- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime. @@ -334,18 +362,18 @@ Read-Only: Read-Only: -- `access_point_arn` (String) -- `id` (String) -- `prefix` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--metrics_configurations--tag_filters)) +- `access_point_arn` (String) The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria. +- `id` (String) The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration. +- `prefix` (String) The prefix that an object must have to be included in the metrics results. +- `tag_filters` (Attributes List) Specifies a list of tag filters to use as a metrics configuration filter. The metrics configuration includes only objects that meet the filter's criteria. (see [below for nested schema](#nestedatt--metrics_configurations--tag_filters)) ### Nested Schema for `metrics_configurations.tag_filters` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -354,17 +382,17 @@ Read-Only: Read-Only: -- `event_bridge_configuration` (Attributes) Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--notification_configuration--event_bridge_configuration)) -- `lambda_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations)) -- `queue_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations)) -- `topic_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations)) +- `event_bridge_configuration` (Attributes) Enables delivery of events to Amazon EventBridge. (see [below for nested schema](#nestedatt--notification_configuration--event_bridge_configuration)) +- `lambda_configurations` (Attributes List) Describes the LAMlong functions to invoke and the events for which to invoke them. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations)) +- `queue_configurations` (Attributes List) The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations)) +- `topic_configurations` (Attributes List) The topic to which notifications are sent and the events for which notifications are generated. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations)) ### Nested Schema for `notification_configuration.event_bridge_configuration` Read-Only: -- `event_bridge_enabled` (Boolean) Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket. +- `event_bridge_enabled` (Boolean) Enables delivery of events to Amazon EventBridge. @@ -372,9 +400,9 @@ Read-Only: Read-Only: -- `event` (String) The Amazon S3 bucket event for which to invoke the AWS Lambda function. -- `filter` (Attributes) The filtering rules that determine which objects invoke the AWS Lambda function. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter)) -- `function` (String) The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs. +- `event` (String) The Amazon S3 bucket event for which to invoke the LAMlong function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `filter` (Attributes) The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter)) +- `function` (String) The Amazon Resource Name (ARN) of the LAMlong function that Amazon S3 invokes when the specified event type occurs. ### Nested Schema for `notification_configuration.lambda_configurations.filter` @@ -388,15 +416,15 @@ Read-Only: Read-Only: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.lambda_configurations.filter.s3_key.rules` Read-Only: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -407,9 +435,9 @@ Read-Only: Read-Only: -- `event` (String) The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. -- `filter` (Attributes) The filtering rules that determine which objects trigger notifications. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter)) -- `queue` (String) The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. +- `event` (String) The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `filter` (Attributes) The filtering rules that determine which objects trigger notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter)) +- `queue` (String) The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. FIFO queues are not allowed when enabling an SQS queue as the event notification destination. ### Nested Schema for `notification_configuration.queue_configurations.filter` @@ -423,15 +451,15 @@ Read-Only: Read-Only: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.queue_configurations.filter.s3_key.rules` Read-Only: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -442,8 +470,8 @@ Read-Only: Read-Only: -- `event` (String) The Amazon S3 bucket event about which to send notifications. -- `filter` (Attributes) The filtering rules that determine for which objects to send notifications. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter)) +- `event` (String) The Amazon S3 bucket event about which to send notifications. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `filter` (Attributes) The filtering rules that determine for which objects to send notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter)) - `topic` (String) The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type. @@ -458,15 +486,15 @@ Read-Only: Read-Only: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.topic_configurations.filter.s3_key.rules` Read-Only: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -478,24 +506,24 @@ Read-Only: Read-Only: -- `object_lock_enabled` (String) -- `rule` (Attributes) The Object Lock rule in place for the specified object. (see [below for nested schema](#nestedatt--object_lock_configuration--rule)) +- `object_lock_enabled` (String) Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket. +- `rule` (Attributes) Specifies the Object Lock rule for the specified object. Enable this rule when you apply ``ObjectLockConfiguration`` to a bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html). (see [below for nested schema](#nestedatt--object_lock_configuration--rule)) ### Nested Schema for `object_lock_configuration.rule` Read-Only: -- `default_retention` (Attributes) The default retention period that you want to apply to new objects placed in the specified bucket. (see [below for nested schema](#nestedatt--object_lock_configuration--rule--default_retention)) +- `default_retention` (Attributes) The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html). (see [below for nested schema](#nestedatt--object_lock_configuration--rule--default_retention)) ### Nested Schema for `object_lock_configuration.rule.default_retention` Read-Only: -- `days` (Number) -- `mode` (String) -- `years` (Number) +- `days` (Number) The number of days that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. +- `mode` (String) The default Object Lock retention mode you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. +- `years` (Number) The number of years that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. @@ -505,7 +533,7 @@ Read-Only: Read-Only: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--ownership_controls--rules)) +- `rules` (Attributes List) Specifies the container element for Object Ownership rules. (see [below for nested schema](#nestedatt--ownership_controls--rules)) ### Nested Schema for `ownership_controls.rules` @@ -521,16 +549,18 @@ Read-Only: Read-Only: -- `block_public_acls` (Boolean) Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior: -- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. - - PUT Object calls fail if the request includes a public ACL. -Enabling this setting doesn't affect existing policies or ACLs. -- `block_public_policy` (Boolean) Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. -Enabling this setting doesn't affect existing bucket policies. -- `ignore_public_acls` (Boolean) Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. -Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. -- `restrict_public_buckets` (Boolean) Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy. -Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. +- `block_public_acls` (Boolean) Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes the following behavior: + + PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public. + + PUT Object calls fail if the request includes a public ACL. + + PUT Bucket calls fail if the request includes a public ACL. + + Enabling this setting doesn't affect existing policies or ACLs. +- `block_public_policy` (Boolean) Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to ``TRUE`` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. + Enabling this setting doesn't affect existing bucket policies. +- `ignore_public_acls` (Boolean) Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. + Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. +- `restrict_public_buckets` (Boolean) Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to ``TRUE`` restricts access to this bucket to only AWS-service principals and authorized users within this account if the bucket has a public policy. + Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. @@ -538,21 +568,26 @@ Enabling this setting doesn't affect previously stored bucket policies, except t Read-Only: -- `role` (String) The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. -- `rules` (Attributes List) A container for one or more replication rules. (see [below for nested schema](#nestedatt--replication_configuration--rules)) +- `role` (String) The Amazon Resource Name (ARN) of the IAMlong (IAM) role that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*. +- `rules` (Attributes List) A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules. (see [below for nested schema](#nestedatt--replication_configuration--rules)) ### Nested Schema for `replication_configuration.rules` Read-Only: -- `delete_marker_replication` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--delete_marker_replication)) -- `destination` (Attributes) Specifies which Amazon S3 bucket to store replicated objects in and their storage class. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination)) -- `filter` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter)) -- `id` (String) A unique identifier for the rule. -- `prefix` (String) An object key name prefix that identifies the object or objects to which the rule applies. -- `priority` (Number) -- `source_selection_criteria` (Attributes) A container that describes additional filters for identifying the source objects that you want to replicate. (see [below for nested schema](#nestedatt--replication_configuration--rules--source_selection_criteria)) +- `delete_marker_replication` (Attributes) Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). + If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). (see [below for nested schema](#nestedatt--replication_configuration--rules--delete_marker_replication)) +- `destination` (Attributes) A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--replication_configuration--rules--destination)) +- `filter` (Attributes) A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element. The use of the filter field indicates that this is a V2 replication configuration. This field isn't supported in a V1 replication configuration. + V1 replication configuration only supports filtering by key prefix. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter)) +- `id` (String) A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. When using a V2 replication configuration this property is capitalized as "ID". +- `prefix` (String) An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `priority` (Number) The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority. + For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*. +- `source_selection_criteria` (Attributes) A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--source_selection_criteria)) - `status` (String) Specifies whether the rule is enabled. @@ -560,7 +595,7 @@ Read-Only: Read-Only: -- `status` (String) +- `status` (String) Indicates whether to replicate delete markers. Disabled by default. @@ -568,20 +603,22 @@ Read-Only: Read-Only: -- `access_control_translation` (Attributes) Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--access_control_translation)) -- `account` (String) -- `bucket` (String) -- `encryption_configuration` (Attributes) Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--encryption_configuration)) -- `metrics` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--metrics)) -- `replication_time` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--replication_time)) -- `storage_class` (String) The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. +- `access_control_translation` (Attributes) Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--access_control_translation)) +- `account` (String) Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS-account that owns the destination bucket by specifying the ``AccessControlTranslation`` property, this is the account ID of the destination bucket owner. For more information, see [Cross-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*. + If you specify the ``AccessControlTranslation`` property, the ``Account`` property is required. +- `bucket` (String) The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results. +- `encryption_configuration` (Attributes) Specifies encryption-related information. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--encryption_configuration)) +- `metrics` (Attributes) A container specifying replication metrics-related settings enabling replication metrics and events. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--metrics)) +- `replication_time` (Attributes) A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--replication_time)) +- `storage_class` (String) The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. + For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*. ### Nested Schema for `replication_configuration.rules.destination.storage_class` Read-Only: -- `owner` (String) +- `owner` (String) Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*. @@ -589,7 +626,7 @@ Read-Only: Read-Only: -- `replica_kms_key_id` (String) Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket. +- `replica_kms_key_id` (String) Specifies the ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*. @@ -597,15 +634,16 @@ Read-Only: Read-Only: -- `event_threshold` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--event_threshold)) -- `status` (String) +- `event_threshold` (Attributes) A container specifying the time threshold for emitting the ``s3:Replication:OperationMissedThreshold`` event. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--event_threshold)) +- `status` (String) Specifies whether the replication metrics are enabled. ### Nested Schema for `replication_configuration.rules.destination.storage_class.event_threshold` Read-Only: -- `minutes` (Number) +- `minutes` (Number) Contains an integer specifying time in minutes. + Valid value: 15 @@ -614,15 +652,16 @@ Read-Only: Read-Only: -- `status` (String) -- `time` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--time)) +- `status` (String) Specifies whether the replication time is enabled. +- `time` (Attributes) A container specifying the time by which replication should be complete for all objects and operations on objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--time)) ### Nested Schema for `replication_configuration.rules.destination.storage_class.time` Read-Only: -- `minutes` (Number) +- `minutes` (Number) Contains an integer specifying time in minutes. + Valid value: 15 @@ -632,25 +671,29 @@ Read-Only: Read-Only: -- `and` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--and)) -- `prefix` (String) -- `tag_filter` (Attributes) Tags to use to identify a subset of objects for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter)) +- `and` (Attributes) A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example: + + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag. + + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--and)) +- `prefix` (String) An object key name prefix that identifies the subset of objects to which the rule applies. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `tag_filter` (Attributes) A container for specifying a tag key and value. + The rule applies only to objects that have the tag in their tag set. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter)) ### Nested Schema for `replication_configuration.rules.filter.tag_filter` Read-Only: -- `prefix` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter--tag_filters)) +- `prefix` (String) An object key name prefix that identifies the subset of objects to which the rule applies. +- `tag_filters` (Attributes List) An array of tags containing key and value pairs. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter--tag_filters)) ### Nested Schema for `replication_configuration.rules.filter.tag_filter.tag_filters` Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -659,8 +702,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -678,6 +721,7 @@ Read-Only: Read-Only: - `status` (String) Specifies whether Amazon S3 replicates modifications on replicas. + *Allowed values*: ``Enabled`` | ``Disabled`` @@ -685,7 +729,7 @@ Read-Only: Read-Only: -- `status` (String) Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service. +- `status` (String) Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service. @@ -696,8 +740,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) Name of the object key. +- `value` (String) Value of the tag. @@ -715,8 +759,9 @@ Read-Only: - `error_document` (String) The name of the error document for the website. - `index_document` (String) The name of the index document for the website. -- `redirect_all_requests_to` (Attributes) Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--website_configuration--redirect_all_requests_to)) -- `routing_rules` (Attributes List) (see [below for nested schema](#nestedatt--website_configuration--routing_rules)) +- `redirect_all_requests_to` (Attributes) The redirect behavior for every request to this bucket's website endpoint. + If you specify this property, you can't specify any other property. (see [below for nested schema](#nestedatt--website_configuration--redirect_all_requests_to)) +- `routing_rules` (Attributes List) Rules that define when a redirect is applied and the redirect behavior. (see [below for nested schema](#nestedatt--website_configuration--routing_rules)) ### Nested Schema for `website_configuration.redirect_all_requests_to` @@ -733,7 +778,7 @@ Read-Only: Read-Only: - `redirect_rule` (Attributes) Container for redirect information. You can redirect requests to another host, to another page, or with another protocol. In the event of an error, you can specify a different error code to return. (see [below for nested schema](#nestedatt--website_configuration--routing_rules--redirect_rule)) -- `routing_rule_condition` (Attributes) A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals (see [below for nested schema](#nestedatt--website_configuration--routing_rules--routing_rule_condition)) +- `routing_rule_condition` (Attributes) A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error. (see [below for nested schema](#nestedatt--website_configuration--routing_rules--routing_rule_condition)) ### Nested Schema for `website_configuration.routing_rules.redirect_rule` @@ -743,8 +788,10 @@ Read-Only: - `host_name` (String) The host name to use in the redirect request. - `http_redirect_code` (String) The HTTP redirect code to use on the response. Not required if one of the siblings is present. - `protocol` (String) Protocol to use when redirecting requests. The default is the protocol that is used in the original request. -- `replace_key_prefix_with` (String) The object key prefix to use in the redirect request. -- `replace_key_with` (String) The specific object key to use in the redirect request.d +- `replace_key_prefix_with` (String) The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix ``docs/`` (objects in the ``docs/`` folder) to ``documents/``, you can set a condition block with ``KeyPrefixEquals`` set to ``docs/`` and in the Redirect set ``ReplaceKeyPrefixWith`` to ``/documents``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyWith`` is not provided. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `replace_key_with` (String) The specific object key to use in the redirect request. For example, redirect request to ``error.html``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyPrefixWith`` is not provided. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). @@ -752,5 +799,7 @@ Read-Only: Read-Only: -- `http_error_code_returned_equals` (String) The HTTP error code when the redirect is applied. -- `key_prefix_equals` (String) The object key name prefix when the redirect is applied. +- `http_error_code_returned_equals` (String) The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. + Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied. +- `key_prefix_equals` (String) The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html``, the key prefix will be ``ExamplePage.html``. To redirect request for all pages with the prefix ``docs/``, the key prefix will be ``/docs``, which identifies all objects in the docs/ folder. + Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied. diff --git a/docs/data-sources/s3_bucket_policy.md b/docs/data-sources/s3_bucket_policy.md index 51b5b0cd7d..8b4b9076c8 100644 --- a/docs/data-sources/s3_bucket_policy.md +++ b/docs/data-sources/s3_bucket_policy.md @@ -22,4 +22,4 @@ Data Source schema for AWS::S3::BucketPolicy ### Read-Only - `bucket` (String) The name of the Amazon S3 bucket to which the policy applies. -- `policy_document` (String) A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. +- `policy_document` (String) A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*. diff --git a/docs/data-sources/sagemaker_feature_group.md b/docs/data-sources/sagemaker_feature_group.md index 058a8d6c6b..f9e2c13c38 100644 --- a/docs/data-sources/sagemaker_feature_group.md +++ b/docs/data-sources/sagemaker_feature_group.md @@ -81,6 +81,7 @@ Read-Only: - `enable_online_store` (Boolean) - `security_config` (Attributes) (see [below for nested schema](#nestedatt--online_store_config--security_config)) - `storage_type` (String) +- `ttl_duration` (Attributes) TTL configuration of the feature group (see [below for nested schema](#nestedatt--online_store_config--ttl_duration)) ### Nested Schema for `online_store_config.security_config` @@ -90,6 +91,15 @@ Read-Only: - `kms_key_id` (String) + +### Nested Schema for `online_store_config.ttl_duration` + +Read-Only: + +- `unit` (String) Unit of ttl configuration +- `value` (Number) Value of ttl configuration + + ### Nested Schema for `tags` diff --git a/docs/data-sources/secretsmanager_secret.md b/docs/data-sources/secretsmanager_secret.md index 0d26eb5292..47434071b1 100644 --- a/docs/data-sources/secretsmanager_secret.md +++ b/docs/data-sources/secretsmanager_secret.md @@ -21,29 +21,39 @@ Data Source schema for AWS::SecretsManager::Secret ### Read-Only -- `description` (String) (Optional) Specifies a user-provided description of the secret. -- `generate_secret_string` (Attributes) (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. (see [below for nested schema](#nestedatt--generate_secret_string)) -- `kms_key_id` (String) (Optional) Specifies the ARN, Key ID, or alias of the AWS KMS customer master key (CMK) used to encrypt the SecretString. -- `name` (String) The friendly name of the secret. You can use forward slashes in the name to represent a path hierarchy. -- `replica_regions` (Attributes List) (Optional) A list of ReplicaRegion objects. The ReplicaRegion type consists of a Region (required) and the KmsKeyId which can be an ARN, Key ID, or Alias. (see [below for nested schema](#nestedatt--replica_regions)) -- `secret_string` (String) (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. -- `tags` (Attributes List) The list of user-defined tags associated with the secret. Use tags to manage your AWS resources. For additional information about tags, see TagResource. (see [below for nested schema](#nestedatt--tags)) +- `description` (String) The description of the secret. +- `generate_secret_string` (Attributes) A structure that specifies how to generate a password to encrypt and store in the secret. To include a specific string in the secret, use ``SecretString`` instead. If you omit both ``GenerateSecretString`` and ``SecretString``, you create an empty secret. When you make a change to this property, a new secret version is created. + We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. (see [below for nested schema](#nestedatt--generate_secret_string)) +- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt the secret value in the secret. An alias is always prefixed by ``alias/``, for example ``alias/aws/secretsmanager``. For more information, see [About aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-about.html). + To use a KMS key in a different account, use the key ARN or the alias ARN. + If you don't specify this value, then Secrets Manager uses the key ``aws/secretsmanager``. If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + If the secret is in a different AWS account from the credentials calling the API, then you can't use ``aws/secretsmanager`` to encrypt the secret, and you must create and use a customer managed KMS key. +- `name` (String) The name of the new secret. + The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@- + Do not end your secret name with a hyphen followed by six characters. If you do so, you risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager automatically adds a hyphen and six random characters after the secret name at the end of the ARN. +- `replica_regions` (Attributes List) A custom type that specifies a ``Region`` and the ``KmsKeyId`` for a replica secret. (see [below for nested schema](#nestedatt--replica_regions)) +- `secret_string` (String) The text to encrypt and store in the secret. We recommend you use a JSON structure of key/value pairs for your secret value. To generate a random password, use ``GenerateSecretString`` instead. If you omit both ``GenerateSecretString`` and ``SecretString``, you create an empty secret. When you make a change to this property, a new secret version is created. +- `tags` (Attributes List) A list of tags to attach to the secret. Each tag is a key and value pair of strings in a JSON text string, for example: + ``[{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}]`` + Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a different tag from one with key "abc". + Stack-level tags, tags you apply to the CloudFormation stack, are also attached to the secret. + If you check tags in permissions policies as part of your security strategy, then adding or removing a tag can change permissions. If the completion of this operation would result in you losing your permissions for this secret, then Secrets Manager blocks the operation and returns an ``Access Denied`` error. For more information, see [Control access to secrets using tags](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#tag-secrets-abac) and [Limit access to identities with tags that match secrets' tags](https://docs.aws.amazo (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `generate_secret_string` Read-Only: -- `exclude_characters` (String) A string that excludes characters in the generated password. By default, all characters from the included sets can be used. The string can be a minimum length of 0 characters and a maximum length of 7168 characters. -- `exclude_lowercase` (Boolean) Specifies the generated password should not include lowercase letters. By default, ecrets Manager disables this parameter, and the generated password can include lowercase False, and the generated password can include lowercase letters. -- `exclude_numbers` (Boolean) Specifies that the generated password should exclude digits. By default, Secrets Manager does not enable the parameter, False, and the generated password can include digits. -- `exclude_punctuation` (Boolean) Specifies that the generated password should not include punctuation characters. The default if you do not include this switch parameter is that punctuation characters can be included. -- `exclude_uppercase` (Boolean) Specifies that the generated password should not include uppercase letters. The default behavior is False, and the generated password can include uppercase letters. -- `generate_string_key` (String) The JSON key name used to add the generated password to the JSON structure specified by the SecretStringTemplate parameter. If you specify this parameter, then you must also specify SecretStringTemplate. -- `include_space` (Boolean) Specifies that the generated password can include the space character. By default, Secrets Manager disables this parameter, and the generated password doesn't include space -- `password_length` (Number) The desired length of the generated password. The default value if you do not include this parameter is 32 characters. -- `require_each_included_type` (Boolean) Specifies whether the generated password must include at least one of every allowed character type. By default, Secrets Manager enables this parameter, and the generated password includes at least one of every character type. -- `secret_string_template` (String) A properly structured JSON string that the generated password can be added to. If you specify this parameter, then you must also specify GenerateStringKey. +- `exclude_characters` (String) A string of the characters that you don't want in the password. +- `exclude_lowercase` (Boolean) Specifies whether to exclude lowercase letters from the password. If you don't include this switch, the password can contain lowercase letters. +- `exclude_numbers` (Boolean) Specifies whether to exclude numbers from the password. If you don't include this switch, the password can contain numbers. +- `exclude_punctuation` (Boolean) Specifies whether to exclude the following punctuation characters from the password: ``! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~``. If you don't include this switch, the password can contain punctuation. +- `exclude_uppercase` (Boolean) Specifies whether to exclude uppercase letters from the password. If you don't include this switch, the password can contain uppercase letters. +- `generate_string_key` (String) The JSON key name for the key/value pair, where the value is the generated password. This pair is added to the JSON structure specified by the ``SecretStringTemplate`` parameter. If you specify this parameter, then you must also specify ``SecretStringTemplate``. +- `include_space` (Boolean) Specifies whether to include the space character. If you include this switch, the password can contain space characters. +- `password_length` (Number) The length of the password. If you don't include this parameter, the default length is 32 characters. +- `require_each_included_type` (Boolean) Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation. If you don't include this switch, the password contains at least one of every character type. +- `secret_string_template` (String) A template that the generated string must match. When you make a change to this property, a new secret version is created. @@ -51,8 +61,8 @@ Read-Only: Read-Only: -- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager. -- `region` (String) (Optional) A string that represents a Region, for example "us-east-1". +- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses ``aws/secretsmanager``. +- `region` (String) A string that represents a ``Region``, for example "us-east-1". @@ -60,5 +70,5 @@ Read-Only: Read-Only: -- `key` (String) The value for the tag. You can specify a value that's 1 to 256 characters in length. -- `value` (String) The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with aws. +- `key` (String) The key identifier, or name, of the tag. +- `value` (String) The string value associated with the key of the tag. diff --git a/docs/data-sources/securityhub_standard.md b/docs/data-sources/securityhub_standard.md index b50bba56db..632c708bc8 100644 --- a/docs/data-sources/securityhub_standard.md +++ b/docs/data-sources/securityhub_standard.md @@ -21,14 +21,15 @@ Data Source schema for AWS::SecurityHub::Standard ### Read-Only -- `disabled_standards_controls` (Attributes List) StandardsControls to disable from this Standard. (see [below for nested schema](#nestedatt--disabled_standards_controls)) -- `standards_arn` (String) The ARN of the Standard being enabled -- `standards_subscription_arn` (String) The ARN of the StandardsSubscription for the account ID, region, and Standard. +- `disabled_standards_controls` (Attributes List) Specifies which controls are to be disabled in a standard. + *Maximum*: ``100`` (see [below for nested schema](#nestedatt--disabled_standards_controls)) +- `standards_arn` (String) The ARN of the standard that you want to enable. To view a list of available ASH standards and their ARNs, use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation. +- `standards_subscription_arn` (String) ### Nested Schema for `disabled_standards_controls` Read-Only: -- `reason` (String) the reason the standard control is disabled -- `standards_control_arn` (String) the Arn for the standard control. +- `reason` (String) A user-defined reason for changing a control's enablement status in a specified standard. If you are disabling a control, then this property is required. +- `standards_control_arn` (String) The Amazon Resource Name (ARN) of the control. diff --git a/docs/data-sources/wafv2_logging_configuration.md b/docs/data-sources/wafv2_logging_configuration.md index 55226238e1..1ec1a33d98 100644 --- a/docs/data-sources/wafv2_logging_configuration.md +++ b/docs/data-sources/wafv2_logging_configuration.md @@ -76,31 +76,11 @@ Read-Only: Read-Only: -- `json_body` (Attributes) Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. (see [below for nested schema](#nestedatt--redacted_fields--json_body)) - `method` (String) Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform. - `query_string` (String) Inspect the query string. This is the part of a URL that appears after a ? character, if any. - `single_header` (Attributes) Inspect a single header. Provide the name of the header to inspect, for example, User-Agent or Referer. This setting isn't case sensitive. (see [below for nested schema](#nestedatt--redacted_fields--single_header)) - `uri_path` (String) Inspect the request URI path. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg. - -### Nested Schema for `redacted_fields.json_body` - -Read-Only: - -- `invalid_fallback_behavior` (String) What AWS WAF should do if it fails to completely parse the JSON body. -- `match_pattern` (Attributes) The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria. (see [below for nested schema](#nestedatt--redacted_fields--json_body--match_pattern)) -- `match_scope` (String) The parts of the JSON to match against using the MatchPattern. If you specify All, AWS WAF matches against keys and values. - - -### Nested Schema for `redacted_fields.json_body.match_pattern` - -Read-Only: - -- `all` (String) Match all of the elements. See also MatchScope in JsonBody. You must specify either this setting or the IncludedPaths setting, but not both. -- `included_paths` (List of String) Match only the specified include paths. See also MatchScope in JsonBody. - - - ### Nested Schema for `redacted_fields.single_header` diff --git a/docs/resources/acmpca_certificate.md b/docs/resources/acmpca_certificate.md index f4f1732dbc..f8840282c1 100644 --- a/docs/resources/acmpca_certificate.md +++ b/docs/resources/acmpca_certificate.md @@ -3,12 +3,12 @@ page_title: "awscc_acmpca_certificate Resource - terraform-provider-awscc" subcategory: "" description: |- - A certificate issued via a private certificate authority + The AWS::ACMPCA::Certificate resource is used to issue a certificate using your private certificate authority. For more information, see the IssueCertificate https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html action. --- # awscc_acmpca_certificate (Resource) -A certificate issued via a private certificate authority +The ``AWS::ACMPCA::Certificate`` resource is used to issue a certificate using your private certificate authority. For more information, see the [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) action. @@ -17,21 +17,26 @@ A certificate issued via a private certificate authority ### Required -- `certificate_authority_arn` (String) The Amazon Resource Name (ARN) for the private CA to issue the certificate. -- `certificate_signing_request` (String) The certificate signing request (CSR) for the Certificate. -- `signing_algorithm` (String) The name of the algorithm that will be used to sign the Certificate. -- `validity` (Attributes) The time before which the Certificate will be valid. (see [below for nested schema](#nestedatt--validity)) +- `certificate_authority_arn` (String) The Amazon Resource Name (ARN) for the private CA issues the certificate. +- `certificate_signing_request` (String) The certificate signing request (CSR) for the certificate. +- `signing_algorithm` (String) The name of the algorithm that will be used to sign the certificate to be issued. + This parameter should not be confused with the ``SigningAlgorithm`` parameter used to sign a CSR in the ``CreateCertificateAuthority`` action. + The specified signing algorithm family (RSA or ECDSA) must match the algorithm family of the CA's secret key. +- `validity` (Attributes) The period of time during which the certificate will be valid. (see [below for nested schema](#nestedatt--validity)) ### Optional -- `api_passthrough` (Attributes) These are fields to be overridden in a certificate at the time of issuance. These requires an API_Passthrough template be used or they will be ignored. (see [below for nested schema](#nestedatt--api_passthrough)) -- `template_arn` (String) Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, ACM Private CA defaults to the EndEntityCertificate/V1 template. -- `validity_not_before` (Attributes) The time after which the Certificate will be valid. (see [below for nested schema](#nestedatt--validity_not_before)) +- `api_passthrough` (Attributes) Specifies X.509 certificate information to be included in the issued certificate. An ``APIPassthrough`` or ``APICSRPassthrough`` template variant must be selected, or else this parameter is ignored. (see [below for nested schema](#nestedatt--api_passthrough)) +- `template_arn` (String) Specifies a custom configuration template to use when issuing a certificate. If this parameter is not provided, PCAshort defaults to the ``EndEntityCertificate/V1`` template. For more information about PCAshort templates, see [Using Templates](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html). +- `validity_not_before` (Attributes) Information describing the start of the validity period of the certificate. This parameter sets the ?Not Before" date for the certificate. + By default, when issuing a certificate, PCAshort sets the "Not Before" date to the issuance time minus 60 minutes. This compensates for clock inconsistencies across computer systems. The ``ValidityNotBefore`` parameter can be used to customize the ?Not Before? value. + Unlike the ``Validity`` parameter, the ``ValidityNotBefore`` parameter is optional. + The ``ValidityNotBefore`` value is expressed as an explicit date and time, using the ``Validity`` type value ``ABSOLUTE``. (see [below for nested schema](#nestedatt--validity_not_before)) ### Read-Only -- `arn` (String) The ARN of the issued certificate. -- `certificate` (String) The issued certificate in base 64 PEM-encoded format. +- `arn` (String) +- `certificate` (String) - `id` (String) Uniquely identifies the resource. @@ -39,8 +44,8 @@ A certificate issued via a private certificate authority Required: -- `type` (String) -- `value` (Number) +- `type` (String) Specifies whether the ``Value`` parameter represents days, months, or years. +- `value` (Number) A long integer interpreted according to the value of ``Type``, below. @@ -48,45 +53,46 @@ Required: Optional: -- `extensions` (Attributes) Structure that contains X.500 extensions for a Certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions)) -- `subject` (Attributes) Structure that contains X.500 distinguished name information. (see [below for nested schema](#nestedatt--api_passthrough--subject)) +- `extensions` (Attributes) Specifies X.509 extension information for a certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions)) +- `subject` (Attributes) Contains information about the certificate subject. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The Subject must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate. (see [below for nested schema](#nestedatt--api_passthrough--subject)) ### Nested Schema for `api_passthrough.extensions` Optional: -- `certificate_policies` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies)) -- `custom_extensions` (Attributes List) Array of X.509 extensions for a certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--custom_extensions)) -- `extended_key_usage` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--extended_key_usage)) -- `key_usage` (Attributes) Structure that contains X.509 KeyUsage information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--key_usage)) -- `subject_alternative_names` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names)) +- `certificate_policies` (Attributes List) Contains a sequence of one or more policy information terms, each of which consists of an object identifier (OID) and optional qualifiers. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + In an end-entity certificate, these terms indicate the policy under which the certificate was issued and the purposes for which it may be used. In a CA certificate, these terms limit the set of policies for certification paths that include this certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies)) +- `custom_extensions` (Attributes List) Contains a sequence of one or more X.509 extensions, each of which consists of an object identifier (OID), a base64-encoded value, and the critical flag. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29) (see [below for nested schema](#nestedatt--api_passthrough--extensions--custom_extensions)) +- `extended_key_usage` (Attributes List) Specifies additional purposes for which the certified public key may be used other than basic purposes indicated in the ``KeyUsage`` extension. (see [below for nested schema](#nestedatt--api_passthrough--extensions--extended_key_usage)) +- `key_usage` (Attributes) Defines one or more purposes for which the key contained in the certificate can be used. Default value for each option is false. (see [below for nested schema](#nestedatt--api_passthrough--extensions--key_usage)) +- `subject_alternative_names` (Attributes List) The subject alternative name extension allows identities to be bound to the subject of the certificate. These identities may be included in addition to or in place of the identity in the subject field of the certificate. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names)) ### Nested Schema for `api_passthrough.extensions.certificate_policies` Required: -- `cert_policy_id` (String) String that contains X.509 ObjectIdentifier information. +- `cert_policy_id` (String) Specifies the object identifier (OID) of the certificate policy under which the certificate was issued. For more information, see NIST's definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). Optional: -- `policy_qualifiers` (Attributes List) (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers)) +- `policy_qualifiers` (Attributes List) Modifies the given ``CertPolicyId`` with a qualifier. AWS Private CA supports the certification practice statement (CPS) qualifier. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers)) ### Nested Schema for `api_passthrough.extensions.certificate_policies.policy_qualifiers` Required: -- `policy_qualifier_id` (String) -- `qualifier` (Attributes) Structure that contains a X.509 policy qualifier. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers--qualifier)) +- `policy_qualifier_id` (String) Identifies the qualifier modifying a ``CertPolicyId``. +- `qualifier` (Attributes) Defines the qualifier type. AWS Private CA supports the use of a URI for a CPS qualifier in this field. (see [below for nested schema](#nestedatt--api_passthrough--extensions--certificate_policies--policy_qualifiers--qualifier)) ### Nested Schema for `api_passthrough.extensions.certificate_policies.policy_qualifiers.qualifier` Required: -- `cps_uri` (String) +- `cps_uri` (String) Contains a pointer to a certification practice statement (CPS) published by the CA. @@ -96,12 +102,12 @@ Required: Required: -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `object_identifier` (String) Specifies the object identifier (OID) of the X.509 extension. For more information, see the [Global OID reference database.](https://docs.aws.amazon.com/https://oidref.com/2.5.29) +- `value` (String) Specifies the base64-encoded value of the X.509 extension. Optional: -- `critical` (Boolean) +- `critical` (Boolean) Specifies the critical flag of the X.509 extension. @@ -109,8 +115,8 @@ Optional: Optional: -- `extended_key_usage_object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `extended_key_usage_type` (String) +- `extended_key_usage_object_identifier` (String) Specifies a custom ``ExtendedKeyUsage`` with an object identifier (OID). +- `extended_key_usage_type` (String) Specifies a standard ``ExtendedKeyUsage`` as defined as in [RFC 5280](https://docs.aws.amazon.com/https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.12). @@ -118,15 +124,15 @@ Optional: Optional: -- `crl_sign` (Boolean) -- `data_encipherment` (Boolean) -- `decipher_only` (Boolean) -- `digital_signature` (Boolean) -- `encipher_only` (Boolean) -- `key_agreement` (Boolean) -- `key_cert_sign` (Boolean) -- `key_encipherment` (Boolean) -- `non_repudiation` (Boolean) +- `crl_sign` (Boolean) Key can be used to sign CRLs. +- `data_encipherment` (Boolean) Key can be used to decipher data. +- `decipher_only` (Boolean) Key can be used only to decipher data. +- `digital_signature` (Boolean) Key can be used for digital signing. +- `encipher_only` (Boolean) Key can be used only to encipher data. +- `key_agreement` (Boolean) Key can be used in a key-agreement protocol. +- `key_cert_sign` (Boolean) Key can be used to sign certificates. +- `key_encipherment` (Boolean) Key can be used to encipher data. +- `non_repudiation` (Boolean) Key can be used for non-repudiation. @@ -134,43 +140,45 @@ Optional: Optional: -- `directory_name` (Attributes) Structure that contains X.500 distinguished name information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--directory_name)) -- `dns_name` (String) String that contains X.509 DnsName information. -- `edi_party_name` (Attributes) Structure that contains X.509 EdiPartyName information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--edi_party_name)) -- `ip_address` (String) String that contains X.509 IpAddress information. -- `other_name` (Attributes) Structure that contains X.509 OtherName information. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--other_name)) -- `registered_id` (String) String that contains X.509 ObjectIdentifier information. -- `rfc_822_name` (String) String that contains X.509 Rfc822Name information. -- `uniform_resource_identifier` (String) String that contains X.509 UniformResourceIdentifier information. +- `directory_name` (Attributes) Contains information about the certificate subject. The certificate can be one issued by your private certificate authority (CA) or it can be your private CA certificate. The Subject field in the certificate identifies the entity that owns or controls the public key in the certificate. The entity can be a user, computer, device, or service. The Subject must contain an X.500 distinguished name (DN). A DN is a sequence of relative distinguished names (RDNs). The RDNs are separated by commas in the certificate. The DN must be unique for each entity, but your private CA can issue more than one certificate with the same DN to the same entity. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--directory_name)) +- `dns_name` (String) Represents ``GeneralName`` as a DNS name. +- `edi_party_name` (Attributes) Represents ``GeneralName`` as an ``EdiPartyName`` object. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--edi_party_name)) +- `ip_address` (String) Represents ``GeneralName`` as an IPv4 or IPv6 address. +- `other_name` (Attributes) Represents ``GeneralName`` using an ``OtherName`` object. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--other_name)) +- `registered_id` (String) Represents ``GeneralName`` as an object identifier (OID). +- `rfc_822_name` (String) Represents ``GeneralName`` as an [RFC 822](https://docs.aws.amazon.com/https://datatracker.ietf.org/doc/html/rfc822) email address. +- `uniform_resource_identifier` (String) Represents ``GeneralName`` as a URI. ### Nested Schema for `api_passthrough.extensions.subject_alternative_names.uniform_resource_identifier` Optional: -- `common_name` (String) -- `country` (String) -- `custom_attributes` (Attributes List) Array of X.500 attribute type and value. CustomAttributes cannot be used along with pre-defined attributes. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--uniform_resource_identifier--custom_attributes)) -- `distinguished_name_qualifier` (String) -- `generation_qualifier` (String) -- `given_name` (String) -- `initials` (String) -- `locality` (String) -- `organization` (String) -- `organizational_unit` (String) -- `pseudonym` (String) -- `serial_number` (String) -- `state` (String) -- `surname` (String) -- `title` (String) +- `common_name` (String) For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit. + Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject. +- `country` (String) Two-digit code that specifies the country in which the certificate subject located. +- `custom_attributes` (Attributes List) Contains a sequence of one or more X.500 relative distinguished names (RDNs), each of which consists of an object identifier (OID) and a value. For more information, see NIST?s definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + Custom attributes cannot be used in combination with standard attributes. (see [below for nested schema](#nestedatt--api_passthrough--extensions--subject_alternative_names--uniform_resource_identifier--custom_attributes)) +- `distinguished_name_qualifier` (String) Disambiguating information for the certificate subject. +- `generation_qualifier` (String) Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third. +- `given_name` (String) First name. +- `initials` (String) Concatenation that typically contains the first letter of the *GivenName*, the first letter of the middle name if one exists, and the first letter of the *Surname*. +- `locality` (String) The locality (such as a city or town) in which the certificate subject is located. +- `organization` (String) Legal name of the organization with which the certificate subject is affiliated. +- `organizational_unit` (String) A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated. +- `pseudonym` (String) Typically a shortened version of a longer *GivenName*. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza. +- `serial_number` (String) The certificate serial number. +- `state` (String) State in which the subject of the certificate is located. +- `surname` (String) Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. +- `title` (String) A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject. ### Nested Schema for `api_passthrough.extensions.subject_alternative_names.uniform_resource_identifier.custom_attributes` Required: -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `object_identifier` (String) Specifies the object identifier (OID) of the attribute type of the relative distinguished name (RDN). +- `value` (String) Specifies the attribute value of relative distinguished name (RDN). @@ -179,8 +187,8 @@ Required: Required: -- `name_assigner` (String) -- `party_name` (String) +- `name_assigner` (String) Specifies the name assigner. +- `party_name` (String) Specifies the party name. @@ -188,8 +196,8 @@ Required: Required: -- `type_id` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `type_id` (String) Specifies an OID. +- `value` (String) Specifies an OID value. @@ -199,29 +207,31 @@ Required: Optional: -- `common_name` (String) -- `country` (String) -- `custom_attributes` (Attributes List) Array of X.500 attribute type and value. CustomAttributes cannot be used along with pre-defined attributes. (see [below for nested schema](#nestedatt--api_passthrough--subject--custom_attributes)) -- `distinguished_name_qualifier` (String) -- `generation_qualifier` (String) -- `given_name` (String) -- `initials` (String) -- `locality` (String) -- `organization` (String) -- `organizational_unit` (String) -- `pseudonym` (String) -- `serial_number` (String) -- `state` (String) -- `surname` (String) -- `title` (String) +- `common_name` (String) For CA and end-entity certificates in a private PKI, the common name (CN) can be any string within the length limit. + Note: In publicly trusted certificates, the common name must be a fully qualified domain name (FQDN) associated with the certificate subject. +- `country` (String) Two-digit code that specifies the country in which the certificate subject located. +- `custom_attributes` (Attributes List) Contains a sequence of one or more X.500 relative distinguished names (RDNs), each of which consists of an object identifier (OID) and a value. For more information, see NIST?s definition of [Object Identifier (OID)](https://docs.aws.amazon.com/https://csrc.nist.gov/glossary/term/Object_Identifier). + Custom attributes cannot be used in combination with standard attributes. (see [below for nested schema](#nestedatt--api_passthrough--subject--custom_attributes)) +- `distinguished_name_qualifier` (String) Disambiguating information for the certificate subject. +- `generation_qualifier` (String) Typically a qualifier appended to the name of an individual. Examples include Jr. for junior, Sr. for senior, and III for third. +- `given_name` (String) First name. +- `initials` (String) Concatenation that typically contains the first letter of the *GivenName*, the first letter of the middle name if one exists, and the first letter of the *Surname*. +- `locality` (String) The locality (such as a city or town) in which the certificate subject is located. +- `organization` (String) Legal name of the organization with which the certificate subject is affiliated. +- `organizational_unit` (String) A subdivision or unit of the organization (such as sales or finance) with which the certificate subject is affiliated. +- `pseudonym` (String) Typically a shortened version of a longer *GivenName*. For example, Jonathan is often shortened to John. Elizabeth is often shortened to Beth, Liz, or Eliza. +- `serial_number` (String) The certificate serial number. +- `state` (String) State in which the subject of the certificate is located. +- `surname` (String) Family name. In the US and the UK, for example, the surname of an individual is ordered last. In Asian cultures the surname is typically ordered first. +- `title` (String) A title such as Mr. or Ms., which is pre-pended to the name to refer formally to the certificate subject. ### Nested Schema for `api_passthrough.subject.custom_attributes` Required: -- `object_identifier` (String) String that contains X.509 ObjectIdentifier information. -- `value` (String) +- `object_identifier` (String) Specifies the object identifier (OID) of the attribute type of the relative distinguished name (RDN). +- `value` (String) Specifies the attribute value of relative distinguished name (RDN). @@ -231,8 +241,8 @@ Required: Required: -- `type` (String) -- `value` (Number) +- `type` (String) Specifies whether the ``Value`` parameter represents days, months, or years. +- `value` (Number) A long integer interpreted according to the value of ``Type``, below. ## Import diff --git a/docs/resources/apigateway_authorizer.md b/docs/resources/apigateway_authorizer.md index 50b93764c9..d6a617356c 100644 --- a/docs/resources/apigateway_authorizer.md +++ b/docs/resources/apigateway_authorizer.md @@ -27,7 +27,7 @@ The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that - `authorizer_credentials` (String) Specifies the required credentials as an IAM role for API Gateway to invoke the authorizer. To specify an IAM role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To use resource-based permissions on the Lambda function, specify null. - `authorizer_result_ttl_in_seconds` (Number) The TTL in seconds of cached authorizer results. If it equals 0, authorization caching is disabled. If it is greater than 0, API Gateway will cache authorizer responses. If this field is not set, the default value is 300. The maximum value is 3600, or 1 hour. - `authorizer_uri` (String) Specifies the authorizer's Uniform Resource Identifier (URI). For ``TOKEN`` or ``REQUEST`` authorizers, this must be a well-formed Lambda function URI, for example, ``arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:{account_id}:function:{lambda_function_name}/invocations``. In general, the URI has this form ``arn:aws:apigateway:{region}:lambda:path/{service_api}``, where ``{region}`` is the same as the region hosting the Lambda function, ``path`` indicates that the remaining substring in the URI should be treated as the path to the resource, including the initial ``/``. For Lambda functions, this is usually of the form ``/2015-03-31/functions/[FunctionARN]/invocations``. -- `identity_source` (String) The identity source for which authorization is requested. For a ``TOKEN`` or ``COGNITO_USER_POOLS`` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is ``Auth``, the header mapping expression is ``method.request.header.Auth``. For the ``REQUEST`` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an ``Auth`` header, a ``Name`` query string parameter are defined as identity sources, this value is ``method.request.header.Auth, method.request.querystring.Name``. These parameters will be used to derive the authorization caching key and to perform runtime validation of the ``REQUEST`` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when this is true does the authorizer invoke the authorizer Lambda function, otherwise, it returns a 401 Unauthorized response without calling the Lambda function. The valid value is a string of comma-separated mapping expressions of the specified request parameters. When the authorization caching is not enabled, this property is optional. +- `identity_source` (String) The identity source for which authorization is requested. For a ``TOKEN`` or ``COGNITO_USER_POOLS`` authorizer, this is required and specifies the request header mapping expression for the custom header holding the authorization token submitted by the client. For example, if the token header name is ``Auth``, the header mapping expression is ``method.request.header.Auth``. For the ``REQUEST`` authorizer, this is required when authorization caching is enabled. The value is a comma-separated string of one or more mapping expressions of the specified request parameters. For example, if an ``Auth`` header, a ``Name`` query string parameter are defined as identity sources, this value is ``method.request.header.Auth, method.request.querystring.Name``. These parameters will be used to derive the authorization caching key and to perform runtime validation of the ``REQUEST`` authorizer by verifying all of the identity-related request parameters are present, not null and non-empty. Only when thi - `identity_validation_expression` (String) A validation expression for the incoming identity token. For ``TOKEN`` authorizers, this value is a regular expression. For ``COGNITO_USER_POOLS`` authorizers, API Gateway will match the ``aud`` field of the incoming token from the client against the specified regular expression. It will invoke the authorizer's Lambda function when there is a match. Otherwise, it will return a 401 Unauthorized response without calling the Lambda function. The validation expression does not apply to the ``REQUEST`` authorizer. - `provider_ar_ns` (Set of String) A list of the Amazon Cognito user pool ARNs for the ``COGNITO_USER_POOLS`` authorizer. Each element is of this format: ``arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}``. For a ``TOKEN`` or ``REQUEST`` authorizer, this is not defined. diff --git a/docs/resources/apigateway_method.md b/docs/resources/apigateway_method.md index d1071fd906..be233ad4cb 100644 --- a/docs/resources/apigateway_method.md +++ b/docs/resources/apigateway_method.md @@ -107,12 +107,12 @@ Optional: - `credentials` (String) Specifies the credentials required for the integration, if any. For AWS integrations, three options are available. To specify an IAM Role for API Gateway to assume, use the role's Amazon Resource Name (ARN). To require that the caller's identity be passed through from the request, specify the string ``arn:aws:iam::\*:user/\*``. To use resource-based permissions on supported AWS services, specify null. - `integration_http_method` (String) Specifies the integration's HTTP method type. For the Type property, if you specify ``MOCK``, this property is optional. For Lambda integrations, you must set the integration method to ``POST``. For all other types, you must specify this property. - `integration_responses` (Attributes List) Specifies the integration's responses. (see [below for nested schema](#nestedatt--integration--integration_responses)) -- `passthrough_behavior` (String) Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in ``requestTemplates``. The valid value is one of the following: ``WHEN_NO_MATCH``: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. ``WHEN_NO_TEMPLATES``: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response. ``NEVER``: rejects the method request with an HTTP 415 Unsupported Media Type response when either the method request content type does not match any content type associated with the mapping templates defined in the integration request or no mapping template is defined in the integration request. +- `passthrough_behavior` (String) Specifies how the method request body of an unmapped content type will be passed through the integration request to the back end without transformation. A content type is unmapped if no mapping template is defined in the integration or the content type does not match any of the mapped content types, as specified in ``requestTemplates``. The valid value is one of the following: ``WHEN_NO_MATCH``: passes the method request body through the integration request to the back end without transformation when the method request content type does not match any content type associated with the mapping templates defined in the integration request. ``WHEN_NO_TEMPLATES``: passes the method request body through the integration request to the back end without transformation when no mapping template is defined in the integration request. If a template is defined when this option is selected, the method request of an unmapped content-type will be rejected with an HTTP 415 Unsupported Media Type response - `request_parameters` (Map of String) A key-value map specifying request parameters that are passed from the method request to the back end. The key is an integration request parameter name and the associated value is a method request parameter value or static value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request parameter value must match the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` must be a valid and unique method request parameter name. - `request_templates` (Map of String) Represents 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. The content type value is the key in this map, and the template (as a String) is the value. - `timeout_in_millis` (Number) Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. - `uri` (String) Specifies Uniform Resource Identifier (URI) of the integration endpoint. - For ``HTTP`` or ``HTTP_PROXY`` integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification for standard integrations. If ``connectionType`` is ``VPC_LINK`` specify the Network Load Balancer DNS name. For ``AWS`` or ``AWS_PROXY`` integrations, the URI is of the form ``arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}``. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_api refers to the path to an AWS service resource, including the region of the integrated AWS service, if applicable. For example, for integration with the S3 API of GetObject, the uri can be either ``arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key}`` or ``arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}`` + For ``HTTP`` or ``HTTP_PROXY`` integrations, the URI must be a fully formed, encoded HTTP(S) URL according to the RFC-3986 specification for standard integrations. If ``connectionType`` is ``VPC_LINK`` specify the Network Load Balancer DNS name. For ``AWS`` or ``AWS_PROXY`` integrations, the URI is of the form ``arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}``. Here, {Region} is the API Gateway region (e.g., us-east-1); {service} is the name of the integrated AWS service (e.g., s3); and {subdomain} is a designated subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing {service_api} refers to a supported action {name} plus any required input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing service_ap ### Nested Schema for `integration.integration_responses` diff --git a/docs/resources/appsync_resolver.md b/docs/resources/appsync_resolver.md index ddada6213b..bd0e2a03fb 100644 --- a/docs/resources/appsync_resolver.md +++ b/docs/resources/appsync_resolver.md @@ -3,12 +3,16 @@ page_title: "awscc_appsync_resolver Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::AppSync::Resolver + The AWS::AppSync::Resolver resource defines the logical GraphQL resolver that you attach to fields in a schema. Request and response templates for resolvers are written in Apache Velocity Template Language (VTL) format. For more information about resolvers, see Resolver Mapping Template Reference https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference.html. + When you submit an update, CFNLong updates resources based on differences between what you submit and the stack's current template. To cause this resource to be updated you must change a property value for this resource in the CFNshort template. Changing the S3 file content without changing a property value will not result in an update operation. + See Update Behaviors of Stack Resources https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html in the User Guide. --- # awscc_appsync_resolver (Resource) -Resource Type definition for AWS::AppSync::Resolver +The ``AWS::AppSync::Resolver`` resource defines the logical GraphQL resolver that you attach to fields in a schema. Request and response templates for resolvers are written in Apache Velocity Template Language (VTL) format. For more information about resolvers, see [Resolver Mapping Template Reference](https://docs.aws.amazon.com/appsync/latest/devguide/resolver-mapping-template-reference.html). + When you submit an update, CFNLong updates resources based on differences between what you submit and the stack's current template. To cause this resource to be updated you must change a property value for this resource in the CFNshort template. Changing the S3 file content without changing a property value will not result in an update operation. + See [Update Behaviors of Stack Resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html) in the *User Guide*. @@ -17,41 +21,47 @@ Resource Type definition for AWS::AppSync::Resolver ### Required -- `api_id` (String) The AWS AppSync GraphQL API to which you want to attach this resolver. +- `api_id` (String) The APSYlong GraphQL API to which you want to attach this resolver. - `field_name` (String) The GraphQL field on a type that invokes the resolver. - `type_name` (String) The GraphQL type that invokes this resolver. ### Optional - `caching_config` (Attributes) The caching configuration for the resolver. (see [below for nested schema](#nestedatt--caching_config)) -- `code` (String) The resolver code that contains the request and response functions. When code is used, the runtime is required. +- `code` (String) The ``resolver`` code that contains the request and response functions. When code is used, the ``runtime`` is required. The runtime value must be ``APPSYNC_JS``. - `code_s3_location` (String) The Amazon S3 endpoint. - `data_source_name` (String) The resolver data source name. - `kind` (String) The resolver type. -- `max_batch_size` (Number) The maximum number of resolver request inputs that will be sent to a single AWS Lambda function in a BatchInvoke operation. + + *UNIT*: A UNIT resolver type. A UNIT resolver is the default resolver type. You can use a UNIT resolver to run a GraphQL query against a single data source. + + *PIPELINE*: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of ``Function`` objects in a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources. +- `max_batch_size` (Number) The maximum number of resolver request inputs that will be sent to a single LAMlong function in a ``BatchInvoke`` operation. +- `metrics_config` (String) - `pipeline_config` (Attributes) Functions linked with the pipeline resolver. (see [below for nested schema](#nestedatt--pipeline_config)) -- `request_mapping_template` (String) Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. -- `request_mapping_template_s3_location` (String) The location of a request mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template. +- `request_mapping_template` (String) The request mapping template. + Request mapping templates are optional when using a Lambda data source. For all other data sources, a request mapping template is required. +- `request_mapping_template_s3_location` (String) The location of a request mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. - `response_mapping_template` (String) The response mapping template. -- `response_mapping_template_s3_location` (String) The location of a response mapping template in an Amazon S3 bucket. Use this if you want to provision with a template file in Amazon S3 rather than embedding it in your CloudFormation template. -- `runtime` (Attributes) Describes a runtime used by an AWS AppSync pipeline resolver or AWS AppSync function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. (see [below for nested schema](#nestedatt--runtime)) -- `sync_config` (Attributes) The SyncConfig for a resolver attached to a versioned data source. (see [below for nested schema](#nestedatt--sync_config)) +- `response_mapping_template_s3_location` (String) The location of a response mapping template in an S3 bucket. Use this if you want to provision with a template file in S3 rather than embedding it in your CFNshort template. +- `runtime` (Attributes) Describes a runtime used by an APSYlong resolver or APSYlong function. Specifies the name and version of the runtime to use. Note that if a runtime is specified, code must also be specified. (see [below for nested schema](#nestedatt--runtime)) +- `sync_config` (Attributes) The ``SyncConfig`` for a resolver attached to a versioned data source. (see [below for nested schema](#nestedatt--sync_config)) ### Read-Only - `id` (String) Uniquely identifies the resource. -- `resolver_arn` (String) The Amazon Resource Name (ARN) for the resolver. +- `resolver_arn` (String) ### Nested Schema for `caching_config` Required: -- `ttl` (Number) The TTL in seconds for a resolver that has caching activated. Valid values are 1-36.00 seconds. +- `ttl` (Number) The TTL in seconds for a resolver that has caching activated. + Valid values are 1?3,600 seconds. Optional: -- `caching_keys` (List of String) The caching keys for a resolver that has caching activated. Valid values are entries from the $context.arguments, $context.source, and $context.identity maps. +- `caching_keys` (List of String) The caching keys for a resolver that has caching activated. + Valid values are entries from the ``$context.arguments``, ``$context.source``, and ``$context.identity`` maps. @@ -59,7 +69,7 @@ Optional: Optional: -- `functions` (List of String) A list of Function objects. +- `functions` (List of String) A list of ``Function`` objects. @@ -67,8 +77,8 @@ Optional: Required: -- `name` (String) The name of the runtime to use. -- `runtime_version` (String) The version of the runtime to use. +- `name` (String) The ``name`` of the runtime to use. Currently, the only allowed value is ``APPSYNC_JS``. +- `runtime_version` (String) The ``version`` of the runtime to use. Currently, the only allowed version is ``1.0.0``. @@ -77,11 +87,16 @@ Required: Required: - `conflict_detection` (String) The Conflict Detection strategy to use. + + *VERSION*: Detect conflicts based on object versions for this resolver. + + *NONE*: Do not detect conflicts when invoking this resolver. Optional: - `conflict_handler` (String) The Conflict Resolution strategy to perform in the event of a conflict. -- `lambda_conflict_handler_config` (Attributes) The LambdaConflictHandlerConfig when configuring LAMBDA as the Conflict Handler. (see [below for nested schema](#nestedatt--sync_config--lambda_conflict_handler_config)) + + *OPTIMISTIC_CONCURRENCY*: Resolve conflicts by rejecting mutations when versions don't match the latest version at the server. + + *AUTOMERGE*: Resolve conflicts with the Automerge conflict resolution strategy. + + *LAMBDA*: Resolve conflicts with an LAMlong function supplied in the ``LambdaConflictHandlerConfig``. +- `lambda_conflict_handler_config` (Attributes) The ``LambdaConflictHandlerConfig`` when configuring ``LAMBDA`` as the Conflict Handler. (see [below for nested schema](#nestedatt--sync_config--lambda_conflict_handler_config)) ### Nested Schema for `sync_config.lambda_conflict_handler_config` diff --git a/docs/resources/batch_job_definition.md b/docs/resources/batch_job_definition.md index 4bd2bf3b76..ebe20e012d 100644 --- a/docs/resources/batch_job_definition.md +++ b/docs/resources/batch_job_definition.md @@ -60,6 +60,7 @@ Optional: - `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_properties--network_configuration)) - `privileged` (Boolean) - `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_properties--repository_credentials)) - `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--resource_requirements)) - `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--container_properties--runtime_platform)) - `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_properties--secrets)) @@ -169,6 +170,14 @@ Optional: - `assign_public_ip` (String) + +### Nested Schema for `container_properties.repository_credentials` + +Required: + +- `credentials_parameter` (String) + + ### Nested Schema for `container_properties.resource_requirements` @@ -426,6 +435,7 @@ Optional: - `network_configuration` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--network_configuration)) - `privileged` (Boolean) - `readonly_root_filesystem` (Boolean) +- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--repository_credentials)) - `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--resource_requirements)) - `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--runtime_platform)) - `secrets` (Attributes List) (see [below for nested schema](#nestedatt--node_properties--node_range_properties--container--secrets)) @@ -535,6 +545,14 @@ Optional: - `assign_public_ip` (String) + +### Nested Schema for `node_properties.node_range_properties.container.volumes` + +Required: + +- `credentials_parameter` (String) + + ### Nested Schema for `node_properties.node_range_properties.container.volumes` diff --git a/docs/resources/cloudfront_distribution.md b/docs/resources/cloudfront_distribution.md index 463e43b573..82e18687b8 100644 --- a/docs/resources/cloudfront_distribution.md +++ b/docs/resources/cloudfront_distribution.md @@ -3,12 +3,12 @@ page_title: "awscc_cloudfront_distribution Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::CloudFront::Distribution + A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. --- # awscc_cloudfront_distribution (Resource) -Resource Type definition for AWS::CloudFront::Distribution +A distribution tells CloudFront where you want content to be delivered from, and the details about how to track and manage content delivery. @@ -17,11 +17,11 @@ Resource Type definition for AWS::CloudFront::Distribution ### Required -- `distribution_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config)) +- `distribution_config` (Attributes) The distribution's configuration. (see [below for nested schema](#nestedatt--distribution_config)) ### Optional -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) A complex type that contains zero or more ``Tag`` elements. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -33,82 +33,142 @@ Resource Type definition for AWS::CloudFront::Distribution Required: -- `default_cache_behavior` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior)) -- `enabled` (Boolean) +- `default_cache_behavior` (Attributes) A complex type that describes the default cache behavior if you don't specify a ``CacheBehavior`` element or if files don't match any of the values of ``PathPattern`` in ``CacheBehavior`` elements. You must create exactly one default cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior)) +- `enabled` (Boolean) From this field, you can enable or disable the selected distribution. Optional: -- `aliases` (List of String) -- `cache_behaviors` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors)) +- `aliases` (List of String) A complex type that contains information about CNAMEs (alternate domain names), if any, for this distribution. +- `cache_behaviors` (Attributes List) A complex type that contains zero or more ``CacheBehavior`` elements. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors)) - `cnames` (List of String) -- `comment` (String) -- `continuous_deployment_policy_id` (String) -- `custom_error_responses` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--custom_error_responses)) +- `comment` (String) A comment to describe the distribution. The comment cannot be longer than 128 characters. +- `continuous_deployment_policy_id` (String) The identifier of a continuous deployment policy. For more information, see ``CreateContinuousDeploymentPolicy``. +- `custom_error_responses` (Attributes List) A complex type that controls the following: + + Whether CloudFront replaces HTTP status codes in the 4xx and 5xx range with custom error messages before returning the response to the viewer. + + How long CloudFront caches HTTP status codes in the 4xx and 5xx range. + + For more information about custom error pages, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--custom_error_responses)) - `custom_origin` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--custom_origin)) -- `default_root_object` (String) -- `http_version` (String) -- `ipv6_enabled` (Boolean) -- `logging` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--logging)) -- `origin_groups` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups)) -- `origins` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origins)) -- `price_class` (String) -- `restrictions` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--restrictions)) +- `default_root_object` (String) The object that you want CloudFront to request from your origin (for example, ``index.html``) when a viewer requests the root URL for your distribution (``https://www.example.com``) instead of an object in your distribution (``https://www.example.com/product-description.html``). Specifying a default root object avoids exposing the contents of your distribution. + Specify only the object name, for example, ``index.html``. Don't add a ``/`` before the object name. + If you don't want to specify a default root object when you create a distribution, include an empty ``DefaultRootObject`` element. + To delete the default root object from an existing distribution, update the distribution configuration and include an empty ``DefaultRootObject`` element. + To replace the default root object, update the distribution configuration and specify the new object. + For more information about the default root object, see [Creating a Default Root Object](https://docs.aws.amazon.com/AmazonCloudFront/latest/D +- `http_version` (String) (Optional) Specify the maximum HTTP version(s) that you want viewers to use to communicate with CF. The default value for new distributions is ``http1.1``. + For viewers and CF to use HTTP/2, viewers must support TLSv1.2 or later, and must support Server Name Indication (SNI). + For viewers and CF to use HTTP/3, viewers must support TLSv1.3 and Server Name Indication (SNI). CF supports HTTP/3 connection migration to allow the viewer to switch networks without losing connection. For more information about connection migration, see [Connection Migration](https://docs.aws.amazon.com/https://www.rfc-editor.org/rfc/rfc9000.html#name-connection-migration) at RFC 9000. For more information about supported TLSv1.3 ciphers, see [Supported protocols and ciphers between viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html). +- `ipv6_enabled` (Boolean) If you want CloudFront to respond to IPv6 DNS requests with an IPv6 address for your distribution, specify ``true``. If you specify ``false``, CloudFront responds to IPv6 DNS requests with the DNS response code ``NOERROR`` and with no IP addresses. This allows viewers to submit a second request, for an IPv4 address for your distribution. + In general, you should enable IPv6 if you have users on IPv6 networks who want to access your content. However, if you're using signed URLs or signed cookies to restrict access to your content, and if you're using a custom policy that includes the ``IpAddress`` parameter to restrict the IP addresses that can access your content, don't enable IPv6. If you want to restrict access to some content by IP address and not restrict access to other content (or restrict access but not by IP address), you can create two distributions. For more information, see [Creating a Signed URL Using a Custom Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/Devel +- `logging` (Attributes) A complex type that controls whether access logs are written for the distribution. + For more information about logging, see [Access Logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/AccessLogs.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--logging)) +- `origin_groups` (Attributes) A complex type that contains information about origin groups for this distribution. (see [below for nested schema](#nestedatt--distribution_config--origin_groups)) +- `origins` (Attributes List) A complex type that contains information about origins for this distribution. (see [below for nested schema](#nestedatt--distribution_config--origins)) +- `price_class` (String) The price class that corresponds with the maximum price that you want to pay for CloudFront service. If you specify ``PriceClass_All``, CloudFront responds to requests for your objects from all CloudFront edge locations. + If you specify a price class other than ``PriceClass_All``, CloudFront serves your objects from the CloudFront edge location that has the lowest latency among the edge locations in your price class. Viewers who are in or near regions that are excluded from your specified price class may encounter slower performance. + For more information about price classes, see [Choosing the Price Class for a CloudFront Distribution](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PriceClass.html) in the *Amazon CloudFront Developer Guide*. For information about CloudFront pricing, including how price classes (such as Price Class 100) map to CloudFront regions, see [Amazon CloudFront Pricing](https://docs.aws.amazon.com/cloudfront/pricing/). +- `restrictions` (Attributes) A complex type that identifies ways in which you want to restrict distribution of your content. (see [below for nested schema](#nestedatt--distribution_config--restrictions)) - `s3_origin` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--s3_origin)) -- `staging` (Boolean) -- `viewer_certificate` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--viewer_certificate)) -- `web_acl_id` (String) +- `staging` (Boolean) A Boolean that indicates whether this is a staging distribution. When this value is ``true``, this is a staging distribution. When this value is ``false``, this is not a staging distribution. +- `viewer_certificate` (Attributes) A complex type that determines the distribution's SSL/TLS configuration for communicating with viewers. (see [below for nested schema](#nestedatt--distribution_config--viewer_certificate)) +- `web_acl_id` (String) A unique identifier that specifies the WAF web ACL, if any, to associate with this distribution. To specify a web ACL created using the latest version of WAF, use the ACL ARN, for example ``arn:aws:wafv2:us-east-1:123456789012:global/webacl/ExampleWebACL/473e64fd-f30b-4765-81a0-62ad96dd167a``. To specify a web ACL created using WAF Classic, use the ACL ID, for example ``473e64fd-f30b-4765-81a0-62ad96dd167a``. + WAF is a web application firewall that lets you monitor the HTTP and HTTPS requests that are forwarded to CloudFront, and lets you control access to your content. Based on conditions that you specify, such as the IP addresses that requests originate from or the values of query strings, CloudFront responds to requests either with the requested content or with an HTTP 403 status code (Forbidden). You can also configure CloudFront to return a custom error page when a request is blocked. For more information about WAF, see the [Developer Guide](https://docs.aws.amazon.com/waf/latest ### Nested Schema for `distribution_config.default_cache_behavior` Required: -- `target_origin_id` (String) -- `viewer_protocol_policy` (String) +- `target_origin_id` (String) The value of ``ID`` for the origin that you want CloudFront to route requests to when they use the default cache behavior. +- `viewer_protocol_policy` (String) The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options: + + ``allow-all``: Viewers can use HTTP or HTTPS. + + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. + + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol Optional: -- `allowed_methods` (List of String) -- `cache_policy_id` (String) -- `cached_methods` (List of String) -- `compress` (Boolean) -- `default_ttl` (Number) -- `field_level_encryption_id` (String) -- `forwarded_values` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values)) -- `function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--function_associations)) -- `lambda_function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--lambda_function_associations)) -- `max_ttl` (Number) -- `min_ttl` (Number) -- `origin_request_policy_id` (String) -- `realtime_log_config_arn` (String) -- `response_headers_policy_id` (String) -- `smooth_streaming` (Boolean) -- `trusted_key_groups` (List of String) -- `trusted_signers` (List of String) +- `allowed_methods` (List of String) A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + + CloudFront forwards only ``GET`` and ``HEAD`` requests. + + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + CloudFront forwards ``GET, HEAD, OPTIONS, PUT, PATCH, POST``, and ``DELETE`` requests. + + If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you might not want users to have permissions to delete objects from your origin. +- `cache_policy_id` (String) The unique identifier of the cache policy that is attached to the default cache behavior. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``DefaultCacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +- `cached_methods` (List of String) A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices: + + CloudFront caches responses to ``GET`` and ``HEAD`` requests. + + CloudFront caches responses to ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. +- `compress` (Boolean) Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify ``true``; if not, specify ``false``. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. +- `default_ttl` (Number) This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +- `field_level_encryption_id` (String) The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for the default cache behavior. +- `forwarded_values` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values)) +- `function_associations` (Attributes List) A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--function_associations)) +- `lambda_function_associations` (Attributes List) A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--lambda_function_associations)) +- `max_ttl` (Number) This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +- `min_ttl` (Number) This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +- `origin_request_policy_id` (String) The unique identifier of the origin request policy that is attached to the default cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +- `realtime_log_config_arn` (String) The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. +- `response_headers_policy_id` (String) The identifier for a response headers policy. +- `smooth_streaming` (Boolean) Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify ``true``; if not, specify ``false``. If you specify ``true`` for ``SmoothStreaming``, you can still distribute other content using this cache behavior if the content matches the value of ``PathPattern``. +- `trusted_key_groups` (List of String) A list of key groups that CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `trusted_signers` (List of String) We recommend using ``TrustedKeyGroups`` instead of ``TrustedSigners``. + A list of AWS-account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in a trusted signer's AWS-account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. ### Nested Schema for `distribution_config.default_cache_behavior.forwarded_values` Required: -- `query_string` (Boolean) +- `query_string` (Boolean) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of Optional: -- `cookies` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values--cookies)) -- `headers` (List of String) -- `query_string_cache_keys` (List of String) +- `cookies` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C (see [below for nested schema](#nestedatt--distribution_config--default_cache_behavior--forwarded_values--cookies)) +- `headers` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +- `query_string_cache_keys` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior. ### Nested Schema for `distribution_config.default_cache_behavior.forwarded_values.query_string_cache_keys` Required: -- `forward` (String) +- `forward` (String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. + Amazon S3 doesn't process cookies. When the cache behavior is forw Optional: -- `whitelisted_names` (List of String) +- `whitelisted_names` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se @@ -117,8 +177,8 @@ Optional: Optional: -- `event_type` (String) -- `function_arn` (String) +- `event_type` (String) The event type of the function, either ``viewer-request`` or ``viewer-response``. You cannot use origin-facing event types (``origin-request`` and ``origin-response``) with a CloudFront function. +- `function_arn` (String) The Amazon Resource Name (ARN) of the function. @@ -126,9 +186,14 @@ Optional: Optional: -- `event_type` (String) -- `include_body` (Boolean) -- `lambda_function_arn` (String) +- `event_type` (String) Specifies the event type that triggers a Lambda@Edge function invocation. You can specify the following values: + + ``viewer-request``: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. + + ``origin-request``: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute. + + ``origin-response``: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. + + ``viewer-response``: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. + If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. +- `include_body` (Boolean) A flag that allows a Lambda@Edge function to have read access to the body content. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide. +- `lambda_function_arn` (String) The ARN of the Lambda@Edge function. You must specify the ARN of a function version; you can't specify an alias or $LATEST. @@ -137,53 +202,100 @@ Optional: Required: -- `path_pattern` (String) -- `target_origin_id` (String) -- `viewer_protocol_policy` (String) +- `path_pattern` (String) The pattern (for example, ``images/*.jpg``) that specifies which requests to apply the behavior to. When CloudFront receives a viewer request, the requested path is compared with path patterns in the order in which cache behaviors are listed in the distribution. + You can optionally include a slash (``/``) at the beginning of the path pattern. For example, ``/images/*.jpg``. CloudFront behavior is the same with or without the leading ``/``. + The path pattern for the default cache behavior is ``*`` and cannot be changed. If the request for an object does not match the path pattern for any cache behaviors, CloudFront applies the behavior in the default cache behavior. + For more information, see [Path Pattern](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern) in the *Amazon CloudFront Developer Guide*. +- `target_origin_id` (String) The value of ``ID`` for the origin that you want CloudFront to route requests to when they match this cache behavior. +- `viewer_protocol_policy` (String) The protocol that viewers can use to access the files in the origin specified by ``TargetOriginId`` when a request matches the path pattern in ``PathPattern``. You can specify the following options: + + ``allow-all``: Viewers can use HTTP or HTTPS. + + ``redirect-to-https``: If a viewer submits an HTTP request, CloudFront returns an HTTP status code of 301 (Moved Permanently) to the viewer along with the HTTPS URL. The viewer then resubmits the request using the new URL. + + ``https-only``: If a viewer sends an HTTP request, CloudFront returns an HTTP status code of 403 (Forbidden). + + For more information about requiring the HTTPS protocol, see [Requiring HTTPS Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html) in the *Amazon CloudFront Developer Guide*. + The only way to guarantee that viewers retrieve an object that was fetched from the origin using HTTPS is never to use any other protocol Optional: -- `allowed_methods` (List of String) -- `cache_policy_id` (String) -- `cached_methods` (List of String) -- `compress` (Boolean) -- `default_ttl` (Number) -- `field_level_encryption_id` (String) -- `forwarded_values` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values)) -- `function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--function_associations)) -- `lambda_function_associations` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--lambda_function_associations)) -- `max_ttl` (Number) -- `min_ttl` (Number) -- `origin_request_policy_id` (String) -- `realtime_log_config_arn` (String) -- `response_headers_policy_id` (String) -- `smooth_streaming` (Boolean) -- `trusted_key_groups` (List of String) -- `trusted_signers` (List of String) +- `allowed_methods` (List of String) A complex type that controls which HTTP methods CloudFront processes and forwards to your Amazon S3 bucket or your custom origin. There are three choices: + + CloudFront forwards only ``GET`` and ``HEAD`` requests. + + CloudFront forwards only ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + CloudFront forwards ``GET, HEAD, OPTIONS, PUT, PATCH, POST``, and ``DELETE`` requests. + + If you pick the third choice, you may need to restrict access to your Amazon S3 bucket or to your custom origin so users can't perform operations that you don't want them to. For example, you might not want users to have permissions to delete objects from your origin. +- `cache_policy_id` (String) The unique identifier of the cache policy that is attached to this cache behavior. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + A ``CacheBehavior`` must include either a ``CachePolicyId`` or ``ForwardedValues``. We recommend that you use a ``CachePolicyId``. +- `cached_methods` (List of String) A complex type that controls whether CloudFront caches the response to requests using the specified HTTP methods. There are two choices: + + CloudFront caches responses to ``GET`` and ``HEAD`` requests. + + CloudFront caches responses to ``GET``, ``HEAD``, and ``OPTIONS`` requests. + + If you pick the second choice for your Amazon S3 Origin, you may need to forward Access-Control-Request-Method, Access-Control-Request-Headers, and Origin headers for the responses to be cached correctly. +- `compress` (Boolean) Whether you want CloudFront to automatically compress certain files for this cache behavior. If so, specify true; if not, specify false. For more information, see [Serving Compressed Files](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/ServingCompressedFiles.html) in the *Amazon CloudFront Developer Guide*. +- `default_ttl` (Number) This field is deprecated. We recommend that you use the ``DefaultTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The default amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin does not add HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide +- `field_level_encryption_id` (String) The value of ``ID`` for the field-level encryption configuration that you want CloudFront to use for encrypting specific fields of data for this cache behavior. +- `forwarded_values` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. For more information, see [Working with policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/working-with-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to include values in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + If you want to send values to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-r (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values)) +- `function_associations` (Attributes List) A list of CloudFront functions that are associated with this cache behavior. CloudFront functions must be published to the ``LIVE`` stage to associate them with a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--function_associations)) +- `lambda_function_associations` (Attributes List) A complex type that contains zero or more Lambda@Edge function associations for a cache behavior. (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--lambda_function_associations)) +- `max_ttl` (Number) This field is deprecated. We recommend that you use the ``MaxTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The maximum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. The value that you specify applies only when your origin adds HTTP headers such as ``Cache-Control max-age``, ``Cache-Control s-maxage``, and ``Expires`` to objects. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration. +- `min_ttl` (Number) This field is deprecated. We recommend that you use the ``MinTTL`` field in a cache policy instead of this field. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) or [Using the managed cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html) in the *Amazon CloudFront Developer Guide*. + The minimum amount of time that you want objects to stay in CloudFront caches before CloudFront forwards another request to your origin to determine whether the object has been updated. For more information, see [Managing How Long Content Stays in an Edge Cache (Expiration)](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html) in the *Amazon CloudFront Developer Guide*. + You must specify ``0`` for ``MinTTL`` if you configure CloudFront to forward all headers to your origin (under ``He +- `origin_request_policy_id` (String) The unique identifier of the origin request policy that is attached to this cache behavior. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) or [Using the managed origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html) in the *Amazon CloudFront Developer Guide*. +- `realtime_log_config_arn` (String) The Amazon Resource Name (ARN) of the real-time log configuration that is attached to this cache behavior. For more information, see [Real-time logs](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html) in the *Amazon CloudFront Developer Guide*. +- `response_headers_policy_id` (String) The identifier for a response headers policy. +- `smooth_streaming` (Boolean) Indicates whether you want to distribute media files in the Microsoft Smooth Streaming format using the origin that is associated with this cache behavior. If so, specify ``true``; if not, specify ``false``. If you specify ``true`` for ``SmoothStreaming``, you can still distribute other content using this cache behavior if the content matches the value of ``PathPattern``. +- `trusted_key_groups` (List of String) A list of key groups that CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted key groups, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with a private key whose corresponding public key is in the key group. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. +- `trusted_signers` (List of String) We recommend using ``TrustedKeyGroups`` instead of ``TrustedSigners``. + A list of AWS-account IDs whose public keys CloudFront can use to validate signed URLs or signed cookies. + When a cache behavior contains trusted signers, CloudFront requires signed URLs or signed cookies for all requests that match the cache behavior. The URLs or cookies must be signed with the private key of a CloudFront key pair in the trusted signer's AWS-account. The signed URL or cookie contains information about which public key CloudFront should use to verify the signature. For more information, see [Serving private content](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) in the *Amazon CloudFront Developer Guide*. ### Nested Schema for `distribution_config.cache_behaviors.forwarded_values` Required: -- `query_string` (Boolean) +- `query_string` (Boolean) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Indicates whether you want CloudFront to forward query strings to the origin that is associated with this cache behavior and cache based on the query string parameters. CloudFront behavior depends on the value of Optional: -- `cookies` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values--cookies)) -- `headers` (List of String) -- `query_string_cache_keys` (List of String) +- `cookies` (Attributes) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies whether you want CloudFront to forward cookies to the origin and, if so, which ones. For more information about forwarding cookies to the origin, see [How CloudFront Forwards, Caches, and Logs C (see [below for nested schema](#nestedatt--distribution_config--cache_behaviors--forwarded_values--cookies)) +- `headers` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include headers in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send headers to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that specifies the ``Headers``, if any, that you want CloudFront to forward to the origin for this cache behavior (whitelisted headers). For the headers that you specify, CloudFront also caches separate versio +- `query_string_cache_keys` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include query strings in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send query strings to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + A complex type that contains information about the query string parameters that you want CloudFront to use for caching for this cache behavior. ### Nested Schema for `distribution_config.cache_behaviors.forwarded_values.query_string_cache_keys` Required: -- `forward` (String) +- `forward` (String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Specifies which cookies to forward to the origin for this cache behavior: all, none, or the list of cookies specified in the ``WhitelistedNames`` complex type. + Amazon S3 doesn't process cookies. When the cache behavior is forw Optional: -- `whitelisted_names` (List of String) +- `whitelisted_names` (List of String) This field is deprecated. We recommend that you use a cache policy or an origin request policy instead of this field. + If you want to include cookies in the cache key, use a cache policy. For more information, see [Creating cache policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html#cache-key-create-cache-policy) in the *Amazon CloudFront Developer Guide*. + If you want to send cookies to the origin but not include them in the cache key, use an origin request policy. For more information, see [Creating origin request policies](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-origin-requests.html#origin-request-create-origin-request-policy) in the *Amazon CloudFront Developer Guide*. + Required if you specify ``whitelist`` for the value of ``Forward``. A complex type that specifies how many different cookies you want CloudFront to forward to the origin for this cache behavior and, if you want to forward se @@ -192,8 +304,8 @@ Optional: Optional: -- `event_type` (String) -- `function_arn` (String) +- `event_type` (String) The event type of the function, either ``viewer-request`` or ``viewer-response``. You cannot use origin-facing event types (``origin-request`` and ``origin-response``) with a CloudFront function. +- `function_arn` (String) The Amazon Resource Name (ARN) of the function. @@ -201,9 +313,14 @@ Optional: Optional: -- `event_type` (String) -- `include_body` (Boolean) -- `lambda_function_arn` (String) +- `event_type` (String) Specifies the event type that triggers a Lambda@Edge function invocation. You can specify the following values: + + ``viewer-request``: The function executes when CloudFront receives a request from a viewer and before it checks to see whether the requested object is in the edge cache. + + ``origin-request``: The function executes only when CloudFront sends a request to your origin. When the requested object is in the edge cache, the function doesn't execute. + + ``origin-response``: The function executes after CloudFront receives a response from the origin and before it caches the object in the response. When the requested object is in the edge cache, the function doesn't execute. + + ``viewer-response``: The function executes before CloudFront returns the requested object to the viewer. The function executes regardless of whether the object was already in the edge cache. + If the origin returns an HTTP status code other than HTTP 200 (OK), the function doesn't execute. +- `include_body` (Boolean) A flag that allows a Lambda@Edge function to have read access to the body content. For more information, see [Accessing the Request Body by Choosing the Include Body Option](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-include-body-access.html) in the Amazon CloudFront Developer Guide. +- `lambda_function_arn` (String) The ARN of the Lambda@Edge function. You must specify the ARN of a function version; you can't specify an alias or $LATEST. @@ -212,13 +329,24 @@ Optional: Required: -- `error_code` (Number) +- `error_code` (Number) The HTTP status code for which you want to specify a custom error page and/or a caching duration. Optional: -- `error_caching_min_ttl` (Number) -- `response_code` (Number) -- `response_page_path` (String) +- `error_caching_min_ttl` (Number) The minimum amount of time, in seconds, that you want CloudFront to cache the HTTP status code specified in ``ErrorCode``. When this time period has elapsed, CloudFront queries your origin to see whether the problem that caused the error has been resolved and the requested object is now available. + For more information, see [Customizing Error Responses](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) in the *Amazon CloudFront Developer Guide*. +- `response_code` (Number) The HTTP status code that you want CloudFront to return to the viewer along with the custom error page. There are a variety of reasons that you might want CloudFront to return a status code different from the status code that your origin returned to CloudFront, for example: + + Some Internet devices (some firewalls and corporate proxies, for example) intercept HTTP 4xx and 5xx and prevent the response from being returned to the viewer. If you substitute ``200``, the response typically won't be intercepted. + + If you don't care about distinguishing among different client errors or server errors, you can specify ``400`` or ``500`` as the ``ResponseCode`` for all 4xx or 5xx errors. + + You might want to return a ``200`` status code (OK) and static website so your customers don't know that your website is down. + + If you specify a value for ``ResponseCode``, you must also specify a value for ``ResponsePagePath``. +- `response_page_path` (String) The path to the custom error page that you want CloudFront to return to a viewer when your origin returns the HTTP status code specified by ``ErrorCode``, for example, ``/4xx-errors/403-forbidden.html``. If you want to store your objects and your custom error pages in different locations, your distribution must include a cache behavior for which the following is true: + + The value of ``PathPattern`` matches the path to your custom error messages. For example, suppose you saved custom error pages for 4xx errors in an Amazon S3 bucket in a directory named ``/4xx-errors``. Your distribution must include a cache behavior for which the path pattern routes requests for your custom error pages to that location, for example, ``/4xx-errors/*``. + + The value of ``TargetOriginId`` specifies the value of the ``ID`` element for the origin that contains your custom error pages. + + If you specify a value for ``ResponsePagePath``, you must also specify a value for ``ResponseCode``. + We recommend @@ -241,12 +369,12 @@ Optional: Required: -- `bucket` (String) +- `bucket` (String) The Amazon S3 bucket to store the access logs in, for example, ``myawslogbucket.s3.amazonaws.com``. Optional: -- `include_cookies` (Boolean) -- `prefix` (String) +- `include_cookies` (Boolean) Specifies whether you want CloudFront to include cookies in access logs, specify ``true`` for ``IncludeCookies``. If you choose to include cookies in logs, CloudFront logs all cookies regardless of how you configure the cache behaviors for this distribution. If you don't want to include cookies when you create a distribution or if you want to disable include cookies for an existing distribution, specify ``false`` for ``IncludeCookies``. +- `prefix` (String) An optional string that you want CloudFront to prefix to the access log ``filenames`` for this distribution, for example, ``myprefix/``. If you want to enable logging, but you don't want to specify a prefix, you still must include an empty ``Prefix`` element in the ``Logging`` element. @@ -254,35 +382,35 @@ Optional: Required: -- `quantity` (Number) +- `quantity` (Number) The number of origin groups. Optional: -- `items` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items)) +- `items` (Attributes List) The items (origin groups) in a distribution. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items)) ### Nested Schema for `distribution_config.origin_groups.items` Required: -- `failover_criteria` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--failover_criteria)) -- `id` (String) -- `members` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members)) +- `failover_criteria` (Attributes) A complex type that contains information about the failover criteria for an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--failover_criteria)) +- `id` (String) The origin group's ID. +- `members` (Attributes) A complex type that contains information about the origins in an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members)) ### Nested Schema for `distribution_config.origin_groups.items.members` Required: -- `status_codes` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--status_codes)) +- `status_codes` (Attributes) The status codes that, when returned from the primary origin, will trigger CloudFront to failover to the second origin. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--status_codes)) ### Nested Schema for `distribution_config.origin_groups.items.members.status_codes` Required: -- `items` (List of Number) -- `quantity` (Number) +- `items` (List of Number) The items (status codes) for an origin group. +- `quantity` (Number) The number of status codes. @@ -291,15 +419,15 @@ Required: Required: -- `items` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--items)) -- `quantity` (Number) +- `items` (Attributes List) Items (origins) in an origin group. (see [below for nested schema](#nestedatt--distribution_config--origin_groups--items--members--items)) +- `quantity` (Number) The number of origins in an origin group. ### Nested Schema for `distribution_config.origin_groups.items.members.items` Required: -- `origin_id` (String) +- `origin_id` (String) The ID for an origin in an origin group. @@ -310,34 +438,49 @@ Required: Required: -- `domain_name` (String) -- `id` (String) +- `domain_name` (String) The domain name for the origin. + For more information, see [Origin Domain Name](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesDomainName) in the *Amazon CloudFront Developer Guide*. +- `id` (String) A unique identifier for the origin. This value must be unique within the distribution. + Use this value to specify the ``TargetOriginId`` in a ``CacheBehavior`` or ``DefaultCacheBehavior``. Optional: -- `connection_attempts` (Number) -- `connection_timeout` (Number) -- `custom_origin_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--custom_origin_config)) -- `origin_access_control_id` (String) -- `origin_custom_headers` (Attributes List) (see [below for nested schema](#nestedatt--distribution_config--origins--origin_custom_headers)) -- `origin_path` (String) -- `origin_shield` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--origin_shield)) -- `s3_origin_config` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--origins--s3_origin_config)) +- `connection_attempts` (Number) The number of times that CloudFront attempts to connect to the origin. The minimum number is 1, the maximum is 3, and the default (if you don't specify otherwise) is 3. + For a custom origin (including an Amazon S3 bucket that's configured with static website hosting), this value also specifies the number of times that CloudFront attempts to get a response from the origin, in the case of an [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout). + For more information, see [Origin Connection Attempts](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-attempts) in the *Amazon CloudFront Developer Guide*. +- `connection_timeout` (Number) The number of seconds that CloudFront waits when trying to establish a connection to the origin. The minimum timeout is 1 second, the maximum is 10 seconds, and the default (if you don't specify otherwise) is 10 seconds. + For more information, see [Origin Connection Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#origin-connection-timeout) in the *Amazon CloudFront Developer Guide*. +- `custom_origin_config` (Attributes) Use this type to specify an origin that is not an Amazon S3 bucket, with one exception. If the Amazon S3 bucket is configured with static website hosting, use this type. If the Amazon S3 bucket is not configured with static website hosting, use the ``S3OriginConfig`` type instead. (see [below for nested schema](#nestedatt--distribution_config--origins--custom_origin_config)) +- `origin_access_control_id` (String) The unique identifier of an origin access control for this origin. + For more information, see [Restricting access to an Amazon S3 origin](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html) in the *Amazon CloudFront Developer Guide*. +- `origin_custom_headers` (Attributes List) A list of HTTP header names and values that CloudFront adds to the requests that it sends to the origin. + For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/add-origin-custom-headers.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--origins--origin_custom_headers)) +- `origin_path` (String) An optional path that CloudFront appends to the origin domain name when CloudFront requests content from the origin. + For more information, see [Origin Path](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginPath) in the *Amazon CloudFront Developer Guide*. +- `origin_shield` (Attributes) CloudFront Origin Shield. Using Origin Shield can help reduce the load on your origin. + For more information, see [Using Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html) in the *Amazon CloudFront Developer Guide*. (see [below for nested schema](#nestedatt--distribution_config--origins--origin_shield)) +- `s3_origin_config` (Attributes) Use this type to specify an origin that is an Amazon S3 bucket that is not configured with static website hosting. To specify any other type of origin, including an Amazon S3 bucket that is configured with static website hosting, use the ``CustomOriginConfig`` type instead. (see [below for nested schema](#nestedatt--distribution_config--origins--s3_origin_config)) ### Nested Schema for `distribution_config.origins.custom_origin_config` Required: -- `origin_protocol_policy` (String) +- `origin_protocol_policy` (String) Specifies the protocol (HTTP or HTTPS) that CloudFront uses to connect to the origin. Valid values are: + + ``http-only`` ? CloudFront always uses HTTP to connect to the origin. + + ``match-viewer`` ? CloudFront connects to the origin using the same protocol that the viewer used to connect to CloudFront. + + ``https-only`` ? CloudFront always uses HTTPS to connect to the origin. Optional: -- `http_port` (Number) -- `https_port` (Number) -- `origin_keepalive_timeout` (Number) -- `origin_read_timeout` (Number) -- `origin_ssl_protocols` (List of String) +- `http_port` (Number) The HTTP port that CloudFront uses to connect to the origin. Specify the HTTP port that the origin listens on. +- `https_port` (Number) The HTTPS port that CloudFront uses to connect to the origin. Specify the HTTPS port that the origin listens on. +- `origin_keepalive_timeout` (Number) Specifies how long, in seconds, CloudFront persists its connection to the origin. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 5 seconds. + For more information, see [Origin Keep-alive Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginKeepaliveTimeout) in the *Amazon CloudFront Developer Guide*. +- `origin_read_timeout` (Number) Specifies how long, in seconds, CloudFront waits for a response from the origin. This is also known as the *origin response timeout*. The minimum timeout is 1 second, the maximum is 60 seconds, and the default (if you don't specify otherwise) is 30 seconds. + For more information, see [Origin Response Timeout](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginResponseTimeout) in the *Amazon CloudFront Developer Guide*. +- `origin_ssl_protocols` (List of String) Specifies the minimum SSL/TLS protocol that CloudFront uses when connecting to your origin over HTTPS. Valid values include ``SSLv3``, ``TLSv1``, ``TLSv1.1``, and ``TLSv1.2``. + For more information, see [Minimum Origin SSL Protocol](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesOriginSSLProtocols) in the *Amazon CloudFront Developer Guide*. @@ -345,8 +488,8 @@ Optional: Required: -- `header_name` (String) -- `header_value` (String) +- `header_name` (String) The name of a header that you want CloudFront to send to your origin. For more information, see [Adding Custom Headers to Origin Requests](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/forward-custom-headers.html) in the *Amazon CloudFront Developer Guide*. +- `header_value` (String) The value for the header that you specified in the ``HeaderName`` field. @@ -354,8 +497,11 @@ Required: Optional: -- `enabled` (Boolean) -- `origin_shield_region` (String) +- `enabled` (Boolean) A flag that specifies whether Origin Shield is enabled. + When it's enabled, CloudFront routes all requests through Origin Shield, which can help protect your origin. When it's disabled, CloudFront might send requests directly to your origin from multiple edge locations or regional edge caches. +- `origin_shield_region` (String) The AWS-Region for Origin Shield. + Specify the AWS-Region that has the lowest latency to your origin. To specify a region, use the region code, not the region name. For example, specify the US East (Ohio) region as ``us-east-2``. + When you enable CloudFront Origin Shield, you must specify the AWS-Region for Origin Shield. For the list of AWS-Regions that you can specify, and for help choosing the best Region for your origin, see [Choosing the for Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html#choose-origin-shield-region) in the *Amazon CloudFront Developer Guide*. @@ -363,7 +509,13 @@ Optional: Optional: -- `origin_access_identity` (String) +- `origin_access_identity` (String) The CloudFront origin access identity to associate with the origin. Use an origin access identity to configure the origin so that viewers can *only* access objects in an Amazon S3 bucket through CloudFront. The format of the value is: + origin-access-identity/cloudfront/*ID-of-origin-access-identity* + where ``ID-of-origin-access-identity`` is the value that CloudFront returned in the ``ID`` element when you created the origin access identity. + If you want viewers to be able to access objects using either the CloudFront URL or the Amazon S3 URL, specify an empty ``OriginAccessIdentity`` element. + To delete the origin access identity from an existing distribution, update the distribution configuration and include an empty ``OriginAccessIdentity`` element. + To replace the origin access identity, update the distribution configuration and specify the new origin access identity. + For more information about the origin access identity, see [Serving Private Content through CloudFront](https://d @@ -372,18 +524,23 @@ Optional: Required: -- `geo_restriction` (Attributes) (see [below for nested schema](#nestedatt--distribution_config--restrictions--geo_restriction)) +- `geo_restriction` (Attributes) A complex type that controls the countries in which your content is distributed. CF determines the location of your users using ``MaxMind`` GeoIP databases. To disable geo restriction, remove the [Restrictions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-distribution-distributionconfig.html#cfn-cloudfront-distribution-distributionconfig-restrictions) property from your stack template. (see [below for nested schema](#nestedatt--distribution_config--restrictions--geo_restriction)) ### Nested Schema for `distribution_config.restrictions.geo_restriction` Required: -- `restriction_type` (String) +- `restriction_type` (String) The method that you want to use to restrict distribution of your content by country: + + ``none``: No geo restriction is enabled, meaning access to content is not restricted by client geo location. + + ``blacklist``: The ``Location`` elements specify the countries in which you don't want CloudFront to distribute your content. + + ``whitelist``: The ``Location`` elements specify the countries in which you want CloudFront to distribute your content. Optional: -- `locations` (List of String) +- `locations` (List of String) A complex type that contains a ``Location`` element for each country in which you want CloudFront either to distribute your content (``whitelist``) or not distribute your content (``blacklist``). + The ``Location`` element is a two-letter, uppercase country code for a country that you want to include in your ``blacklist`` or ``whitelist``. Include one ``Location`` element for each country. + CloudFront and ``MaxMind`` both use ``ISO 3166`` country codes. For the current list of countries and the corresponding codes, see ``ISO 3166-1-alpha-2`` code on the *International Organization for Standardization* website. You can also refer to the country list on the CloudFront console, which includes both country names and codes. @@ -404,11 +561,29 @@ Optional: Optional: -- `acm_certificate_arn` (String) -- `cloudfront_default_certificate` (Boolean) -- `iam_certificate_id` (String) -- `minimum_protocol_version` (String) -- `ssl_support_method` (String) +- `acm_certificate_arn` (String) In CloudFormation, this field name is ``AcmCertificateArn``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(ACM)](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html), provide the Amazon Resource Name (ARN) of the ACM certificate. CloudFront only supports ACM certificates in the US East (N. Virginia) Region (``us-east-1``). + If you specify an ACM certificate ARN, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +- `cloudfront_default_certificate` (Boolean) If the distribution uses the CloudFront domain name such as ``d111111abcdef8.cloudfront.net``, set this field to ``true``. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), omit this field and specify values for the following fields: + + ``AcmCertificateArn`` or ``IamCertificateId`` (specify a value for one, not both) + + ``MinimumProtocolVersion`` + + ``SslSupportMethod`` +- `iam_certificate_id` (String) In CloudFormation, this field name is ``IamCertificateId``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs) and the SSL/TLS certificate is stored in [(IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html), provide the ID of the IAM certificate. + If you specify an IAM certificate ID, you must also specify values for ``MinimumProtocolVersion`` and ``SSLSupportMethod``. (In CloudFormation, the field name is ``SslSupportMethod``. Note the different capitalization.) +- `minimum_protocol_version` (String) If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify the security policy that you want CloudFront to use for HTTPS connections with viewers. The security policy determines two settings: + + The minimum SSL/TLS protocol that CloudFront can use to communicate with viewers. + + The ciphers that CloudFront can use to encrypt the content that it returns to viewers. + + For more information, see [Security Policy](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValues-security-policy) and [Supported Protocols and Ciphers Between Viewers and CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers) in the *Amazon CloudFront Developer Guide*. + On the CloudFront console, this setting is called *Security Policy*. + When you're using SNI only (you set ``SSLSupportMethod`` to ``sni-onl +- `ssl_support_method` (String) In CloudFormation, this field name is ``SslSupportMethod``. Note the different capitalization. + If the distribution uses ``Aliases`` (alternate domain names or CNAMEs), specify which viewers the distribution accepts HTTPS connections from. + + ``sni-only`` ? The distribution accepts HTTPS connections from only viewers that support [server name indication (SNI)](https://docs.aws.amazon.com/https://en.wikipedia.org/wiki/Server_Name_Indication). This is recommended. Most browsers and clients support SNI. + + ``vip`` ? The distribution accepts HTTPS connections from all viewers including those that don't support SNI. This is not recommended, and results in additional monthly charges from CloudFront. + + ``static-ip`` - Do not specify this value unless your distribution has been enabled for this feature by the CloudFront team. If you have a use case that requires static IP addresses for a distribution, contact CloudFront through the [Center](https://docs.aws.amazon.com/support/home). @@ -417,8 +592,10 @@ Optional: Required: -- `key` (String) -- `value` (String) +- `key` (String) A string that contains ``Tag`` key. + The string length should be between 1 and 128 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``. +- `value` (String) A string that contains an optional ``Tag`` value. + The string length should be between 0 and 256 characters. Valid characters include ``a-z``, ``A-Z``, ``0-9``, space, and the special characters ``_ - . : / = + @``. ## Import diff --git a/docs/resources/cognito_user_pool_risk_configuration_attachment.md b/docs/resources/cognito_user_pool_risk_configuration_attachment.md new file mode 100644 index 0000000000..e810442838 --- /dev/null +++ b/docs/resources/cognito_user_pool_risk_configuration_attachment.md @@ -0,0 +1,171 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_cognito_user_pool_risk_configuration_attachment Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment +--- + +# awscc_cognito_user_pool_risk_configuration_attachment (Resource) + +Resource Type definition for AWS::Cognito::UserPoolRiskConfigurationAttachment + + + + +## Schema + +### Required + +- `client_id` (String) +- `user_pool_id` (String) + +### Optional + +- `account_takeover_risk_configuration` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration)) +- `compromised_credentials_risk_configuration` (Attributes) (see [below for nested schema](#nestedatt--compromised_credentials_risk_configuration)) +- `risk_exception_configuration` (Attributes) (see [below for nested schema](#nestedatt--risk_exception_configuration)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `account_takeover_risk_configuration` + +Required: + +- `actions` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions)) + +Optional: + +- `notify_configuration` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration)) + + +### Nested Schema for `account_takeover_risk_configuration.actions` + +Optional: + +- `high_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--high_action)) +- `low_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--low_action)) +- `medium_action` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--actions--medium_action)) + + +### Nested Schema for `account_takeover_risk_configuration.actions.high_action` + +Required: + +- `event_action` (String) +- `notify` (Boolean) + + + +### Nested Schema for `account_takeover_risk_configuration.actions.low_action` + +Required: + +- `event_action` (String) +- `notify` (Boolean) + + + +### Nested Schema for `account_takeover_risk_configuration.actions.medium_action` + +Required: + +- `event_action` (String) +- `notify` (Boolean) + + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration` + +Required: + +- `source_arn` (String) + +Optional: + +- `block_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--block_email)) +- `from` (String) +- `mfa_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--mfa_email)) +- `no_action_email` (Attributes) (see [below for nested schema](#nestedatt--account_takeover_risk_configuration--notify_configuration--no_action_email)) +- `reply_to` (String) + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.block_email` + +Required: + +- `subject` (String) + +Optional: + +- `html_body` (String) +- `text_body` (String) + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.mfa_email` + +Required: + +- `subject` (String) + +Optional: + +- `html_body` (String) +- `text_body` (String) + + + +### Nested Schema for `account_takeover_risk_configuration.notify_configuration.no_action_email` + +Required: + +- `subject` (String) + +Optional: + +- `html_body` (String) +- `text_body` (String) + + + + + +### Nested Schema for `compromised_credentials_risk_configuration` + +Required: + +- `actions` (Attributes) (see [below for nested schema](#nestedatt--compromised_credentials_risk_configuration--actions)) + +Optional: + +- `event_filter` (List of String) + + +### Nested Schema for `compromised_credentials_risk_configuration.actions` + +Required: + +- `event_action` (String) + + + + +### Nested Schema for `risk_exception_configuration` + +Optional: + +- `blocked_ip_range_list` (List of String) +- `skipped_ip_range_list` (List of String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_cognito_user_pool_risk_configuration_attachment.example +``` diff --git a/docs/resources/config_config_rule.md b/docs/resources/config_config_rule.md index 932be88ef9..9a70761620 100644 --- a/docs/resources/config_config_rule.md +++ b/docs/resources/config_config_rule.md @@ -2,12 +2,18 @@ page_title: "awscc_config_config_rule Resource - terraform-provider-awscc" subcategory: "" description: |- - Schema for AWS Config ConfigRule + You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see Managing the Configuration Recorder https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html. + Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see Service Limits https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html in the Developer Guide. + There are two types of rules: Managed Rules and Custom Rules. You can use the ConfigRule resource to create both CC Managed Rules and CC Custom Rules. + CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see List of Managed Rules https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html. If you are adding an CC managed rule, you must specify the rule's identifi --- # awscc_config_config_rule (Resource) -Schema for AWS Config ConfigRule +You must first create and start the CC configuration recorder in order to create CC managed rules with CFNlong. For more information, see [Managing the Configuration Recorder](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html). + Adds or updates an CC rule to evaluate if your AWS resources comply with your desired configurations. For information on how many CC rules you can have per account, see [Service Limits](https://docs.aws.amazon.com/config/latest/developerguide/configlimits.html) in the *Developer Guide*. + There are two types of rules: *Managed Rules* and *Custom Rules*. You can use the ``ConfigRule`` resource to create both CC Managed Rules and CC Custom Rules. + CC Managed Rules are predefined, customizable rules created by CC. For a list of managed rules, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). If you are adding an CC managed rule, you must specify the rule's identifi ## Example Usage ### Create a Managed Config Rule @@ -32,22 +38,27 @@ resource "awscc_config_config_rule" "example" { ### Required -- `source` (Attributes) Source of events for the AWS Config rule (see [below for nested schema](#nestedatt--source)) +- `source` (Attributes) Provides the rule owner (```` for managed rules, ``CUSTOM_POLICY`` for Custom Policy rules, and ``CUSTOM_LAMBDA`` for Custom Lambda rules), the rule identifier, and the notifications that cause the function to evaluate your AWS resources. (see [below for nested schema](#nestedatt--source)) ### Optional -- `compliance` (Attributes) Compliance details of the Config rule (see [below for nested schema](#nestedatt--compliance)) -- `config_rule_name` (String) Name for the AWS Config rule -- `description` (String) Description provided for the AWS Config rule -- `evaluation_modes` (Attributes List) List of EvaluationModeConfiguration objects (see [below for nested schema](#nestedatt--evaluation_modes)) -- `input_parameters` (String) JSON string passed the Lambda function -- `maximum_execution_frequency` (String) Maximum frequency at which the rule has to be evaluated -- `scope` (Attributes) Scope to constrain which resources can trigger the AWS Config rule (see [below for nested schema](#nestedatt--scope)) +- `compliance` (Attributes) Indicates whether an AWS resource or CC rule is compliant and provides the number of contributors that affect the compliance. (see [below for nested schema](#nestedatt--compliance)) +- `config_rule_name` (String) A name for the CC rule. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the rule name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). +- `description` (String) The description that you provide for the CC rule. +- `evaluation_modes` (Attributes List) The modes the CC rule can be evaluated in. The valid values are distinct objects. By default, the value is Detective evaluation mode only. (see [below for nested schema](#nestedatt--evaluation_modes)) +- `input_parameters` (String) A string, in JSON format, that is passed to the CC rule Lambda function. +- `maximum_execution_frequency` (String) The maximum frequency with which CC runs evaluations for a rule. You can specify a value for ``MaximumExecutionFrequency`` when: + + You are using an AWS managed rule that is triggered at a periodic frequency. + + Your custom rule is triggered when CC delivers the configuration snapshot. For more information, see [ConfigSnapshotDeliveryProperties](https://docs.aws.amazon.com/config/latest/APIReference/API_ConfigSnapshotDeliveryProperties.html). + + By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the ``MaximumExecutionFrequency`` parameter. +- `scope` (Attributes) Defines which resources can trigger an evaluation for the rule. The scope can include one or more resource types, a combination of one resource type and one resource ID, or a combination of a tag key and value. Specify a scope to constrain the resources that can trigger an evaluation for the rule. If you do not specify a scope, evaluations are triggered when any resource in the recording group changes. + The scope can be empty. (see [below for nested schema](#nestedatt--scope)) ### Read-Only -- `arn` (String) ARN generated for the AWS Config rule -- `config_rule_id` (String) ID of the config rule +- `arn` (String) +- `config_rule_id` (String) - `id` (String) Uniquely identifies the resource. @@ -55,22 +66,27 @@ resource "awscc_config_config_rule" "example" { Required: -- `owner` (String) Owner of the config rule +- `owner` (String) Indicates whether AWS or the customer owns and manages the CC rule. + CC Managed Rules are predefined rules owned by AWS. For more information, see [Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html) in the *developer guide*. + CC Custom Rules are rules that you can develop either with Guard (``CUSTOM_POLICY``) or LAMlong (``CUSTOM_LAMBDA``). For more information, see [Custom Rules](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html) in the *developer guide*. Optional: -- `custom_policy_details` (Attributes) Custom policy details when rule is custom owned (see [below for nested schema](#nestedatt--source--custom_policy_details)) -- `source_details` (Attributes List) List of message types that can trigger the rule (see [below for nested schema](#nestedatt--source--source_details)) -- `source_identifier` (String) Identifier for the source of events +- `custom_policy_details` (Attributes) Provides the runtime system, policy definition, and whether debug logging is enabled. Required when owner is set to ``CUSTOM_POLICY``. (see [below for nested schema](#nestedatt--source--custom_policy_details)) +- `source_details` (Attributes List) Provides the source and the message types that cause CC to evaluate your AWS resources against a rule. It also provides the frequency with which you want CC to run evaluations for the rule if the trigger type is periodic. + If the owner is set to ``CUSTOM_POLICY``, the only acceptable values for the CC rule trigger message type are ``ConfigurationItemChangeNotification`` and ``OversizedConfigurationItemChangeNotification``. (see [below for nested schema](#nestedatt--source--source_details)) +- `source_identifier` (String) For CC Managed rules, a predefined identifier from a list. For example, ``IAM_PASSWORD_POLICY`` is a managed rule. To reference a managed rule, see [List of Managed Rules](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html). + For CC Custom Lambda rules, the identifier is the Amazon Resource Name (ARN) of the rule's LAMlong function, such as ``arn:aws:lambda:us-east-2:123456789012:function:custom_rule_name``. + For CC Custom Policy rules, this field will be ignored. ### Nested Schema for `source.custom_policy_details` Optional: -- `enable_debug_log_delivery` (Boolean) Logging toggle for custom policy rule -- `policy_runtime` (String) Runtime system for custom policy rule -- `policy_text` (String) Policy definition containing logic for custom policy rule +- `enable_debug_log_delivery` (Boolean) The boolean expression for enabling debug logging for your CC Custom Policy rule. The default value is ``false``. +- `policy_runtime` (String) The runtime system for your CC Custom Policy rule. Guard is a policy-as-code language that allows you to write policies that are enforced by CC Custom Policy rules. For more information about Guard, see the [Guard GitHub Repository](https://docs.aws.amazon.com/https://github.com/aws-cloudformation/cloudformation-guard). +- `policy_text` (String) The policy definition containing the logic for your CC Custom Policy rule. @@ -78,12 +94,20 @@ Optional: Required: -- `event_source` (String) Source of event that can trigger the rule -- `message_type` (String) Notification type that can trigger the rule +- `event_source` (String) The source of the event, such as an AWS service, that triggers CC to evaluate your AWS resources. +- `message_type` (String) The type of notification that triggers CC to run an evaluation for a rule. You can specify the following notification types: + + ``ConfigurationItemChangeNotification`` - Triggers an evaluation when CC delivers a configuration item as a result of a resource change. + + ``OversizedConfigurationItemChangeNotification`` - Triggers an evaluation when CC delivers an oversized configuration item. CC may generate this notification type when a resource changes and the notification exceeds the maximum size allowed by Amazon SNS. + + ``ScheduledNotification`` - Triggers a periodic evaluation at the frequency specified for ``MaximumExecutionFrequency``. + + ``ConfigurationSnapshotDeliveryCompleted`` - Triggers a periodic evaluation when CC delivers a configuration snapshot. + + If you want your custom rule to be triggered by configuration changes, specify two SourceDetail objects, one for ``ConfigurationItemChangeNotification`` and one for ``OversizedConfigurationItemChangeNotification``. Optional: -- `maximum_execution_frequency` (String) Frequency at which the rule has to be evaluated +- `maximum_execution_frequency` (String) The frequency at which you want CC to run evaluations for a custom rule with a periodic trigger. If you specify a value for ``MaximumExecutionFrequency``, then ``MessageType`` must use the ``ScheduledNotification`` value. + By default, rules with a periodic trigger are evaluated every 24 hours. To change the frequency, specify a valid value for the ``MaximumExecutionFrequency`` parameter. + Based on the valid value you choose, CC runs evaluations once for each valid value. For example, if you choose ``Three_Hours``, CC runs evaluations once every three hours. In this case, ``Three_Hours`` is the frequency of this rule. @@ -100,7 +124,7 @@ Read-Only: Optional: -- `mode` (String) Mode of evaluation of AWS Config rule +- `mode` (String) The mode of an evaluation. The valid values are Detective or Proactive. @@ -108,10 +132,10 @@ Optional: Optional: -- `compliance_resource_id` (String) ID of the only one resource which we want to trigger the rule -- `compliance_resource_types` (List of String) Resource types of resources which we want to trigger the rule -- `tag_key` (String) Tag key applied only to resources which we want to trigger the rule -- `tag_value` (String) Tag value applied only to resources which we want to trigger the rule +- `compliance_resource_id` (String) The ID of the only AWS resource that you want to trigger an evaluation for the rule. If you specify a resource ID, you must specify one resource type for ``ComplianceResourceTypes``. +- `compliance_resource_types` (List of String) The resource types of only those AWS resources that you want to trigger an evaluation for the rule. You can only specify one type if you also specify a resource ID for ``ComplianceResourceId``. +- `tag_key` (String) The tag key that is applied to only those AWS resources that you want to trigger an evaluation for the rule. +- `tag_value` (String) The tag value applied to only those AWS resources that you want to trigger an evaluation for the rule. If you specify a value for ``TagValue``, you must also specify a value for ``TagKey``. ## Import diff --git a/docs/resources/dynamodb_table.md b/docs/resources/dynamodb_table.md index 763d407f7c..c2f8df53ca 100644 --- a/docs/resources/dynamodb_table.md +++ b/docs/resources/dynamodb_table.md @@ -3,12 +3,19 @@ page_title: "awscc_dynamodb_table Resource - terraform-provider-awscc" subcategory: "" description: |- - Version: None. Resource Type definition for AWS::DynamoDB::Table + The AWS::DynamoDB::Table resource creates a DDB table. For more information, see CreateTable https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html in the API Reference. + You should be aware of the following behaviors when working with DDB tables: + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see DynamoDB Table with a DependsOn Attribute https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute. + Our guidance is to use the latest schema documented here for y --- # awscc_dynamodb_table (Resource) -Version: None. Resource Type definition for AWS::DynamoDB::Table +The ``AWS::DynamoDB::Table`` resource creates a DDB table. For more information, see [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) in the *API Reference*. + You should be aware of the following behaviors when working with DDB tables: + + CFNlong typically creates DDB tables in parallel. However, if your template includes multiple DDB tables with indexes, you must declare dependencies so that the tables are created sequentially. DDBlong limits the number of tables with secondary indexes that are in the creating state. If you create multiple tables with indexes at the same time, DDB returns an error and the stack operation fails. For an example, see [DynamoDB Table with a DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#aws-resource-dynamodb-table--examples--DynamoDB_Table_with_a_DependsOn_Attribute). + + Our guidance is to use the latest schema documented here for y @@ -17,26 +24,42 @@ Version: None. Resource Type definition for AWS::DynamoDB::Table ### Required -- `key_schema` (String) +- `key_schema` (String) Specifies the attributes that make up the primary key for the table. The attributes in the ``KeySchema`` property must also be defined in the ``AttributeDefinitions`` property. ### Optional -- `attribute_definitions` (Attributes List) (see [below for nested schema](#nestedatt--attribute_definitions)) -- `billing_mode` (String) -- `contributor_insights_specification` (Attributes) (see [below for nested schema](#nestedatt--contributor_insights_specification)) -- `deletion_protection_enabled` (Boolean) -- `global_secondary_indexes` (Attributes List) (see [below for nested schema](#nestedatt--global_secondary_indexes)) -- `import_source_specification` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification)) -- `kinesis_stream_specification` (Attributes) (see [below for nested schema](#nestedatt--kinesis_stream_specification)) -- `local_secondary_indexes` (Attributes List) (see [below for nested schema](#nestedatt--local_secondary_indexes)) -- `point_in_time_recovery_specification` (Attributes) (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) -- `provisioned_throughput` (Attributes) (see [below for nested schema](#nestedatt--provisioned_throughput)) -- `sse_specification` (Attributes) (see [below for nested schema](#nestedatt--sse_specification)) -- `stream_specification` (Attributes) (see [below for nested schema](#nestedatt--stream_specification)) -- `table_class` (String) -- `table_name` (String) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) -- `time_to_live_specification` (Attributes) (see [below for nested schema](#nestedatt--time_to_live_specification)) +- `attribute_definitions` (Attributes List) A list of attributes that describe the key schema for the table and indexes. + This property is required to create a DDB table. + Update requires: [Some interruptions](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-some-interrupt). Replacement if you edit an existing AttributeDefinition. (see [below for nested schema](#nestedatt--attribute_definitions)) +- `billing_mode` (String) Specify how you are charged for read and write throughput and how you manage capacity. + Valid values include: + + ``PROVISIONED`` - We recommend using ``PROVISIONED`` for predictable workloads. ``PROVISIONED`` sets the billing mode to [Provisioned Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual). + + ``PAY_PER_REQUEST`` - We recommend using ``PAY_PER_REQUEST`` for unpredictable workloads. ``PAY_PER_REQUEST`` sets the billing mode to [On-Demand Mode](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand). + + If not specified, the default is ``PROVISIONED``. +- `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified table. (see [below for nested schema](#nestedatt--contributor_insights_specification)) +- `deletion_protection_enabled` (Boolean) Determines if a table is protected from deletion. When enabled, the table cannot be deleted by any user or process. This setting is disabled by default. For more information, see [Using deletion protection](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.Basics.html#WorkingWithTables.Basics.DeletionProtection) in the *Developer Guide*. +- `global_secondary_indexes` (Attributes List) Global secondary indexes to be created on the table. You can create up to 20 global secondary indexes. + If you update a table to include a new global secondary index, CFNlong initiates the index creation and then proceeds with the stack update. CFNlong doesn't wait for the index to complete creation because the backfilling phase can take a long time, depending on the size of the table. You can't use the index or update the table until the index's status is ``ACTIVE``. You can track its status by using the DynamoDB [DescribeTable](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) command. + If you add or delete an index during an update, we recommend that you don't update any other resources. If your stack fails to update and is rolled back while adding a new index, you must manually delete the index. + Updates are not supported. The following are exceptions: + + If you update either the contributor insights specification or the provisioned throughput value (see [below for nested schema](#nestedatt--global_secondary_indexes)) +- `import_source_specification` (Attributes) Specifies the properties of data being imported from the S3 bucket source to the table. + If you specify the ``ImportSourceSpecification`` property, and also specify either the ``StreamSpecification``, the ``TableClass`` property, or the ``DeletionProtectionEnabled`` property, the IAM entity creating/updating stack must have ``UpdateTable`` permission. (see [below for nested schema](#nestedatt--import_source_specification)) +- `kinesis_stream_specification` (Attributes) The Kinesis Data Streams configuration for the specified table. (see [below for nested schema](#nestedatt--kinesis_stream_specification)) +- `local_secondary_indexes` (Attributes List) Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes. (see [below for nested schema](#nestedatt--local_secondary_indexes)) +- `point_in_time_recovery_specification` (Attributes) The settings used to enable point in time recovery. (see [below for nested schema](#nestedatt--point_in_time_recovery_specification)) +- `provisioned_throughput` (Attributes) Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits``. For more information about the contents of a provisioned throughput structure, see [Amazon DynamoDB Table ProvisionedThroughput](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html). + If you set ``BillingMode`` as ``PROVISIONED``, you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST``, you cannot specify this property. (see [below for nested schema](#nestedatt--provisioned_throughput)) +- `sse_specification` (Attributes) Specifies the settings to enable server-side encryption. (see [below for nested schema](#nestedatt--sse_specification)) +- `stream_specification` (Attributes) The settings for the DDB table stream, which capture changes to items stored in the table. (see [below for nested schema](#nestedatt--stream_specification)) +- `table_class` (String) The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS``. +- `table_name` (String) A name for the table. If you don't specify a name, CFNlong generates a unique physical ID and uses that ID for the table name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `tags` (Attributes List) An array of key-value pairs to apply to this resource. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--tags)) +- `time_to_live_specification` (Attributes) Specifies the Time to Live (TTL) settings for the table. + For detailed information about the limits in DynamoDB, see [Limits in Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the Amazon DynamoDB Developer Guide. (see [below for nested schema](#nestedatt--time_to_live_specification)) ### Read-Only @@ -49,8 +72,11 @@ Version: None. Resource Type definition for AWS::DynamoDB::Table Required: -- `attribute_name` (String) -- `attribute_type` (String) +- `attribute_name` (String) A name for the attribute. +- `attribute_type` (String) The data type for the attribute, where: + + ``S`` - the attribute is of type String + + ``N`` - the attribute is of type Number + + ``B`` - the attribute is of type Binary @@ -58,7 +84,7 @@ Required: Required: -- `enabled` (Boolean) +- `enabled` (Boolean) Indicates whether CloudWatch Contributor Insights are to be enabled (true) or disabled (false). @@ -66,22 +92,33 @@ Required: Required: -- `index_name` (String) -- `key_schema` (Attributes List) (see [below for nested schema](#nestedatt--global_secondary_indexes--key_schema)) -- `projection` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--projection)) +- `index_name` (String) The name of the global secondary index. The name must be unique among all other indexes on this table. +- `key_schema` (Attributes List) The complete key schema for a global secondary index, which consists of one or more pairs of attribute names and key types: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. (see [below for nested schema](#nestedatt--global_secondary_indexes--key_schema)) +- `projection` (Attributes) Represents attributes that are copied (projected) from the table into the global secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. (see [below for nested schema](#nestedatt--global_secondary_indexes--projection)) Optional: -- `contributor_insights_specification` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--contributor_insights_specification)) -- `provisioned_throughput` (Attributes) (see [below for nested schema](#nestedatt--global_secondary_indexes--provisioned_throughput)) +- `contributor_insights_specification` (Attributes) The settings used to enable or disable CloudWatch Contributor Insights for the specified global secondary index. (see [below for nested schema](#nestedatt--global_secondary_indexes--contributor_insights_specification)) +- `provisioned_throughput` (Attributes) Represents the provisioned throughput settings for the specified global secondary index. + For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*. (see [below for nested schema](#nestedatt--global_secondary_indexes--provisioned_throughput)) ### Nested Schema for `global_secondary_indexes.key_schema` Required: -- `attribute_name` (String) -- `key_type` (String) +- `attribute_name` (String) The name of a key attribute. +- `key_type` (String) The role that this key attribute will assume: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. @@ -89,8 +126,12 @@ Required: Optional: -- `non_key_attributes` (List of String) -- `projection_type` (String) +- `non_key_attributes` (List of String) Represents the non-key attribute names which will be projected into the index. + For local secondary indexes, the total count of ``NonKeyAttributes`` summed across all of the local secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. +- `projection_type` (String) The set of attributes that are projected into the index: + + ``KEYS_ONLY`` - Only the index and primary keys are projected into the index. + + ``INCLUDE`` - In addition to the attributes described in ``KEYS_ONLY``, the secondary index will include other non-key attributes that you specify. + + ``ALL`` - All of the table attributes are projected into the index. @@ -98,7 +139,7 @@ Optional: Required: -- `enabled` (Boolean) +- `enabled` (Boolean) Indicates whether CloudWatch Contributor Insights are to be enabled (true) or disabled (false). @@ -106,8 +147,10 @@ Required: Required: -- `read_capacity_units` (Number) -- `write_capacity_units` (Number) +- `read_capacity_units` (Number) The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. +- `write_capacity_units` (Number) The maximum number of writes consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. @@ -116,25 +159,25 @@ Required: Required: -- `input_format` (String) -- `s3_bucket_source` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--s3_bucket_source)) +- `input_format` (String) The format of the source data. Valid values for ``ImportFormat`` are ``CSV``, ``DYNAMODB_JSON`` or ``ION``. +- `s3_bucket_source` (Attributes) The S3 bucket that provides the source for the import. (see [below for nested schema](#nestedatt--import_source_specification--s3_bucket_source)) Optional: -- `input_compression_type` (String) -- `input_format_options` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--input_format_options)) +- `input_compression_type` (String) Type of compression to be used on the input coming from the imported table. +- `input_format_options` (Attributes) Additional properties that specify how the input is formatted, (see [below for nested schema](#nestedatt--import_source_specification--input_format_options)) ### Nested Schema for `import_source_specification.s3_bucket_source` Required: -- `s3_bucket` (String) +- `s3_bucket` (String) The S3 bucket that is being imported from. Optional: -- `s3_bucket_owner` (String) -- `s3_key_prefix` (String) +- `s3_bucket_owner` (String) The account number of the S3 bucket that is being imported from. If the bucket is owned by the requester this is optional. +- `s3_key_prefix` (String) The key prefix shared by all S3 Objects that are being imported. @@ -142,15 +185,15 @@ Optional: Optional: -- `csv` (Attributes) (see [below for nested schema](#nestedatt--import_source_specification--input_format_options--csv)) +- `csv` (Attributes) The options for imported source files in CSV format. The values are Delimiter and HeaderList. (see [below for nested schema](#nestedatt--import_source_specification--input_format_options--csv)) ### Nested Schema for `import_source_specification.input_format_options.csv` Optional: -- `delimiter` (String) -- `header_list` (List of String) +- `delimiter` (String) The delimiter used for separating items in the CSV file being imported. +- `header_list` (List of String) List of the headers used to specify a common header for all source CSV files being imported. If this field is specified then the first line of each CSV file is treated as data instead of the header. If this field is not specified the the first line of each CSV file is treated as the header. @@ -160,11 +203,12 @@ Optional: Required: -- `stream_arn` (String) +- `stream_arn` (String) The ARN for a specific Kinesis data stream. + Length Constraints: Minimum length of 37. Maximum length of 1024. Optional: -- `approximate_creation_date_time_precision` (String) +- `approximate_creation_date_time_precision` (String) The precision for the time and date that the stream was created. @@ -172,17 +216,27 @@ Optional: Required: -- `index_name` (String) -- `key_schema` (Attributes List) (see [below for nested schema](#nestedatt--local_secondary_indexes--key_schema)) -- `projection` (Attributes) (see [below for nested schema](#nestedatt--local_secondary_indexes--projection)) +- `index_name` (String) The name of the local secondary index. The name must be unique among all other indexes on this table. +- `key_schema` (Attributes List) The complete key schema for the local secondary index, consisting of one or more pairs of attribute names and key types: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. (see [below for nested schema](#nestedatt--local_secondary_indexes--key_schema)) +- `projection` (Attributes) Represents attributes that are copied (projected) from the table into the local secondary index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. (see [below for nested schema](#nestedatt--local_secondary_indexes--projection)) ### Nested Schema for `local_secondary_indexes.key_schema` Required: -- `attribute_name` (String) -- `key_type` (String) +- `attribute_name` (String) The name of a key attribute. +- `key_type` (String) The role that this key attribute will assume: + + ``HASH`` - partition key + + ``RANGE`` - sort key + + The partition key of an item is also known as its *hash attribute*. The term "hash attribute" derives from DynamoDB's usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values. + The sort key of an item is also known as its *range attribute*. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value. @@ -190,8 +244,12 @@ Required: Optional: -- `non_key_attributes` (List of String) -- `projection_type` (String) +- `non_key_attributes` (List of String) Represents the non-key attribute names which will be projected into the index. + For local secondary indexes, the total count of ``NonKeyAttributes`` summed across all of the local secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total. +- `projection_type` (String) The set of attributes that are projected into the index: + + ``KEYS_ONLY`` - Only the index and primary keys are projected into the index. + + ``INCLUDE`` - In addition to the attributes described in ``KEYS_ONLY``, the secondary index will include other non-key attributes that you specify. + + ``ALL`` - All of the table attributes are projected into the index. @@ -200,7 +258,7 @@ Optional: Optional: -- `point_in_time_recovery_enabled` (Boolean) +- `point_in_time_recovery_enabled` (Boolean) Indicates whether point in time recovery is enabled (true) or disabled (false) on the table. @@ -208,8 +266,10 @@ Optional: Required: -- `read_capacity_units` (Number) -- `write_capacity_units` (Number) +- `read_capacity_units` (Number) The maximum number of strongly consistent reads consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. +- `write_capacity_units` (Number) The maximum number of writes consumed per second before DynamoDB returns a ``ThrottlingException``. For more information, see [Specifying Read and Write Requirements](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughput.html) in the *Amazon DynamoDB Developer Guide*. + If read/write capacity mode is ``PAY_PER_REQUEST`` the value is set to 0. @@ -217,12 +277,13 @@ Required: Required: -- `sse_enabled` (Boolean) +- `sse_enabled` (Boolean) Indicates whether server-side encryption is done using an AWS managed key or an AWS owned key. If enabled (true), server-side encryption type is set to ``KMS`` and an AWS managed key is used (KMS charges apply). If disabled (false) or not specified, server-side encryption is set to AWS owned key. Optional: -- `kms_master_key_id` (String) -- `sse_type` (String) +- `kms_master_key_id` (String) The KMS key that should be used for the KMS encryption. To specify a key, use its key ID, Amazon Resource Name (ARN), alias name, or alias ARN. Note that you should only provide this parameter if the key is different from the default DynamoDB key ``alias/aws/dynamodb``. +- `sse_type` (String) Server-side encryption type. The only supported value is: + + ``KMS`` - Server-side encryption that uses KMSlong. The key is stored in your account and is managed by KMS (KMS charges apply). @@ -230,7 +291,11 @@ Optional: Required: -- `stream_view_type` (String) +- `stream_view_type` (String) When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: + + ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. + + ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. + + ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream. + + ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream. @@ -238,8 +303,8 @@ Required: Required: -- `key` (String) -- `value` (String) +- `key` (String) The key of the tag. Tag keys are case sensitive. Each DynamoDB table can only have up to one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value. +- `value` (String) The value of the tag. Tag values are case-sensitive and can be null. @@ -247,11 +312,13 @@ Required: Required: -- `enabled` (Boolean) +- `enabled` (Boolean) Indicates whether TTL is to be enabled (true) or disabled (false) on the table. Optional: -- `attribute_name` (String) +- `attribute_name` (String) The name of the TTL attribute used to store the expiration time for items in the table. + + The ``AttributeName`` property is required when enabling the TTL, or when TTL is already enabled. + + To update this property, you must first disable TTL and then enable TTL with the new attribute name. ## Import diff --git a/docs/resources/ec2_ec2_fleet.md b/docs/resources/ec2_ec2_fleet.md index f4e4aef7d0..f807da4163 100644 --- a/docs/resources/ec2_ec2_fleet.md +++ b/docs/resources/ec2_ec2_fleet.md @@ -92,6 +92,7 @@ Optional: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--launch_template_configs--overrides--instance_requirements--network_bandwidth_gbps)) diff --git a/docs/resources/ec2_eip.md b/docs/resources/ec2_eip.md index aaff20ac04..cca57b1ffd 100644 --- a/docs/resources/ec2_eip.md +++ b/docs/resources/ec2_eip.md @@ -2,12 +2,16 @@ page_title: "awscc_ec2_eip Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::EIP + Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance. + You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see Bring Your Own IP Addresses (BYOIP) https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html in the Amazon EC2 User Guide. + For more information, see Elastic IP Addresses https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html in the Amazon EC2 User Guide. --- # awscc_ec2_eip (Resource) -Resource Type definition for AWS::EC2::EIP +Specifies an Elastic IP (EIP) address and can, optionally, associate it with an Amazon EC2 instance. + You can allocate an Elastic IP address from an address pool owned by AWS or from an address pool created from a public IPv4 address range that you have brought to AWS for use with your AWS resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html) in the *Amazon EC2 User Guide*. + For more information, see [Elastic IP Addresses](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html) in the *Amazon EC2 User Guide*. ## Example Usage @@ -45,26 +49,31 @@ resource "awscc_ec2_eip" "main" { ### Optional -- `domain` (String) Indicates whether the Elastic IP address is for use with instances in a VPC or instance in EC2-Classic. +- `domain` (String) The network (``vpc``). + If you define an Elastic IP address and associate it with a VPC that is defined in the same template, you must declare a dependency on the VPC-gateway attachment by using the [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) on this resource. - `instance_id` (String) The ID of the instance. -- `network_border_group` (String) A unique set of Availability Zones, Local Zones, or Wavelength Zones from which Amazon Web Services advertises IP addresses. + Updates to the ``InstanceId`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. +- `network_border_group` (String) A unique set of Availability Zones, Local Zones, or Wavelength Zones from which AWS advertises IP addresses. Use this parameter to limit the IP address to this location. IP addresses cannot move between network border groups. + Use [DescribeAvailabilityZones](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeAvailabilityZones.html) to view the network border groups. - `public_ipv_4_pool` (String) The ID of an address pool that you own. Use this parameter to let Amazon EC2 select an address from the address pool. -- `tags` (Attributes List) Any tags assigned to the EIP. (see [below for nested schema](#nestedatt--tags)) -- `transfer_address` (String) The PublicIP of the EIP generated by resource through transfer from another account + Updates to the ``PublicIpv4Pool`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. +- `tags` (Attributes List) Any tags assigned to the Elastic IP address. + Updates to the ``Tags`` property may require *some interruptions*. Updates on an EIP reassociates the address on its associated resource. (see [below for nested schema](#nestedatt--tags)) +- `transfer_address` (String) The Elastic IP address you are accepting for transfer. You can only accept one transferred address. For more information on Elastic IP address transfers, see [Transfer Elastic IP addresses](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-eips.html#transfer-EIPs-intro) in the *Amazon Virtual Private Cloud User Guide*. ### Read-Only -- `allocation_id` (String) The Allocation ID of the EIP generated by resource. +- `allocation_id` (String) - `id` (String) Uniquely identifies the resource. -- `public_ip` (String) The PublicIP of the EIP generated by resource. +- `public_ip` (String) ### Nested Schema for `tags` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ec2_launch_template.md b/docs/resources/ec2_launch_template.md index e0c886b97c..a7b21df4c1 100644 --- a/docs/resources/ec2_launch_template.md +++ b/docs/resources/ec2_launch_template.md @@ -2,12 +2,23 @@ page_title: "awscc_ec2_launch_template Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::LaunchTemplate + Specifies the properties for creating a launch template. + The minimum required properties for specifying a launch template are as follows: + + You must specify at least one property for the launch template data. + + You do not need to specify a name for the launch template. If you do not specify a name, CFN creates the name for you. + A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ImageId property, which has no default value. If you do not specify an AMI ID for the launch template ImageId property, you must specify an AMI ID for the instance ImageId property. + For more information, see Launch an instance from a launch template https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html in the Amazon EC2 User Guide. --- # awscc_ec2_launch_template (Resource) -Resource Type definition for AWS::EC2::LaunchTemplate +Specifies the properties for creating a launch template. + The minimum required properties for specifying a launch template are as follows: + + You must specify at least one property for the launch template data. + + You do not need to specify a name for the launch template. If you do not specify a name, CFN creates the name for you. + + A launch template can contain some or all of the configuration information to launch an instance. When you launch an instance using a launch template, instance properties that are not specified in the launch template use default values, except the ``ImageId`` property, which has no default value. If you do not specify an AMI ID for the launch template ``ImageId`` property, you must specify an AMI ID for the instance ``ImageId`` property. + For more information, see [Launch an instance from a launch template](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html) in the *Amazon EC2 User Guide*. ## Example Usage @@ -115,15 +126,16 @@ resource "awscc_ec2_launch_template" "with eip" { ### Optional - `launch_template_name` (String) A name for the launch template. -- `tag_specifications` (Attributes List) The tags to apply to the launch template on creation. (see [below for nested schema](#nestedatt--tag_specifications)) +- `tag_specifications` (Attributes List) The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``. + To specify the tags for the resources that are created when an instance is launched, you must use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) - `version_description` (String) A description for the first version of the launch template. ### Read-Only -- `default_version_number` (String) The default version of the launch template +- `default_version_number` (String) - `id` (String) Uniquely identifies the resource. -- `latest_version_number` (String) The latest version of the launch template -- `launch_template_id` (String) LaunchTemplate ID generated by service +- `latest_version_number` (String) +- `launch_template_id` (String) ### Nested Schema for `launch_template_data` @@ -131,46 +143,72 @@ resource "awscc_ec2_launch_template" "with eip" { Optional: - `block_device_mappings` (Attributes List) The block device mapping. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings)) -- `capacity_reservation_specification` (Attributes) Specifies an instance's Capacity Reservation targeting option. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) -- `cpu_options` (Attributes) specifies the CPU options for an instance. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) -- `credit_specification` (Attributes) The user data to make available to the instance. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) -- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. -- `disable_api_termination` (Boolean) If you set this parameter to true, you can't terminate the instance using the Amazon EC2 console, CLI, or API. -- `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. -- `elastic_gpu_specifications` (Attributes List) An elastic GPU to associate with the instance. (see [below for nested schema](#nestedatt--launch_template_data--elastic_gpu_specifications)) -- `elastic_inference_accelerators` (Attributes List) The elastic inference accelerator for the instance. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) -- `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) -- `hibernation_options` (Attributes) Specifies whether your instance is configured for hibernation. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) -- `iam_instance_profile` (Attributes) Specifies an IAM instance profile, which is a container for an IAM role for your instance. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) +- `capacity_reservation_specification` (Attributes) The Capacity Reservation targeting option. If you do not specify this parameter, the instance's Capacity Reservation preference defaults to ``open``, which enables it to run in any open Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification)) +- `cpu_options` (Attributes) The CPU options for the instance. For more information, see [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--cpu_options)) +- `credit_specification` (Attributes) The credit option for CPU usage of the instance. Valid only for T instances. (see [below for nested schema](#nestedatt--launch_template_data--credit_specification)) +- `disable_api_stop` (Boolean) Indicates whether to enable the instance for stop protection. For more information, see [Stop protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection) in the *Amazon Elastic Compute Cloud User Guide*. +- `disable_api_termination` (Boolean) If you set this parameter to ``true``, you can't terminate the instance using the Amazon EC2 console, CLI, or API; otherwise, you can. To change this attribute after launch, use [ModifyInstanceAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyInstanceAttribute.html). Alternatively, if you set ``InstanceInitiatedShutdownBehavior`` to ``terminate``, you can terminate the instance by running the shutdown command from the instance. +- `ebs_optimized` (Boolean) Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance. +- `elastic_gpu_specifications` (Attributes List) Deprecated. + Amazon Elastic Graphics reached end of life on January 8, 2024. For workloads that require graphics acceleration, we recommend that you use Amazon EC2 G4ad, G4dn, or G5 instances. (see [below for nested schema](#nestedatt--launch_template_data--elastic_gpu_specifications)) +- `elastic_inference_accelerators` (Attributes List) An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads. + You cannot specify accelerators from different generations in the same request. + Starting April 15, 2023, AWS will not onboard new customers to Amazon Elastic Inference (EI), and will help current customers migrate their workloads to options that offer better price and performance. After April 15, 2023, new customers will not be able to launch instances with Amazon EI accelerators in Amazon SageMaker, Amazon ECS, or Amazon EC2. However, customers who have used Amazon EI at least once during the past 30-day period are considered current customers and will be able to continue using the service. (see [below for nested schema](#nestedatt--launch_template_data--elastic_inference_accelerators)) +- `enclave_options` (Attributes) Indicates whether the instance is enabled for AWS Nitro Enclaves. For more information, see [What is Nitro Enclaves?](https://docs.aws.amazon.com/enclaves/latest/user/nitro-enclave.html) in the *Nitro Enclaves User Guide*. + You can't enable AWS Nitro Enclaves and hibernation on the same instance. (see [below for nested schema](#nestedatt--launch_template_data--enclave_options)) +- `hibernation_options` (Attributes) Indicates whether an instance is enabled for hibernation. This parameter is valid only if the instance meets the [hibernation prerequisites](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html). For more information, see [Hibernate your instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--hibernation_options)) +- `iam_instance_profile` (Attributes) The name or Amazon Resource Name (ARN) of an IAM instance profile. (see [below for nested schema](#nestedatt--launch_template_data--iam_instance_profile)) - `image_id` (String) The ID of the AMI. Alternatively, you can specify a Systems Manager parameter, which will resolve to an AMI ID on launch. + Valid formats: + + ``ami-17characters00000`` + + ``resolve:ssm:parameter-name`` + + ``resolve:ssm:parameter-name:version-number`` + + ``resolve:ssm:parameter-name:label`` + + For more information, see [Use a Systems Manager parameter to find an AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html#using-systems-manager-parameter-to-find-AMI) in the *Amazon Elastic Compute Cloud User Guide*. - `instance_initiated_shutdown_behavior` (String) Indicates whether an instance stops or terminates when you initiate shutdown from the instance (using the operating system command for system shutdown). + Default: ``stop`` - `instance_market_options` (Attributes) The market (purchasing) option for the instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options)) -- `instance_requirements` (Attributes) The attributes for the instance types. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) -- `instance_type` (String) +- `instance_requirements` (Attributes) The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes. + You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default. + When you specify multiple attributes, you get instance types that satisfy all of the specified attributes. If you specify multiple values for an attribute, you get instance types that satisfy any of the specified values. + To limit the list of instance types from which Amazon EC2 can identify matching instance types, you can use one of the following parameters, but not both in the same request: + + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes. + + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes. + + If you specify ``InstanceReq (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) +- `instance_type` (String) The instance type. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon Elastic Compute Cloud User Guide*. + If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. -- `key_name` (String) The name of the EC2 key pair + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User Provided Kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon EC2 User Guide*. +- `key_name` (String) The name of the key pair. You can create a key pair using [CreateKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateKeyPair.html) or [ImportKeyPair](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ImportKeyPair.html). + If you do not specify a key pair, you can't connect to the instance unless you choose an AMI that is configured to allow users another way to log in. - `license_specifications` (Attributes List) The license configurations. (see [below for nested schema](#nestedatt--launch_template_data--license_specifications)) - `maintenance_options` (Attributes) The maintenance options of your instance. (see [below for nested schema](#nestedatt--launch_template_data--maintenance_options)) -- `metadata_options` (Attributes) The metadata options for the instance. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) -- `monitoring` (Attributes) Specifies whether detailed monitoring is enabled for an instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) -- `network_interfaces` (Attributes List) If you specify a network interface, you must specify any security groups and subnets as part of the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) -- `placement` (Attributes) Specifies the placement of an instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) -- `private_dns_name_options` (Attributes) Describes the options for instance hostnames. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) -- `ram_disk_id` (String) -- `security_group_ids` (List of String) One or more security group IDs. -- `security_groups` (List of String) One or more security group names. -- `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) -- `user_data` (String) The user data to make available to the instance. +- `metadata_options` (Attributes) The metadata options for the instance. For more information, see [Instance metadata and user data](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) in the *Amazon Elastic Compute Cloud User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--metadata_options)) +- `monitoring` (Attributes) The monitoring for the instance. (see [below for nested schema](#nestedatt--launch_template_data--monitoring)) +- `network_interfaces` (Attributes List) One or more network interfaces. If you specify a network interface, you must specify any security groups and subnets as part of the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces)) +- `placement` (Attributes) The placement for the instance. (see [below for nested schema](#nestedatt--launch_template_data--placement)) +- `private_dns_name_options` (Attributes) The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries should be handled. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--private_dns_name_options)) +- `ram_disk_id` (String) The ID of the RAM disk. + We recommend that you use PV-GRUB instead of kernels and RAM disks. For more information, see [User provided kernels](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UserProvidedkernels.html) in the *Amazon Elastic Compute Cloud User Guide*. +- `security_group_ids` (List of String) The IDs of the security groups. You can specify the IDs of existing security groups and references to resources created by the stack template. +- `security_groups` (List of String) One or more security group names. For a nondefault VPC, you must use security group IDs instead. +- `tag_specifications` (Attributes List) The tags to apply to the resources that are created during instance launch. + To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). + To tag the launch template itself, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html#cfn-ec2-launchtemplate-tagspecifications). (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications)) +- `user_data` (String) The user data to make available to the instance. You must provide base64-encoded text. User data is limited to 16 KB. For more information, see [Run commands on your Linux instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) (Linux) or [Work with instance user data](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/instancedata-add-user-data.html) (Windows) in the *Amazon Elastic Compute Cloud User Guide*. + If you are creating the launch template for use with BATCH, the user data must be provided in the [MIME multi-part archive format](https://docs.aws.amazon.com/https://cloudinit.readthedocs.io/en/latest/topics/format.html#mime-multi-part-archive). For more information, see [Amazon EC2 user data in launch templates](https://docs.aws.amazon.com/batch/latest/userguide/launch-templates.html) in the *User Guide*. ### Nested Schema for `launch_template_data.block_device_mappings` Optional: -- `device_name` (String) The user data to make available to the instance. -- `ebs` (Attributes) Parameters for a block device for an EBS volume in an Amazon EC2 launch template. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings--ebs)) +- `device_name` (String) The device name (for example, /dev/sdh or xvdh). +- `ebs` (Attributes) Parameters used to automatically set up EBS volumes when the instance is launched. (see [below for nested schema](#nestedatt--launch_template_data--block_device_mappings--ebs)) - `no_device` (String) To omit the device from the block device mapping, specify an empty string. -- `virtual_name` (String) The virtual device name (ephemeralN). +- `virtual_name` (String) The virtual device name (ephemeralN). Instance store volumes are numbered starting from 0. An instance type with 2 available instance store volumes can specify mappings for ephemeral0 and ephemeral1. The number of available instance store volumes depends on the instance type. After you connect to the instance, you must mount the volume. ### Nested Schema for `launch_template_data.block_device_mappings.ebs` @@ -179,12 +217,25 @@ Optional: - `delete_on_termination` (Boolean) Indicates whether the EBS volume is deleted on instance termination. - `encrypted` (Boolean) Indicates whether the EBS volume is encrypted. Encrypted volumes can only be attached to instances that support Amazon EBS encryption. If you are creating a volume from a snapshot, you can't specify an encryption value. -- `iops` (Number) The number of I/O operations per second (IOPS). -- `kms_key_id` (String) The ARN of the symmetric AWS Key Management Service (AWS KMS) CMK used for encryption. +- `iops` (Number) The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. + The following are the supported values for each volume type: + + ``gp3``: 3,000 - 16,000 IOPS + + ``io1``: 100 - 64,000 IOPS + + ``io2``: 100 - 256,000 IOPS + + For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS. + This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only. +- `kms_key_id` (String) The ARN of the symmetric KMSlong (KMS) CMK used for encryption. - `snapshot_id` (String) The ID of the snapshot. -- `throughput` (Number) The throughput to provision for a gp3 volume, with a maximum of 1,000 MiB/s. -- `volume_size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. -- `volume_type` (String) The volume type. +- `throughput` (Number) The throughput to provision for a ``gp3`` volume, with a maximum of 1,000 MiB/s. + Valid Range: Minimum value of 125. Maximum value of 1000. +- `volume_size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: + + ``gp2`` and ``gp3``: 1 - 16,384 GiB + + ``io1``: 4 - 16,384 GiB + + ``io2``: 4 - 65,536 GiB + + ``st1`` and ``sc1``: 125 - 16,384 GiB + + ``standard``: 1 - 1024 GiB +- `volume_type` (String) The volume type. For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. @@ -193,8 +244,10 @@ Optional: Optional: -- `capacity_reservation_preference` (String) Indicates the instance's Capacity Reservation preferences. -- `capacity_reservation_target` (Attributes) Specifies a target Capacity Reservation. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification--capacity_reservation_target)) +- `capacity_reservation_preference` (String) Indicates the instance's Capacity Reservation preferences. Possible preferences include: + + ``open`` - The instance can run in any ``open`` Capacity Reservation that has matching attributes (instance type, platform, Availability Zone). + + ``none`` - The instance avoids running in a Capacity Reservation even if one is available. The instance runs in On-Demand capacity. +- `capacity_reservation_target` (Attributes) Information about the target Capacity Reservation or Capacity Reservation group. (see [below for nested schema](#nestedatt--launch_template_data--capacity_reservation_specification--capacity_reservation_target)) ### Nested Schema for `launch_template_data.capacity_reservation_specification.capacity_reservation_target` @@ -211,9 +264,9 @@ Optional: Optional: -- `amd_sev_snp` (String) Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. +- `amd_sev_snp` (String) Indicates whether to enable the instance for AMD SEV-SNP. AMD SEV-SNP is supported with M6a, R6a, and C6a instance types only. For more information, see [AMD SEV-SNP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sev-snp.html). - `core_count` (Number) The number of CPU cores for the instance. -- `threads_per_core` (Number) The number of threads per CPU core. To disable multithreading for the instance, specify a value of 1. Otherwise, specify the default value of 2. +- `threads_per_core` (Number) The number of threads per CPU core. To disable multithreading for the instance, specify a value of ``1``. Otherwise, specify the default value of ``2``. @@ -221,7 +274,8 @@ Optional: Optional: -- `cpu_credits` (String) The user data to make available to the instance. +- `cpu_credits` (String) The credit option for CPU usage of a T instance. + Valid values: ``standard`` | ``unlimited`` @@ -229,7 +283,7 @@ Optional: Optional: -- `type` (String) The type of Elastic Graphics accelerator. +- `type` (String) The type of Elastic Graphics accelerator. For more information about the values to specify for ``Type``, see [Elastic Graphics Basics](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/elastic-graphics.html#elastic-graphics-basics), specifically the Elastic Graphics accelerator column, in the *Amazon Elastic Compute Cloud User Guide for Windows Instances*. @@ -237,8 +291,9 @@ Optional: Optional: -- `count` (Number) The number of elastic inference accelerators to attach to the instance. -- `type` (String) The type of elastic inference accelerator. +- `count` (Number) The number of elastic inference accelerators to attach to the instance. + Default: 1 +- `type` (String) The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge. @@ -246,7 +301,7 @@ Optional: Optional: -- `enabled` (Boolean) If this parameter is set to true, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. +- `enabled` (Boolean) If this parameter is set to ``true``, the instance is enabled for AWS Nitro Enclaves; otherwise, it is not enabled for AWS Nitro Enclaves. @@ -254,7 +309,8 @@ Optional: Optional: -- `configured` (Boolean) TIf you set this parameter to true, the instance is enabled for hibernation. +- `configured` (Boolean) If you set this parameter to ``true``, the instance is enabled for hibernation. + Default: ``false`` @@ -272,18 +328,24 @@ Optional: Optional: - `market_type` (String) The market type. -- `spot_options` (Attributes) Specifies options for Spot Instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options--spot_options)) +- `spot_options` (Attributes) The options for Spot Instances. (see [below for nested schema](#nestedatt--launch_template_data--instance_market_options--spot_options)) ### Nested Schema for `launch_template_data.instance_market_options.spot_options` Optional: -- `block_duration_minutes` (Number) Deprecated -- `instance_interruption_behavior` (String) The behavior when a Spot Instance is interrupted. The default is terminate. -- `max_price` (String) The maximum hourly price you're willing to pay for the Spot Instances. +- `block_duration_minutes` (Number) Deprecated. +- `instance_interruption_behavior` (String) The behavior when a Spot Instance is interrupted. The default is ``terminate``. +- `max_price` (String) The maximum hourly price you're willing to pay for the Spot Instances. We do not recommend using this parameter because it can lead to increased interruptions. If you do not specify this parameter, you will pay the current Spot price. + If you specify a maximum price, your Spot Instances will be interrupted more frequently than if you do not specify this parameter. - `spot_instance_type` (String) The Spot Instance request type. -- `valid_until` (String) The end date of the request, in UTC format (YYYY-MM-DDTHH:MM:SSZ). Supported only for persistent requests. + If you are using Spot Instances with an Auto Scaling group, use ``one-time`` requests, as the Amazon EC2 Auto Scaling service handles requesting new Spot Instances whenever the group is below its desired capacity. +- `valid_until` (String) The end date of the request, in UTC format (*YYYY-MM-DD*T*HH:MM:SS*Z). Supported only for persistent requests. + + For a persistent request, the request remains active until the ``ValidUntil`` date and time is reached. Otherwise, the request remains active until you cancel it. + + For a one-time request, ``ValidUntil`` is not supported. The request remains active until all instances launch or you cancel the request. + + Default: 7 days from the current date @@ -292,29 +354,111 @@ Optional: Optional: -- `accelerator_count` (Attributes) The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferential chips) on an instance. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_count)) +- `accelerator_count` (Attributes) The minimum and maximum number of accelerators (GPUs, FPGAs, or AWS Inferentia chips) on an instance. + To exclude accelerator-enabled instance types, set ``Max`` to ``0``. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_count)) - `accelerator_manufacturers` (List of String) Indicates whether instance types must have accelerators by specific manufacturers. + + For instance types with AWS devices, specify ``amazon-web-services``. + + For instance types with AMD devices, specify ``amd``. + + For instance types with Habana devices, specify ``habana``. + + For instance types with NVIDIA devices, specify ``nvidia``. + + For instance types with Xilinx devices, specify ``xilinx``. + + Default: Any manufacturer - `accelerator_names` (List of String) The accelerators that must be on the instance type. -- `accelerator_total_memory_mi_b` (Attributes) The minimum and maximum amount of total accelerator memory, in MiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_total_memory_mi_b)) + + For instance types with NVIDIA A10G GPUs, specify ``a10g``. + + For instance types with NVIDIA A100 GPUs, specify ``a100``. + + For instance types with NVIDIA H100 GPUs, specify ``h100``. + + For instance types with AWS Inferentia chips, specify ``inferentia``. + + For instance types with NVIDIA GRID K520 GPUs, specify ``k520``. + + For instance types with NVIDIA K80 GPUs, specify ``k80``. + + For instance types with NVIDIA M60 GPUs, specify ``m60``. + + For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520``. + + For instance types with NVIDIA T4 GPUs, specify ``t4``. + + For instance types with NVIDIA T4G GPUs, specify ``t4g``. + + For instance types with Xilinx VU9P FPGAs, specify ``vu9p``. + + For instance types with NVIDIA V100 GPUs, specify ``v100``. + + Default: Any accelerator +- `accelerator_total_memory_mi_b` (Attributes) The minimum and maximum amount of total accelerator memory, in MiB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--accelerator_total_memory_mi_b)) - `accelerator_types` (List of String) The accelerator types that must be on the instance type. -- `allowed_instance_types` (List of String) The instance types to apply your specified attributes against. + + For instance types with GPU accelerators, specify ``gpu``. + + For instance types with FPGA accelerators, specify ``fpga``. + + For instance types with inference accelerators, specify ``inference``. + + Default: Any accelerator type +- `allowed_instance_types` (List of String) The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes. + You can use strings with one or more wild cards, represented by an asterisk (``*``), to allow an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. + For example, if you specify ``c5*``,Amazon EC2 will allow the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will allow all the M5a instance types, but not the M5n instance types. + If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``. + Default: All instance types - `bare_metal` (String) Indicates whether bare metal instance types must be included, excluded, or required. -- `baseline_ebs_bandwidth_mbps` (Attributes) The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--baseline_ebs_bandwidth_mbps)) -- `burstable_performance` (String) + + To include bare metal instance types, specify ``included``. + + To require only bare metal instance types, specify ``required``. + + To exclude bare metal instance types, specify ``excluded``. + + Default: ``excluded`` +- `baseline_ebs_bandwidth_mbps` (Attributes) The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS–optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--baseline_ebs_bandwidth_mbps)) +- `burstable_performance` (String) Indicates whether burstable performance T instance types are included, excluded, or required. For more information, see [Burstable performance instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html). + + To include burstable performance instance types, specify ``included``. + + To require only burstable performance instance types, specify ``required``. + + To exclude burstable performance instance types, specify ``excluded``. + + Default: ``excluded`` - `cpu_manufacturers` (List of String) The CPU manufacturers to include. + + For instance types with Intel CPUs, specify ``intel``. + + For instance types with AMD CPUs, specify ``amd``. + + For instance types with AWS CPUs, specify ``amazon-web-services``. + + Don't confuse the CPU manufacturer with the CPU architecture. Instances will be launched with a compatible CPU architecture based on the Amazon Machine Image (AMI) that you specify in your launch template. + Default: Any manufacturer - `excluded_instance_types` (List of String) The instance types to exclude. -- `instance_generations` (List of String) Indicates whether current or previous generation instance types are included. -- `local_storage` (String) The user data to make available to the instance. + You can use strings with one or more wild cards, represented by an asterisk (``*``), to exclude an instance type, size, or generation. The following are examples: ``m5.8xlarge``, ``c5*.*``, ``m5a.*``, ``r*``, ``*3*``. + For example, if you specify ``c5*``,Amazon EC2 will exclude the entire C5 instance family, which includes all C5a and C5n instance types. If you specify ``m5a.*``, Amazon EC2 will exclude all the M5a instance types, but not the M5n instance types. + If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``. + Default: No excluded instance types +- `instance_generations` (List of String) Indicates whether current or previous generation instance types are included. The current generation instance types are recommended for use. Current generation instance types are typically the latest two to three generations in each instance family. For more information, see [Instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. + For current generation instance types, specify ``current``. + For previous generation instance types, specify ``previous``. + Default: Current and previous generation instance types +- `local_storage` (String) Indicates whether instance types with instance store volumes are included, excluded, or required. For more information, [Amazon EC2 instance store](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) in the *Amazon EC2 User Guide*. + + To include instance types with instance store volumes, specify ``included``. + + To require only instance types with instance store volumes, specify ``required``. + + To exclude instance types with instance store volumes, specify ``excluded``. + + Default: ``included`` - `local_storage_types` (List of String) The type of local storage that is required. -- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) The price protection threshold for Spot Instances. -- `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) + + For instance types with hard disk drive (HDD) storage, specify ``hdd``. + + For instance types with solid state drive (SSD) storage, specify ``ssd``. + + Default: ``hdd`` and ``ssd`` +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage of an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To indicate no price protection threshold, specify a high value, such as ``999999``. + If you set ``DesiredCapacityType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instanc +- `memory_gi_b_per_v_cpu` (Attributes) The minimum and maximum amount of memory per vCPU, in GiB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) The minimum and maximum amount of memory, in MiB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--memory_mi_b)) -- `network_bandwidth_gbps` (Attributes) The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_bandwidth_gbps)) -- `network_interface_count` (Attributes) TThe minimum and maximum number of network interfaces. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_interface_count)) -- `on_demand_max_price_percentage_over_lowest_price` (Number) The price protection threshold for On-Demand Instances. +- `network_bandwidth_gbps` (Attributes) The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps). + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_bandwidth_gbps)) +- `network_interface_count` (Attributes) The minimum and maximum number of network interfaces. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--network_interface_count)) +- `on_demand_max_price_percentage_over_lowest_price` (Number) [Price protection] The price protection threshold for On-Demand Instances, as a percentage higher than an identified On-Demand price. The identified On-Demand price is the price of the lowest priced current generation C, M, or R instance type with your specified attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To turn off price protection, specify a high value, such as ``999999``. + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html) and [GetInstanceTypesFromInstanceRequirements](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetInstanceTypesFromInstanceRequirements.html). + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per- - `require_hibernate_support` (Boolean) Indicates whether instance types must support hibernation for On-Demand Instances. -- `spot_max_price_percentage_over_lowest_price` (Number) The price protection threshold for Spot Instances. -- `total_local_storage_gb` (Attributes) The minimum and maximum amount of total local storage, in GB. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--total_local_storage_gb)) + This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html). + Default: ``false`` +- `spot_max_price_percentage_over_lowest_price` (Number) [Price protection] The price protection threshold for Spot Instances, as a percentage higher than an identified Spot price. The identified Spot price is the Spot price of the lowest priced current generation C, M, or R instance type with your specified attributes. If no current generation C, M, or R instance type matches your attributes, then the identified Spot price is from the lowest priced current generation instance types, and failing that, from the lowest priced previous generation instance types that match your attributes. When Amazon EC2 selects instance types with your attributes, it will exclude instance types whose Spot price exceeds your specified threshold. + The parameter accepts an integer, which Amazon EC2 interprets as a percentage. + To indicate no price protection threshold, specify a high value, such as ``999999``. + If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price i +- `total_local_storage_gb` (Attributes) The minimum and maximum amount of total local storage, in GB. + Default: No minimum or maximum limits (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--total_local_storage_gb)) - `v_cpu_count` (Attributes) The minimum and maximum number of vCPUs. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements--v_cpu_count)) @@ -322,8 +466,8 @@ Optional: Optional: -- `max` (Number) The maximum number of accelerators. -- `min` (Number) The minimum number of accelerators. +- `max` (Number) The maximum number of accelerators. To specify no maximum limit, omit this parameter. To exclude accelerator-enabled instance types, set ``Max`` to ``0``. +- `min` (Number) The minimum number of accelerators. To specify no minimum limit, omit this parameter. @@ -331,8 +475,8 @@ Optional: Optional: -- `max` (Number) The maximum amount of accelerator memory, in MiB. -- `min` (Number) The minimum amount of accelerator memory, in MiB. +- `max` (Number) The maximum amount of accelerator memory, in MiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of accelerator memory, in MiB. To specify no minimum limit, omit this parameter. @@ -340,8 +484,8 @@ Optional: Optional: -- `max` (Number) The maximum baseline bandwidth, in Mbps. -- `min` (Number) The minimum baseline bandwidth, in Mbps. +- `max` (Number) The maximum baseline bandwidth, in Mbps. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum baseline bandwidth, in Mbps. To specify no minimum limit, omit this parameter. @@ -349,8 +493,8 @@ Optional: Optional: -- `max` (Number) The maximum amount of memory per vCPU, in GiB. -- `min` (Number) TThe minimum amount of memory per vCPU, in GiB. +- `max` (Number) The maximum amount of memory per vCPU, in GiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of memory per vCPU, in GiB. To specify no minimum limit, omit this parameter. @@ -358,8 +502,8 @@ Optional: Optional: -- `max` (Number) The maximum amount of memory, in MiB. -- `min` (Number) The minimum amount of memory, in MiB. +- `max` (Number) The maximum amount of memory, in MiB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of memory, in MiB. To specify no minimum limit, specify ``0``. @@ -367,8 +511,8 @@ Optional: Optional: -- `max` (Number) The maximum amount of network bandwidth, in Gbps. -- `min` (Number) The minimum amount of network bandwidth, in Gbps. +- `max` (Number) The maximum amount of network bandwidth, in Gbps. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of network bandwidth, in Gbps. If this parameter is not specified, there is no minimum limit. @@ -376,8 +520,8 @@ Optional: Optional: -- `max` (Number) -- `min` (Number) +- `max` (Number) The maximum number of network interfaces. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum number of network interfaces. To specify no minimum limit, omit this parameter. @@ -385,8 +529,8 @@ Optional: Optional: -- `max` (Number) -- `min` (Number) +- `max` (Number) The maximum amount of total local storage, in GB. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum amount of total local storage, in GB. To specify no minimum limit, omit this parameter. @@ -394,8 +538,8 @@ Optional: Optional: -- `max` (Number) The maximum number of vCPUs. -- `min` (Number) The minimum number of vCPUs. +- `max` (Number) The maximum number of vCPUs. To specify no maximum limit, omit this parameter. +- `min` (Number) The minimum number of vCPUs. To specify no minimum limit, specify ``0``. @@ -413,7 +557,7 @@ Optional: Optional: - `auto_recovery` (String) Disables the automatic recovery behavior of your instance or sets it to default. -- `reboot_migration` (String) Disables the automatic reboot-migration behavior of your instance or sets it to default. +- `reboot_migration` (String) @@ -421,11 +565,20 @@ Optional: Optional: -- `http_endpoint` (String) Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is enabled. +- `http_endpoint` (String) Enables or disables the HTTP metadata endpoint on your instances. If the parameter is not specified, the default state is ``enabled``. + If you specify a value of ``disabled``, you will not be able to access your instance metadata. - `http_protocol_ipv_6` (String) Enables or disables the IPv6 endpoint for the instance metadata service. + Default: ``disabled`` - `http_put_response_hop_limit` (Number) The desired HTTP PUT response hop limit for instance metadata requests. The larger the number, the further instance metadata requests can travel. -- `http_tokens` (String) IMDSv2 uses token-backed sessions. -- `instance_metadata_tags` (String) Set to enabled to allow access to instance tags from the instance metadata. + Default: ``1`` + Possible values: Integers from 1 to 64 +- `http_tokens` (String) Indicates whether IMDSv2 is required. + + ``optional`` - IMDSv2 is optional. You can choose whether to send a session token in your instance metadata retrieval requests. If you retrieve IAM role credentials without a session token, you receive the IMDSv1 role credentials. If you retrieve IAM role credentials using a valid session token, you receive the IMDSv2 role credentials. + + ``required`` - IMDSv2 is required. You must send a session token in your instance metadata retrieval requests. With this option, retrieving the IAM role credentials always returns IMDSv2 credentials; IMDSv1 credentials are not available. + + Default: If the value of ``ImdsSupport`` for the Amazon Machine Image (AMI) for your instance is ``v2.0``, the default is ``required``. +- `instance_metadata_tags` (String) Set to ``enabled`` to allow access to instance tags from the instance metadata. Set to ``disabled`` to turn off access to instance tags from the instance metadata. For more information, see [Work with instance tags using the instance metadata](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS). + Default: ``disabled`` @@ -433,7 +586,7 @@ Optional: Optional: -- `enabled` (Boolean) Specify true to enable detailed monitoring. +- `enabled` (Boolean) Specify ``true`` to enable detailed monitoring. Otherwise, basic monitoring is enabled. @@ -441,24 +594,28 @@ Optional: Optional: -- `associate_carrier_ip_address` (Boolean) Indicates whether to associate a Carrier IP address with eth0 for a new network interface. +- `associate_carrier_ip_address` (Boolean) Associates a Carrier IP address with eth0 for a new network interface. + Use this option when you launch an instance in a Wavelength Zone and want to associate a Carrier IP address with the network interface. For more information about Carrier IP addresses, see [Carrier IP addresses](https://docs.aws.amazon.com/wavelength/latest/developerguide/how-wavelengths-work.html#provider-owned-ip) in the *Developer Guide*. - `associate_public_ip_address` (Boolean) Associates a public IPv4 address with eth0 for a new network interface. -- `connection_tracking_specification` (Attributes) Allows customer to specify Connection Tracking options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--connection_tracking_specification)) + AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [Amazon VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/). +- `connection_tracking_specification` (Attributes) A connection tracking specification for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--connection_tracking_specification)) - `delete_on_termination` (Boolean) Indicates whether the network interface is deleted when the instance is terminated. - `description` (String) A description for the network interface. - `device_index` (Number) The device index for the network interface attachment. -- `ena_srd_specification` (Attributes) Allows customer to specify ENA-SRD options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) +- `ena_srd_specification` (Attributes) The ENA Express configuration for the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification)) - `groups` (List of String) The IDs of one or more security groups. -- `interface_type` (String) The type of network interface. -- `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. -- `ipv_4_prefixes` (Attributes List) One or more IPv4 prefixes to be assigned to the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_4_prefixes)) -- `ipv_6_address_count` (Number) The number of IPv6 addresses to assign to a network interface. -- `ipv_6_addresses` (Attributes List) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_addresses)) -- `ipv_6_prefix_count` (Number) The number of IPv6 prefixes to be automatically assigned to the network interface. -- `ipv_6_prefixes` (Attributes List) One or more IPv6 prefixes to be assigned to the network interface. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_prefixes)) -- `network_card_index` (Number) The index of the network card. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon Elastic Compute Cloud User Guide*. + If you are not creating an EFA, specify ``interface`` or omit this parameter. + Valid values: ``interface`` | ``efa`` +- `ipv_4_prefix_count` (Number) The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option. +- `ipv_4_prefixes` (Attributes List) One or more IPv4 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv4PrefixCount`` option. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_4_prefixes)) +- `ipv_6_address_count` (Number) The number of IPv6 addresses to assign to a network interface. Amazon EC2 automatically selects the IPv6 addresses from the subnet range. You can't use this option if specifying specific IPv6 addresses. +- `ipv_6_addresses` (Attributes List) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_addresses)) +- `ipv_6_prefix_count` (Number) The number of IPv6 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv6Prefix`` option. +- `ipv_6_prefixes` (Attributes List) One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ipv_6_prefixes)) +- `network_card_index` (Number) The index of the network card. Some instance types support multiple network cards. The primary network interface must be assigned to network card index 0. The default is network card index 0. - `network_interface_id` (String) The ID of the network interface. -- `primary_ipv_6` (Boolean) Enables the first IPv6 global unique address (GUA) on a dual stack or IPv6-only ENI immutable. +- `primary_ipv_6` (Boolean) The primary IPv6 address of the network interface. When you enable an IPv6 GUA address to be a primary IPv6, the first IPv6 GUA will be made the primary IPv6 address until the instance is terminated or the network interface is detached. For more information about primary IPv6 addresses, see [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html). - `private_ip_address` (String) The primary private IPv4 address of the network interface. - `private_ip_addresses` (Attributes List) One or more private IPv4 addresses. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--private_ip_addresses)) - `secondary_private_ip_address_count` (Number) The number of secondary private IPv4 addresses to assign to a network interface. @@ -469,9 +626,9 @@ Optional: Optional: -- `tcp_established_timeout` (Number) Integer value for TCP Established Timeout -- `udp_stream_timeout` (Number) Integer value for UDP Stream Timeout -- `udp_timeout` (Number) Integer value for UDP Timeout +- `tcp_established_timeout` (Number) Timeout (in seconds) for idle TCP connections in an established state. Min: 60 seconds. Max: 432000 seconds (5 days). Default: 432000 seconds. Recommended: Less than 432000 seconds. +- `udp_stream_timeout` (Number) Timeout (in seconds) for idle UDP flows classified as streams which have seen more than one request-response transaction. Min: 60 seconds. Max: 180 seconds (3 minutes). Default: 180 seconds. +- `udp_timeout` (Number) Timeout (in seconds) for idle UDP flows that have seen traffic only in a single direction or a single request-response transaction. Min: 30 seconds. Max: 60 seconds. Default: 30 seconds. @@ -479,15 +636,15 @@ Optional: Optional: -- `ena_srd_enabled` (Boolean) Enables TCP ENA-SRD -- `ena_srd_udp_specification` (Attributes) Allows customer to specify ENA-SRD (UDP) options (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification--ena_srd_udp_specification)) +- `ena_srd_enabled` (Boolean) Indicates whether ENA Express is enabled for the network interface. +- `ena_srd_udp_specification` (Attributes) Configures ENA Express for UDP network traffic. (see [below for nested schema](#nestedatt--launch_template_data--network_interfaces--ena_srd_specification--ena_srd_udp_specification)) ### Nested Schema for `launch_template_data.network_interfaces.ena_srd_specification.ena_srd_udp_specification` Optional: -- `ena_srd_udp_enabled` (Boolean) Enables UDP ENA-SRD +- `ena_srd_udp_enabled` (Boolean) Indicates whether UDP traffic to and from the instance uses ENA Express. To specify this setting, you must first enable ENA Express. @@ -496,7 +653,7 @@ Optional: Optional: -- `ipv_4_prefix` (String) The IPv4 prefix. +- `ipv_4_prefix` (String) The IPv4 prefix. For information, see [Assigning prefixes to Amazon EC2 network interfaces](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-prefix-eni.html) in the *Amazon Elastic Compute Cloud User Guide*. @@ -504,7 +661,7 @@ Optional: Optional: -- `ipv_6_address` (String) +- `ipv_6_address` (String) One or more specific IPv6 addresses from the IPv6 CIDR block range of your subnet. You can't use this option if you're specifying a number of IPv6 addresses. @@ -512,7 +669,7 @@ Optional: Optional: -- `ipv_6_prefix` (String) +- `ipv_6_prefix` (String) The IPv6 prefix. @@ -532,13 +689,13 @@ Optional: - `affinity` (String) The affinity setting for an instance on a Dedicated Host. - `availability_zone` (String) The Availability Zone for the instance. -- `group_id` (String) The Group Id of a placement group. You must specify the Placement Group Group Id to launch an instance in a shared placement group. +- `group_id` (String) The Group Id of a placement group. You must specify the Placement Group *Group Id* to launch an instance in a shared placement group. - `group_name` (String) The name of the placement group for the instance. - `host_id` (String) The ID of the Dedicated Host for the instance. -- `host_resource_group_arn` (String) The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the Tenancy parameter or set it to host. -- `partition_number` (Number) The number of the partition the instance should launch in. Valid only if the placement group strategy is set to partition. +- `host_resource_group_arn` (String) The ARN of the host resource group in which to launch the instances. If you specify a host resource group ARN, omit the *Tenancy* parameter or set it to ``host``. +- `partition_number` (Number) The number of the partition the instance should launch in. Valid only if the placement group strategy is set to ``partition``. - `spread_domain` (String) Reserved for future use. -- `tenancy` (String) 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. +- `tenancy` (String) The tenancy of the instance. An instance with a tenancy of dedicated runs on single-tenant hardware. @@ -548,7 +705,7 @@ Optional: - `enable_resource_name_dns_a_record` (Boolean) Indicates whether to respond to DNS queries for instance hostnames with DNS A records. - `enable_resource_name_dns_aaaa_record` (Boolean) Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. -- `hostname_type` (String) The type of hostname for EC2 instances. +- `hostname_type` (String) The type of hostname for EC2 instances. For IPv4 only subnets, an instance DNS name must be based on the instance IPv4 address. For IPv6 only subnets, an instance DNS name must be based on the instance ID. For dual-stack subnets, you can specify whether DNS names use the instance IPv4 address or the instance ID. For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *User Guide*. @@ -557,15 +714,17 @@ Optional: Optional: - `resource_type` (String) The type of resource to tag. -- `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) + Valid Values lists all resource types for Amazon EC2 that can be tagged. When you create a launch template, you can specify tags for the following resource types only: ``instance`` | ``volume`` | ``network-interface`` | ``spot-instances-request``. If the instance does not include the resource type that you specify, the instance launch fails. For example, not all instance types include a volume. + To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html). +- `tags` (Attributes List) The tags to apply to the resource. (see [below for nested schema](#nestedatt--launch_template_data--tag_specifications--tags)) ### Nested Schema for `launch_template_data.tag_specifications.tags` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -575,7 +734,7 @@ Required: Optional: -- `resource_type` (String) The type of resource to tag. +- `resource_type` (String) The type of resource. To tag the launch template, ``ResourceType`` must be ``launch-template``. - `tags` (Attributes List) The tags for the resource. (see [below for nested schema](#nestedatt--tag_specifications--tags)) @@ -583,8 +742,8 @@ Optional: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ec2_nat_gateway.md b/docs/resources/ec2_nat_gateway.md index 6d30d28bf3..a91a0fb73e 100644 --- a/docs/resources/ec2_nat_gateway.md +++ b/docs/resources/ec2_nat_gateway.md @@ -2,12 +2,18 @@ page_title: "awscc_ec2_nat_gateway Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::NatGateway + Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. + With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see NAT gateways https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html in the Amazon VPC User Guide. + If you add a default route (AWS::EC2::Route resource) that points to a NAT gateway, specify the NAT gateway ID for the route's NatGatewayId property. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the N --- # awscc_ec2_nat_gateway (Resource) -Resource Type definition for AWS::EC2::NatGateway +Specifies a network address translation (NAT) gateway in the specified subnet. You can create either a public NAT gateway or a private NAT gateway. The default is a public NAT gateway. If you create a public NAT gateway, you must specify an elastic IP address. + With a NAT gateway, instances in a private subnet can connect to the internet, other AWS services, or an on-premises network using the IP address of the NAT gateway. For more information, see [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) in the *Amazon VPC User Guide*. + If you add a default route (``AWS::EC2::Route`` resource) that points to a NAT gateway, specify the NAT gateway ID for the route's ``NatGatewayId`` property. + When you associate an Elastic IP address or secondary Elastic IP address with a public NAT gateway, the network border group of the Elastic IP address must match the network border group of the Availability Zone (AZ) that the public NAT gateway is in. Otherwise, the N ## Example Usage @@ -47,18 +53,20 @@ resource "awscc_ec2_nat_gateway" "main" { ### Required -- `subnet_id` (String) +- `subnet_id` (String) The ID of the subnet in which the NAT gateway is located. ### Optional -- `allocation_id` (String) -- `connectivity_type` (String) -- `max_drain_duration_seconds` (Number) -- `private_ip_address` (String) -- `secondary_allocation_ids` (List of String) -- `secondary_private_ip_address_count` (Number) -- `secondary_private_ip_addresses` (List of String) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `allocation_id` (String) [Public NAT gateway only] The allocation ID of the Elastic IP address that's associated with the NAT gateway. This property is required for a public NAT gateway and cannot be specified with a private NAT gateway. +- `connectivity_type` (String) Indicates whether the NAT gateway supports public or private connectivity. The default is public connectivity. +- `max_drain_duration_seconds` (Number) The maximum amount of time to wait (in seconds) before forcibly releasing the IP addresses if connections are still in progress. Default value is 350 seconds. +- `private_ip_address` (String) The private IPv4 address to assign to the NAT gateway. If you don't provide an address, a private IPv4 address will be automatically assigned. +- `secondary_allocation_ids` (List of String) Secondary EIP allocation IDs. For more information, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon VPC User Guide*. +- `secondary_private_ip_address_count` (Number) [Private NAT gateway only] The number of secondary private IPv4 addresses you want to assign to the NAT gateway. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. +- `secondary_private_ip_addresses` (List of String) Secondary private IPv4 addresses. For more information about secondary addresses, see [Create a NAT gateway](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-creating) in the *Amazon Virtual Private Cloud User Guide*. + ``SecondaryPrivateIpAddressCount`` and ``SecondaryPrivateIpAddresses`` cannot be set at the same time. +- `tags` (Attributes List) The tags for the NAT gateway. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -70,8 +78,8 @@ resource "awscc_ec2_nat_gateway" "main" { Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ec2_prefix_list.md b/docs/resources/ec2_prefix_list.md index d574fb4171..ecd46a19a4 100644 --- a/docs/resources/ec2_prefix_list.md +++ b/docs/resources/ec2_prefix_list.md @@ -55,12 +55,12 @@ resource "awscc_ec2_prefix_list" "example_ipv6_prefix_list" { ### Required - `address_family` (String) Ip Version of Prefix List. -- `max_entries` (Number) Max Entries of Prefix List. - `prefix_list_name` (String) Name of Prefix List. ### Optional - `entries` (Attributes List) Entries of Prefix List. (see [below for nested schema](#nestedatt--entries)) +- `max_entries` (Number) Max Entries of Prefix List. - `tags` (Attributes List) Tags for Prefix List (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/ec2_route_table.md b/docs/resources/ec2_route_table.md index 8621d7a2aa..6a9594bc43 100644 --- a/docs/resources/ec2_route_table.md +++ b/docs/resources/ec2_route_table.md @@ -2,12 +2,14 @@ page_title: "awscc_ec2_route_table Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::RouteTable + Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet. + For more information, see Route tables https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html in the Amazon VPC User Guide. --- # awscc_ec2_route_table (Resource) -Resource Type definition for AWS::EC2::RouteTable +Specifies a route table for the specified VPC. After you create a route table, you can add routes and associate the table with a subnet. + For more information, see [Route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) in the *Amazon VPC User Guide*. ## Example Usage @@ -104,15 +106,15 @@ resource "aws_route_table" "public_route_table" { ### Read-Only - `id` (String) Uniquely identifies the resource. -- `route_table_id` (String) The route table ID. +- `route_table_id` (String) ### Nested Schema for `tags` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ec2_security_group_egress.md b/docs/resources/ec2_security_group_egress.md index 06ccc8090d..928ab7221c 100644 --- a/docs/resources/ec2_security_group_egress.md +++ b/docs/resources/ec2_security_group_egress.md @@ -3,12 +3,20 @@ page_title: "awscc_ec2_security_group_egress Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::SecurityGroupEgress + Adds the specified outbound (egress) rule to a security group. + An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see Security group rules https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html. + You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. + Rule changes are propagated to instances associated with the security group as quickly as possible --- # awscc_ec2_security_group_egress (Resource) -Resource Type definition for AWS::EC2::SecurityGroupEgress +Adds the specified outbound (egress) rule to a security group. + An outbound rule permits instances to send traffic to the specified IPv4 or IPv6 address range, the IP addresses that are specified by a prefix list, or the instances that are associated with a destination security group. For more information, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html). + You must specify exactly one of the following destinations: an IPv4 or IPv6 address range, a prefix list, or a security group. Otherwise, the stack launches successfully but the rule is not added to the security group. + You must specify a protocol for each rule (for example, TCP). If the protocol is TCP or UDP, you must also specify a port or port range. If the protocol is ICMP or ICMPv6, you must also specify the ICMP/ICMPv6 type and code. To specify all types or all codes, use -1. + Rule changes are propagated to instances associated with the security group as quickly as possible @@ -18,21 +26,29 @@ Resource Type definition for AWS::EC2::SecurityGroupEgress ### Required - `group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. -- `ip_protocol` (String) [VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. +- `ip_protocol` (String) The IP protocol name (``tcp``, ``udp``, ``icmp``, ``icmpv6``) or number (see [Protocol Numbers](https://docs.aws.amazon.com/http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)). + Use ``-1`` to specify all protocols. When authorizing security group rules, specifying ``-1`` or a protocol number other than ``tcp``, ``udp``, ``icmp``, or ``icmpv6`` allows traffic on all ports, regardless of any port range you specify. For ``tcp``, ``udp``, and ``icmp``, you must specify a port range. For ``icmpv6``, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. ### Optional -- `cidr_ip` (String) The IPv4 ranges -- `cidr_ipv_6` (String) [VPC only] The IPv6 ranges -- `description` (String) Resource Type definition for an egress (outbound) security group rule. -- `destination_prefix_list_id` (String) [EC2-VPC only] The ID of a prefix list. -- `destination_security_group_id` (String) You must specify a destination security group (DestinationPrefixListId or DestinationSecurityGroupId) or a CIDR range (CidrIp or CidrIpv6). -- `from_port` (Number) The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. -- `to_port` (Number) The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes. If you specify all ICMP/ICMPv6 types, you must specify all codes. +- `cidr_ip` (String) The IPv4 address range, in CIDR format. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. +- `cidr_ipv_6` (String) The IPv6 address range, in CIDR format. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). + For examples of rules that you can add to security groups for specific access scenarios, see [Security group rules for different use cases](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html) in the *User Guide*. +- `description` (String) The description of an egress (outbound) security group rule. + Constraints: Up to 255 characters in length. Allowed characters are a-z, A-Z, 0-9, spaces, and ._-:/()#,@[]+=;{}!$* +- `destination_prefix_list_id` (String) The prefix list IDs for an AWS service. This is the AWS service that you want to access through a VPC endpoint from instances associated with the security group. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +- `destination_security_group_id` (String) The ID of the security group. + You must specify a destination security group (``DestinationPrefixListId`` or ``DestinationSecurityGroupId``) or a CIDR range (``CidrIp`` or ``CidrIpv6``). +- `from_port` (Number) If the protocol is TCP or UDP, this is the start of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP type or -1 (all ICMP types). +- `to_port` (Number) If the protocol is TCP or UDP, this is the end of the port range. If the protocol is ICMP or ICMPv6, this is the ICMP code or -1 (all ICMP codes). If the start port is -1 (all ICMP types), then the end port must be -1 (all ICMP codes). ### Read-Only -- `id` (String) The Security Group Rule Id +- `id` (String) The ID of this resource. ## Import diff --git a/docs/resources/ec2_security_group_ingress.md b/docs/resources/ec2_security_group_ingress.md new file mode 100644 index 0000000000..0f5071ec59 --- /dev/null +++ b/docs/resources/ec2_security_group_ingress.md @@ -0,0 +1,58 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_ingress Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::EC2::SecurityGroupIngress +--- + +# awscc_ec2_security_group_ingress (Resource) + +Resource Type definition for AWS::EC2::SecurityGroupIngress + + + + +## Schema + +### Required + +- `ip_protocol` (String) The IP protocol name (tcp, udp, icmp, icmpv6) or number (see Protocol Numbers). + +[VPC only] Use -1 to specify all protocols. When authorizing security group rules, specifying -1 or a protocol number other than tcp, udp, icmp, or icmpv6 allows traffic on all ports, regardless of any port range you specify. For tcp, udp, and icmp, you must specify a port range. For icmpv6, the port range is optional; if you omit the port range, traffic for all types and codes is allowed. + +### Optional + +- `cidr_ip` (String) The IPv4 ranges +- `cidr_ipv_6` (String) [VPC only] The IPv6 ranges +- `description` (String) Updates the description of an ingress (inbound) security group rule. You can replace an existing description, or add a description to a rule that did not have one previously +- `from_port` (Number) The start of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 type number. A value of -1 indicates all ICMP/ICMPv6 types. If you specify all ICMP/ICMPv6 types, you must specify all codes. + +Use this for ICMP and any protocol that uses ports. +- `group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name in the request. For security groups in a nondefault VPC, you must specify the security group ID. + +You must specify the GroupName property or the GroupId property. For security groups that are in a VPC, you must use the GroupId property. +- `group_name` (String) The name of the security group. +- `source_prefix_list_id` (String) [EC2-VPC only] The ID of a prefix list. +- `source_security_group_id` (String) The ID of the security group. You must specify either the security group ID or the security group name. For security groups in a nondefault VPC, you must specify the security group ID. +- `source_security_group_name` (String) [EC2-Classic, default VPC] The name of the source security group. + +You must specify the GroupName property or the GroupId property. For security groups that are in a VPC, you must use the GroupId property. +- `source_security_group_owner_id` (String) [nondefault VPC] The AWS account ID that owns the source security group. You can't specify this property with an IP address range. + +If you specify SourceSecurityGroupName or SourceSecurityGroupId and that security group is owned by a different account than the account creating the stack, you must specify the SourceSecurityGroupOwnerId; otherwise, this property is optional. +- `to_port` (Number) The end of port range for the TCP and UDP protocols, or an ICMP/ICMPv6 code. A value of -1 indicates all ICMP/ICMPv6 codes for the specified ICMP type. If you specify all ICMP/ICMPv6 types, you must specify all codes. + +Use this for ICMP and any protocol that uses ports. + +### Read-Only + +- `id` (String) The Security Group Rule Id + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_security_group_ingress.example +``` diff --git a/docs/resources/ec2_spot_fleet.md b/docs/resources/ec2_spot_fleet.md index dc8372ff5d..7edd895dad 100644 --- a/docs/resources/ec2_spot_fleet.md +++ b/docs/resources/ec2_spot_fleet.md @@ -136,6 +136,7 @@ Optional: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_specifications--instance_requirements--network_bandwidth_gbps)) @@ -364,6 +365,7 @@ Optional: - `instance_generations` (List of String) - `local_storage` (String) - `local_storage_types` (List of String) +- `max_spot_price_as_percentage_of_optimal_on_demand_price` (Number) - `memory_gi_b_per_v_cpu` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--memory_gi_b_per_v_cpu)) - `memory_mi_b` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--memory_mi_b)) - `network_bandwidth_gbps` (Attributes) (see [below for nested schema](#nestedatt--spot_fleet_request_config_data--launch_template_configs--overrides--weighted_capacity--network_bandwidth_gbps)) diff --git a/docs/resources/ec2_subnet.md b/docs/resources/ec2_subnet.md index 97bd0cec66..9d55040c8c 100644 --- a/docs/resources/ec2_subnet.md +++ b/docs/resources/ec2_subnet.md @@ -58,8 +58,8 @@ resource "awscc_ec2_subnet" "main" { ### Read-Only - `id` (String) Uniquely identifies the resource. -- `network_acl_association_id` (String) -- `subnet_id` (String) +- `network_acl_association_id` (String) The ID of the network ACL that is associated with the subnet's VPC +- `subnet_id` (String) The ID of the subnet ### Nested Schema for `private_dns_name_options_on_launch` diff --git a/docs/resources/ec2_subnet_route_table_association.md b/docs/resources/ec2_subnet_route_table_association.md index 4791d1f311..88eb54f034 100644 --- a/docs/resources/ec2_subnet_route_table_association.md +++ b/docs/resources/ec2_subnet_route_table_association.md @@ -2,12 +2,12 @@ page_title: "awscc_ec2_subnet_route_table_association Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::SubnetRouteTableAssociation + Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see AWS::EC2::RouteTable https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html. --- # awscc_ec2_subnet_route_table_association (Resource) -Resource Type definition for AWS::EC2::SubnetRouteTableAssociation +Associates a subnet with a route table. The subnet and route table must be in the same VPC. This association causes traffic originating from the subnet to be routed according to the routes in the route table. A route table can be associated with multiple subnets. To create a route table, see [AWS::EC2::RouteTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-routetable.html). ## Example Usage @@ -51,8 +51,9 @@ resource "awscc_ec2_subnet" "this" { ### Required -- `route_table_id` (String) -- `subnet_id` (String) +- `route_table_id` (String) The ID of the route table. + The physical ID changes when the route table ID is changed. +- `subnet_id` (String) The ID of the subnet. ### Read-Only diff --git a/docs/resources/ec2_volume.md b/docs/resources/ec2_volume.md index 7ae83b3e85..8ca1ba0c7e 100644 --- a/docs/resources/ec2_volume.md +++ b/docs/resources/ec2_volume.md @@ -2,12 +2,25 @@ page_title: "awscc_ec2_volume Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::Volume + Specifies an Amazon Elastic Block Store (Amazon EBS) volume. + When you use CFNlong to update an Amazon EBS volume that modifies Iops, Size, or VolumeType, there is a cooldown period before another operation can occur. This can cause your stack to report being in UPDATE_IN_PROGRESS or UPDATE_ROLLBACK_IN_PROGRESS for long periods of time. + Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback. + Some common scenarios when you might encounter a cooldown period for Amazon EBS include: + + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period. + + You successfully update an Amazon EBS volume and the update succeeds but another change in your update-stack call fails. The rollback will be subject to a cooldown period. + For more information on the coo --- # awscc_ec2_volume (Resource) -Resource Type definition for AWS::EC2::Volume +Specifies an Amazon Elastic Block Store (Amazon EBS) volume. + When you use CFNlong to update an Amazon EBS volume that modifies ``Iops``, ``Size``, or ``VolumeType``, there is a cooldown period before another operation can occur. This can cause your stack to report being in ``UPDATE_IN_PROGRESS`` or ``UPDATE_ROLLBACK_IN_PROGRESS`` for long periods of time. + Amazon EBS does not support sizing down an Amazon EBS volume. CFNlong does not attempt to modify an Amazon EBS volume to a smaller size on rollback. + Some common scenarios when you might encounter a cooldown period for Amazon EBS include: + + You successfully update an Amazon EBS volume and the update succeeds. When you attempt another update within the cooldown window, that update will be subject to a cooldown period. + + You successfully update an Amazon EBS volume and the update succeeds but another change in your ``update-stack`` call fails. The rollback will be subject to a cooldown period. + + For more information on the coo ## Example Usage @@ -31,21 +44,52 @@ resource "awscc_ec2_volume" "example" { ### Required -- `availability_zone` (String) The Availability Zone in which to create the volume. +- `availability_zone` (String) The ID of the Availability Zone in which to create the volume. For example, ``us-east-1a``. ### Optional -- `auto_enable_io` (Boolean) The Availability Zone in which to create the volume. -- `encrypted` (Boolean) Specifies whether the volume should be encrypted. The effect of setting the encryption state to true depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see Encryption by default in the Amazon Elastic Compute Cloud User Guide. Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see Supported instance types. -- `iops` (Number) The number of I/O operations per second (IOPS) to provision for an io1 or io2 volume, with a maximum ratio of 50 IOPS/GiB for io1, and 500 IOPS/GiB for io2. Range is 100 to 64,000 IOPS for volumes in most Regions. Maximum IOPS of 64,000 is guaranteed only on Nitro-based instances. Other instance families guarantee performance up to 32,000 IOPS. For more information, see Amazon EBS volume types in the Amazon Elastic Compute Cloud User Guide. This parameter is valid only for Provisioned IOPS SSD (io1 and io2) volumes. -- `kms_key_id` (String) The identifier of the AWS Key Management Service (AWS KMS) customer master key (CMK) to use for Amazon EBS encryption. If KmsKeyId is specified, the encrypted state must be true. If you omit this property and your account is enabled for encryption by default, or Encrypted is set to true, then the volume is encrypted using the default CMK specified for your account. If your account does not have a default CMK, then the volume is encrypted using the AWS managed CMK. Alternatively, if you want to specify a different CMK, you can specify one of the following: Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. Key alias. Specify the alias for the CMK, prefixed with alias/. For example, for a CMK with the alias my_cmk, use alias/my_cmk. Or to specify the AWS managed CMK, use alias/aws/ebs. Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. +- `auto_enable_io` (Boolean) Indicates whether the volume is auto-enabled for I/O operations. By default, Amazon EBS disables I/O to the volume from attached EC2 instances when it determines that a volume's data is potentially inconsistent. If the consistency of the volume is not a concern, and you prefer that the volume be made available immediately if it's impaired, you can configure the volume to automatically enable I/O. +- `encrypted` (Boolean) Indicates whether the volume should be encrypted. The effect of setting the encryption state to ``true`` depends on the volume origin (new or from a snapshot), starting encryption state, ownership, and whether encryption by default is enabled. For more information, see [Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) in the *Amazon Elastic Compute Cloud User Guide*. + Encrypted Amazon EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see [Supported instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#EBSEncryption_supported_instances). +- `iops` (Number) The number of I/O operations per second (IOPS). For ``gp3``, ``io1``, and ``io2`` volumes, this represents the number of IOPS that are provisioned for the volume. For ``gp2`` volumes, this represents the baseline performance of the volume and the rate at which the volume accumulates I/O credits for bursting. + The following are the supported values for each volume type: + + ``gp3``: 3,000 - 16,000 IOPS + + ``io1``: 100 - 64,000 IOPS + + ``io2``: 100 - 256,000 IOPS + + For ``io2`` volumes, you can achieve up to 256,000 IOPS on [instances built on the Nitro System](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances). On other instances, you can achieve performance up to 32,000 IOPS. + This parameter is required for ``io1`` and ``io2`` volumes. The default for ``gp3`` volumes is 3,000 IOPS. This parameter is not supported for ``gp2``, ``st1``, ``sc1``, or ``standard`` volumes. +- `kms_key_id` (String) The identifier of the kms-key-long to use for Amazon EBS encryption. If ``KmsKeyId`` is specified, the encrypted state must be ``true``. + If you omit this property and your account is enabled for encryption by default, or *Encrypted* is set to ``true``, then the volume is encrypted using the default key specified for your account. If your account does not have a default key, then the volume is encrypted using the aws-managed-key. + Alternatively, if you want to specify a different key, you can specify one of the following: + + Key ID. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. + + Key alias. Specify the alias for the key, prefixed with ``alias/``. For example, for a key with the alias ``my_cmk``, use ``alias/my_cmk``. Or to specify the aws-managed-key, use ``alias/aws/ebs``. + + Key ARN. For example, arn:aws:kms:us-east-1:012345678910:key/1234abcd-12ab-34cd-56ef-1234567890ab. + + Alias ARN. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. - `multi_attach_enabled` (Boolean) Indicates whether Amazon EBS Multi-Attach is enabled. + CFNlong does not currently support updating a single-attach volume to be multi-attach enabled, updating a multi-attach enabled volume to be single-attach, or updating the size or number of I/O operations per second (IOPS) of a multi-attach enabled volume. - `outpost_arn` (String) The Amazon Resource Name (ARN) of the Outpost. -- `size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. Constraints: 1-16,384 for gp2, 4-16,384 for io1 and io2, 500-16,384 for st1, 500-16,384 for sc1, and 1-1,024 for standard. If you specify a snapshot, the volume size must be equal to or larger than the snapshot size. Default: If you're creating the volume from a snapshot and don't specify a volume size, the default is the snapshot size. +- `size` (Number) The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. If you specify a snapshot, the default is the snapshot size. You can specify a volume size that is equal to or larger than the snapshot size. + The following are the supported volumes sizes for each volume type: + + ``gp2`` and ``gp3``: 1 - 16,384 GiB + + ``io1``: 4 - 16,384 GiB + + ``io2``: 4 - 65,536 GiB + + ``st1`` and ``sc1``: 125 - 16,384 GiB + + ``standard``: 1 - 1024 GiB - `snapshot_id` (String) The snapshot from which to create the volume. You must specify either a snapshot ID or a volume size. - `tags` (Attributes List) The tags to apply to the volume during creation. (see [below for nested schema](#nestedatt--tags)) -- `throughput` (Number) The throughput that the volume supports, in MiB/s. -- `volume_type` (String) The volume type. This parameter can be one of the following values: General Purpose SSD: gp2 | gp3, Provisioned IOPS SSD: io1 | io2, Throughput Optimized HDD: st1, Cold HDD: sc1, Magnetic: standard +- `throughput` (Number) The throughput to provision for a volume, with a maximum of 1,000 MiB/s. + This parameter is valid only for ``gp3`` volumes. The default value is 125. + Valid Range: Minimum value of 125. Maximum value of 1000. +- `volume_type` (String) The volume type. This parameter can be one of the following values: + + General Purpose SSD: ``gp2`` | ``gp3`` + + Provisioned IOPS SSD: ``io1`` | ``io2`` + + Throughput Optimized HDD: ``st1`` + + Cold HDD: ``sc1`` + + Magnetic: ``standard`` + + For more information, see [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html) in the *Amazon Elastic Compute Cloud User Guide*. + Default: ``gp2`` ### Read-Only @@ -57,8 +101,8 @@ resource "awscc_ec2_volume" "example" { Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ec2_vpc.md b/docs/resources/ec2_vpc.md index b5af466ebd..9b76ebcdb5 100644 --- a/docs/resources/ec2_vpc.md +++ b/docs/resources/ec2_vpc.md @@ -2,12 +2,16 @@ page_title: "awscc_ec2_vpc Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EC2::VPC + Specifies a virtual private cloud (VPC). + You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). + For more information, see Virtual private clouds (VPC) https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html in the Amazon VPC User Guide. --- # awscc_ec2_vpc (Resource) -Resource Type definition for AWS::EC2::VPC +Specifies a virtual private cloud (VPC). + You can optionally request an IPv6 CIDR block for the VPC. You can request an Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses, or an IPv6 CIDR block from an IPv6 address pool that you provisioned through bring your own IP addresses (BYOIP). + For more information, see [Virtual private clouds (VPC)](https://docs.aws.amazon.com/vpc/latest/userguide/configure-your-vpc.html) in the *Amazon VPC User Guide*. ## Example Usage @@ -66,36 +70,37 @@ resource "awscc_ec2_vpc" "main" { ### Optional -- `cidr_block` (String) The primary IPv4 CIDR block for the VPC. -- `enable_dns_hostnames` (Boolean) Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. -- `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. +- `cidr_block` (String) The IPv4 network range for the VPC, in CIDR notation. For example, ``10.0.0.0/16``. We modify the specified CIDR block to its canonical form; for example, if you specify ``100.68.0.18/18``, we modify it to ``100.68.0.0/18``. + You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``. +- `enable_dns_hostnames` (Boolean) Indicates whether the instances launched in the VPC get DNS hostnames. If enabled, instances in the VPC get DNS hostnames; otherwise, they do not. Disabled by default for nondefault VPCs. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). + You can only enable DNS hostnames if you've enabled DNS support. +- `enable_dns_support` (Boolean) Indicates whether the DNS resolution is supported for the VPC. If enabled, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC network range "plus two" succeed. If disabled, the Amazon provided DNS service in the VPC that resolves public DNS hostnames to IP addresses is not enabled. Enabled by default. For more information, see [DNS attributes in your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support). - `instance_tenancy` (String) The allowed tenancy of instances launched into the VPC. - -"default": An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. - -"dedicated": An instance launched into the VPC is a Dedicated Instance by default, unless you explicitly specify a tenancy of host during instance launch. You cannot specify a tenancy of default during instance launch. - -Updating InstanceTenancy requires no replacement only if you are updating its value from "dedicated" to "default". Updating InstanceTenancy from "default" to "dedicated" requires replacement. -- `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR -- `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool + + ``default``: An instance launched into the VPC runs on shared hardware by default, unless you explicitly specify a different tenancy during instance launch. + + ``dedicated``: An instance launched into the VPC runs on dedicated hardware by default, unless you explicitly specify a tenancy of ``host`` during instance launch. You cannot specify a tenancy of ``default`` during instance launch. + + Updating ``InstanceTenancy`` requires no replacement only if you are updating its value from ``dedicated`` to ``default``. Updating ``InstanceTenancy`` from ``default`` to ``dedicated`` requires replacement. +- `ipv_4_ipam_pool_id` (String) The ID of an IPv4 IPAM pool you want to use for allocating this VPC's CIDR. For more information, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. + You must specify either``CidrBlock`` or ``Ipv4IpamPoolId``. +- `ipv_4_netmask_length` (Number) The netmask length of the IPv4 CIDR you want to allocate to this VPC from an Amazon VPC IP Address Manager (IPAM) pool. For more information about IPAM, see [What is IPAM?](https://docs.aws.amazon.com//vpc/latest/ipam/what-is-it-ipam.html) in the *Amazon VPC IPAM User Guide*. - `tags` (Attributes List) The tags for the VPC. (see [below for nested schema](#nestedatt--tags)) ### Read-Only -- `cidr_block_associations` (List of String) A list of IPv4 CIDR block association IDs for the VPC. -- `default_network_acl` (String) The default network ACL ID that is associated with the VPC. -- `default_security_group` (String) The default security group ID that is associated with the VPC. +- `cidr_block_associations` (List of String) +- `default_network_acl` (String) +- `default_security_group` (String) - `id` (String) Uniquely identifies the resource. -- `ipv_6_cidr_blocks` (List of String) A list of IPv6 CIDR blocks that are associated with the VPC. -- `vpc_id` (String) The Id for the model. +- `ipv_6_cidr_blocks` (List of String) +- `vpc_id` (String) ### Nested Schema for `tags` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. ## Import diff --git a/docs/resources/ecs_task_definition.md b/docs/resources/ecs_task_definition.md index d30ee80ca7..df4d6fb573 100644 --- a/docs/resources/ecs_task_definition.md +++ b/docs/resources/ecs_task_definition.md @@ -3,12 +3,16 @@ page_title: "awscc_ecs_task_definition Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Schema describing various properties for ECS TaskDefinition + Registers a new task definition from the supplied family and containerDefinitions. Optionally, you can add data volumes to your containers with the volumes parameter. For more information about task definition parameters and defaults, see Amazon ECS Task Definitions https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html in the Amazon Elastic Container Service Developer Guide. + You can specify a role for your task with the taskRoleArn parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see IAM Roles for Tasks https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html in the Amazon Elastic Container Service Developer Guide. + You can specify a Docker networking mode for the containers in your task definition with the ``networkMod --- # awscc_ecs_task_definition (Resource) -Resource Schema describing various properties for ECS TaskDefinition +Registers a new task definition from the supplied ``family`` and ``containerDefinitions``. Optionally, you can add data volumes to your containers with the ``volumes`` parameter. For more information about task definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. + You can specify a role for your task with the ``taskRoleArn`` parameter. When you specify a role for a task, its containers can then use the latest versions of the CLI or SDKs to make API requests to the AWS services that are specified in the policy that's associated with the role. For more information, see [IAM Roles for Tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. + You can specify a Docker networking mode for the containers in your task definition with the ``networkMod @@ -17,85 +21,181 @@ Resource Schema describing various properties for ECS TaskDefinition ### Optional -- `container_definitions` (Attributes Set) (see [below for nested schema](#nestedatt--container_definitions)) -- `cpu` (String) -- `ephemeral_storage` (Attributes) (see [below for nested schema](#nestedatt--ephemeral_storage)) -- `execution_role_arn` (String) -- `family` (String) -- `inference_accelerators` (Attributes Set) (see [below for nested schema](#nestedatt--inference_accelerators)) -- `ipc_mode` (String) -- `memory` (String) -- `network_mode` (String) -- `pid_mode` (String) -- `placement_constraints` (Attributes Set) (see [below for nested schema](#nestedatt--placement_constraints)) -- `proxy_configuration` (Attributes) (see [below for nested schema](#nestedatt--proxy_configuration)) -- `requires_compatibilities` (Set of String) -- `runtime_platform` (Attributes) (see [below for nested schema](#nestedatt--runtime_platform)) -- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) -- `task_role_arn` (String) -- `volumes` (Attributes Set) (see [below for nested schema](#nestedatt--volumes)) +- `container_definitions` (Attributes Set) A list of container definitions in JSON format that describe the different containers that make up your task. For more information about container definition parameters and defaults, see [Amazon ECS Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_defintions.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions)) +- `cpu` (String) The number of ``cpu`` units used by the task. If you use the EC2 launch type, this field is optional. Any value can be used. If you use the Fargate launch type, this field is required. You must use one of the following values. The value that you choose determines your range of valid values for the ``memory`` parameter. + The CPU units cannot be less than 1 vCPU when you use Windows containers on Fargate. + + 256 (.25 vCPU) - Available ``memory`` values: 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) + + 512 (.5 vCPU) - Available ``memory`` values: 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) + + 1024 (1 vCPU) - Available ``memory`` values: 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) + + 2048 (2 vCPU) - Available ``memory`` values: 4096 (4 GB) and 16384 (16 GB) in increments of 1024 (1 GB) + + 4096 (4 vCPU) - Available ``memory`` values: 8192 (8 GB) and 30720 (30 GB) in increments of 1024 (1 GB) + + 8192 (8 vCPU) - Available ``memory`` va +- `ephemeral_storage` (Attributes) The ephemeral storage settings to use for tasks run with the task definition. (see [below for nested schema](#nestedatt--ephemeral_storage)) +- `execution_role_arn` (String) The Amazon Resource Name (ARN) of the task execution role that grants the Amazon ECS container agent permission to make AWS API calls on your behalf. The task execution IAM role is required depending on the requirements of your task. For more information, see [Amazon ECS task execution IAM role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) in the *Amazon Elastic Container Service Developer Guide*. +- `family` (String) The name of a family that this task definition is registered to. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed. + A family groups multiple versions of a task definition. Amazon ECS gives the first task definition that you registered to a family a revision number of 1. Amazon ECS gives sequential revision numbers to each task definition that you add. + To use revision numbers when you update a task definition, specify this property. If you don't specify a value, CFNlong generates a new task definition each time that you update it. +- `inference_accelerators` (Attributes Set) The Elastic Inference accelerators to use for the containers in the task. (see [below for nested schema](#nestedatt--inference_accelerators)) +- `ipc_mode` (String) The IPC resource namespace to use for the containers in the task. The valid values are ``host``, ``task``, or ``none``. If ``host`` is specified, then all containers within the tasks that specified the ``host`` IPC mode on the same container instance share the same IPC resources with the host Amazon EC2 instance. If ``task`` is specified, all containers within the specified task share the same IPC resources. If ``none`` is specified, then IPC resources within the containers of a task are private and not shared with other containers in a task or on the container instance. If no value is specified, then the IPC resource namespace sharing depends on the Docker daemon setting on the container instance. For more information, see [IPC settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#ipc-settings---ipc) in the *Docker run reference*. + If the ``host`` IPC mode is used, be aware that there is a heightened risk of undesired IPC namespace expose. For more inform +- `memory` (String) The amount (in MiB) of memory used by the task. + If your tasks runs on Amazon EC2 instances, you must specify either a task-level memory value or a container-level memory value. This field is optional and any value can be used. If a task-level memory value is specified, the container-level memory value is optional. For more information regarding container-level memory and memory reservation, see [ContainerDefinition](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ContainerDefinition.html). + If your tasks runs on FARGATElong, this field is required. You must use one of the following values. The value you choose determines your range of valid values for the ``cpu`` parameter. + + 512 (0.5 GB), 1024 (1 GB), 2048 (2 GB) - Available ``cpu`` values: 256 (.25 vCPU) + + 1024 (1 GB), 2048 (2 GB), 3072 (3 GB), 4096 (4 GB) - Available ``cpu`` values: 512 (.5 vCPU) + + 2048 (2 GB), 3072 (3 GB), 4096 (4 GB), 5120 (5 GB), 6144 (6 GB), 7168 (7 GB), 8192 (8 GB) - Available ``cpu`` va +- `network_mode` (String) The Docker networking mode to use for the containers in the task. The valid values are ``none``, ``bridge``, ``awsvpc``, and ``host``. If no network mode is specified, the default is ``bridge``. + For Amazon ECS tasks on Fargate, the ``awsvpc`` network mode is required. For Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. For Amazon ECS tasks on Amazon EC2 Windows instances, ```` or ``awsvpc`` can be used. If the network mode is set to ``none``, you cannot specify port mappings in your container definitions, and the tasks containers do not have external connectivity. The ``host`` and ``awsvpc`` network modes offer the highest networking performance for containers because they use the EC2 network stack instead of the virtualized network stack provided by the ``bridge`` mode. + With the ``host`` and ``awsvpc`` network modes, exposed container ports are mapped directly to the corresponding host port (for the ``host`` network mode) or the attached elasti +- `pid_mode` (String) The process namespace to use for the containers in the task. The valid values are ``host`` or ``task``. On Fargate for Linux containers, the only valid value is ``task``. For example, monitoring sidecars might need ``pidMode`` to access information about other containers running in the same task. + If ``host`` is specified, all containers within the tasks that specified the ``host`` PID mode on the same container instance share the same process namespace with the host Amazon EC2 instance. + If ``task`` is specified, all containers within the specified task share the same process namespace. + If no value is specified, the default is a private namespace for each container. For more information, see [PID settings](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#pid-settings---pid) in the *Docker run reference*. + If the ``host`` PID mode is used, there's a heightened risk of undesired process namespace exposure. For more information, see [Docker security](https://doc +- `placement_constraints` (Attributes Set) An array of placement constraint objects to use for tasks. + This parameter isn't supported for tasks run on FARGATElong. (see [below for nested schema](#nestedatt--placement_constraints)) +- `proxy_configuration` (Attributes) The configuration details for the App Mesh proxy. + Your Amazon ECS container instances require at least version 1.26.0 of the container agent and at least version 1.26.0-1 of the ``ecs-init`` package to use a proxy configuration. If your container instances are launched from the Amazon ECS optimized AMI version ``20190301`` or later, they contain the required versions of the container agent and ``ecs-init``. For more information, see [Amazon ECS-optimized Linux AMI](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--proxy_configuration)) +- `requires_compatibilities` (Set of String) The task launch types the task definition was validated against. The valid values are ``EC2``, ``FARGATE``, and ``EXTERNAL``. For more information, see [Amazon ECS launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html) in the *Amazon Elastic Container Service Developer Guide*. +- `runtime_platform` (Attributes) The operating system that your tasks definitions run on. A platform family is specified only for tasks using the Fargate launch type. + When you specify a task definition in a service, this value must match the ``runtimePlatform`` value of the service. (see [below for nested schema](#nestedatt--runtime_platform)) +- `tags` (Attributes List) The metadata that you apply to the task definition to help you categorize and organize them. Each tag consists of a key and an optional value. You define both of them. + The following basic restrictions apply to tags: + + Maximum number of tags per resource - 50 + + For each resource, each tag key must be unique, and each tag key can have only one value. + + Maximum key length - 128 Unicode characters in UTF-8 + + Maximum value length - 256 Unicode characters in UTF-8 + + If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @. + + Tag keys and values are case-sensitive. + + Do not use ``aws:``, ``AWS:``, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for AWS use. You cannot edit or delete tag keys or values (see [below for nested schema](#nestedatt--tags)) +- `task_role_arn` (String) The short name or full Amazon Resource Name (ARN) of the IAMlong role that grants containers in the task permission to call AWS APIs on your behalf. For more information, see [Amazon ECS Task Role](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) in the *Amazon Elastic Container Service Developer Guide*. + IAM roles for tasks on Windows require that the ``-EnableTaskIAMRole`` option is set when you launch the Amazon ECS-optimized Windows AMI. Your containers must also run some configuration code to use the feature. For more information, see [Windows IAM roles for tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows_task_IAM_roles.html) in the *Amazon Elastic Container Service Developer Guide*. +- `volumes` (Attributes Set) The list of data volume definitions for the task. For more information, see [Using data volumes in tasks](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html) in the *Amazon Elastic Container Service Developer Guide*. + The ``host`` and ``sourcePath`` parameters aren't supported for tasks run on FARGATElong. (see [below for nested schema](#nestedatt--volumes)) ### Read-Only - `id` (String) Uniquely identifies the resource. -- `task_definition_arn` (String) The Amazon Resource Name (ARN) of the Amazon ECS task definition +- `task_definition_arn` (String) ### Nested Schema for `container_definitions` Required: -- `image` (String) The image used to start a container. This string is passed directly to the Docker daemon. -- `name` (String) The name of a container. Up to 255 letters (uppercase and lowercase), numbers, hyphens, and underscores are allowed +- `image` (String) The image used to start a container. This string is passed directly to the Docker daemon. By default, images in the Docker Hub registry are available. Other repositories are specified with either ``repository-url/image:tag`` or ``repository-url/image@digest``. Up to 255 letters (uppercase and lowercase), numbers, hyphens, underscores, colons, periods, forward slashes, and number signs are allowed. This parameter maps to ``Image`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``IMAGE`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + + When a new task starts, the Amazon ECS container agent pulls the latest version of the specified image and tag for the container to use. However, subsequent updates to a repository image +- `name` (String) The name of a container. If you're linking multiple containers together in a task definition, the ``name`` of one container can be entered in the ``links`` of another container to connect the containers. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. This parameter maps to ``name`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--name`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). Optional: -- `command` (List of String) -- `cpu` (Number) -- `credential_specs` (List of String) -- `depends_on` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--depends_on)) -- `disable_networking` (Boolean) -- `dns_search_domains` (List of String) -- `dns_servers` (List of String) -- `docker_labels` (Map of String) -- `docker_security_options` (List of String) -- `entry_point` (List of String) -- `environment` (Attributes Set) The environment variables to pass to a container (see [below for nested schema](#nestedatt--container_definitions--environment)) -- `environment_files` (Attributes List) The list of one or more files that contain the environment variables to pass to a container (see [below for nested schema](#nestedatt--container_definitions--environment_files)) -- `essential` (Boolean) -- `extra_hosts` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--extra_hosts)) -- `firelens_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--firelens_configuration)) -- `health_check` (Attributes) The health check command and associated configuration parameters for the container. (see [below for nested schema](#nestedatt--container_definitions--health_check)) -- `hostname` (String) -- `interactive` (Boolean) -- `links` (Set of String) -- `linux_parameters` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters)) -- `log_configuration` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--log_configuration)) -- `memory` (Number) The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. -- `memory_reservation` (Number) -- `mount_points` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--mount_points)) -- `port_mappings` (Attributes Set) Port mappings allow containers to access ports on the host container instance to send or receive traffic. (see [below for nested schema](#nestedatt--container_definitions--port_mappings)) -- `privileged` (Boolean) -- `pseudo_terminal` (Boolean) -- `readonly_root_filesystem` (Boolean) -- `repository_credentials` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--repository_credentials)) -- `resource_requirements` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--resource_requirements)) -- `secrets` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--secrets)) -- `start_timeout` (Number) -- `stop_timeout` (Number) -- `system_controls` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--system_controls)) -- `ulimits` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--ulimits)) -- `user` (String) -- `volumes_from` (Attributes Set) (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) -- `working_directory` (String) +- `command` (List of String) The command that's passed to the container. This parameter maps to ``Cmd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``COMMAND`` parameter to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#cmd](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#cmd). If there are multiple arguments, each argument is a separated string in the array. +- `cpu` (Number) The number of ``cpu`` units reserved for the container. This parameter maps to ``CpuShares`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cpu-shares`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This field is optional for tasks using the Fargate launch type, and the only requirement is that the total amount of CPU reserved for all containers within a task be lower than the task-level ``cpu`` value. + You can determine the number of CPU units that are available per EC2 instance type by multiplying the vCPUs listed for that instance type on the [Amazon EC2 Instances](https://docs.aws.amazon.com/ec2/instance-types/) detail page by 1,024. + Linux containers share unallocated CPU units with other containers on the cont +- `credential_specs` (List of String) A list of ARNs in SSM or Amazon S3 to a credential spec (``CredSpec``) file that configures the container for Active Directory authentication. We recommend that you use this parameter instead of the ``dockerSecurityOptions``. The maximum number of ARNs is 1. + There are two formats for each ARN. + + credentialspecdomainless:MyARN You use credentialspecdomainless:MyARN to provide a CredSpec with an additional section for a secret in . You provide the login credentials to the domain in the secret. Each task that runs on any container instance can join different domains. You can use this format without joining the container instance to a domain. + credentialspec:MyARN You use credentialspec:MyARN to provide a CredSpec for a single domain. You must join the container instance to the domain before you start any tasks that use this task definition. + In both formats, replace ``MyARN`` with the ARN in SSM or Amazon S3. + If you provide a ``credentialspecdomainless:MyARN``, the ``credspec`` must +- `depends_on` (Attributes List) The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed. + For tasks using the EC2 launch type, the container instances require at least version 1.26.0 of the container agent to turn on container dependencies. However, we recommend using the latest container agent version. For information about checking your agent version and updating to the latest version, see [Updating the Amazon ECS Container Agent](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-agent-update.html) in the *Amazon Elastic Container Service Developer Guide*. If you're using an Amazon ECS-optimized Linux AMI, your instance needs at least version 1.26.0-1 of the ``ecs-init`` package. If your container instances are launched from version ``20190301`` or later, then they contain the required versions of the container agent and ``ecs-init``. For more information, see [ (see [below for nested schema](#nestedatt--container_definitions--depends_on)) +- `disable_networking` (Boolean) When this parameter is true, networking is off within the container. This parameter maps to ``NetworkDisabled`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). + This parameter is not supported for Windows containers. +- `dns_search_domains` (List of String) A list of DNS search domains that are presented to the container. This parameter maps to ``DnsSearch`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns-search`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `dns_servers` (List of String) A list of DNS servers that are presented to the container. This parameter maps to ``Dns`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--dns`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `docker_labels` (Map of String) A key/value map of labels to add to the container. This parameter maps to ``Labels`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--label`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `docker_security_options` (List of String) A list of strings to provide custom configuration for multiple security systems. For more information about valid values, see [Docker Run Security Configuration](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This field isn't valid for containers in tasks using the Fargate launch type. + For Linux tasks on EC2, this parameter can be used to reference custom labels for SELinux and AppArmor multi-level security systems. + For any tasks on EC2, this parameter can be used to reference a credential spec file that configures a container for Active Directory authentication. For more information, see [Using gMSAs for Windows Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/windows-gmsa.html) and [Using gMSAs for Linux Containers](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/linux-gmsa.html) in the *Amazon Elastic Container Service Developer Guide*. + This parameter maps to ``SecurityOpt`` in the [Create a co +- `entry_point` (List of String) Early versions of the Amazon ECS container agent don't properly handle ``entryPoint`` parameters. If you have problems using ``entryPoint``, update your container agent or enter your commands and arguments as ``command`` array items instead. + The entry point that's passed to the container. This parameter maps to ``Entrypoint`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--entrypoint`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For more information, see [https://docs.docker.com/engine/reference/builder/#entrypoint](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/builder/#entrypoint). +- `environment` (Attributes Set) The environment variables to pass to a container. This parameter maps to ``Env`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--env`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + We don't recommend that you use plaintext environment variables for sensitive information, such as credential data. (see [below for nested schema](#nestedatt--container_definitions--environment)) +- `environment_files` (Attributes List) A list of files containing the environment variables to pass to a container. This parameter maps to the ``--env-file`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + You can specify up to ten environment files. The file must have a ``.env`` file extension. Each line in an environment file contains an environment variable in ``VARIABLE=VALUE`` format. Lines beginning with ``#`` are treated as comments and are ignored. For more information about the environment variable file syntax, see [Declare default environment variables in file](https://docs.aws.amazon.com/https://docs.docker.com/compose/env-file/). + If there are environment variables specified using the ``environment`` parameter in a container definition, they take precedence over the variables contained within an environment file. If multiple environment files are specified that contain the same variable, they're processed from the top down. We recommend t (see [below for nested schema](#nestedatt--container_definitions--environment_files)) +- `essential` (Boolean) If the ``essential`` parameter of a container is marked as ``true``, and that container fails or stops for any reason, all other containers that are part of the task are stopped. If the ``essential`` parameter of a container is marked as ``false``, its failure doesn't affect the rest of the containers in a task. If this parameter is omitted, a container is assumed to be essential. + All tasks must have at least one essential container. If you have an application that's composed of multiple containers, group containers that are used for a common purpose into components, and separate the different components into multiple task definitions. For more information, see [Application Architecture](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/application_architecture.html) in the *Amazon Elastic Container Service Developer Guide*. +- `extra_hosts` (Attributes List) A list of hostnames and IP address mappings to append to the ``/etc/hosts`` file on the container. This parameter maps to ``ExtraHosts`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--add-host`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter isn't supported for Windows containers or tasks that use the ``awsvpc`` network mode. (see [below for nested schema](#nestedatt--container_definitions--extra_hosts)) +- `firelens_configuration` (Attributes) The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more information, see [Custom Log Routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--firelens_configuration)) +- `health_check` (Attributes) The container health check command and associated configuration parameters for the container. This parameter maps to ``HealthCheck`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``HEALTHCHECK`` parameter of [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). (see [below for nested schema](#nestedatt--container_definitions--health_check)) +- `hostname` (String) The hostname to use for your container. This parameter maps to ``Hostname`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--hostname`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + The ``hostname`` parameter is not supported if you're using the ``awsvpc`` network mode. +- `interactive` (Boolean) When this parameter is ``true``, you can deploy containerized applications that require ``stdin`` or a ``tty`` to be allocated. This parameter maps to ``OpenStdin`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--interactive`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +- `links` (Set of String) The ``links`` parameter allows containers to communicate with each other without the need for port mappings. This parameter is only supported if the network mode of a task definition is ``bridge``. The ``name:internalName`` construct is analogous to ``name:alias`` in Docker links. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. For more information about linking Docker containers, go to [Legacy container links](https://docs.aws.amazon.com/https://docs.docker.com/network/links/) in the Docker documentation. This parameter maps to ``Links`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--link`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for W +- `linux_parameters` (Attributes) Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more information see [KernelCapabilities](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_KernelCapabilities.html). + This parameter is not supported for Windows containers. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters)) +- `log_configuration` (Attributes) The log configuration specification for the container. + This parameter maps to ``LogConfig`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--log-driver`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). By default, containers use the same logging driver that the Docker daemon uses. However, the container may use a different logging driver than the Docker daemon by specifying a log driver with this parameter in the container definition. To use a different logging driver for a container, the log system must be configured properly on the container instance (or on a different log server for remote logging options). For more information on the options for different supported log drivers, see [Configure logging drivers](https://docs.aws.amazon.com/htt (see [below for nested schema](#nestedatt--container_definitions--log_configuration)) +- `memory` (Number) The amount (in MiB) of memory to present to the container. If your container attempts to exceed the memory specified here, the container is killed. The total amount of memory reserved for all containers within a task must be lower than the task ``memory`` value, if one is specified. This parameter maps to ``Memory`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If using the Fargate launch type, this parameter is optional. + If using the EC2 launch type, you must specify either a task-level memory value or a container-level memory value. If you specify both a container-level ``memory`` and ``memoryReservation`` value, ``memory`` must be greater than ``memoryReserva +- `memory_reservation` (Number) The soft limit (in MiB) of memory to reserve for the container. When system memory is under heavy contention, Docker attempts to keep the container memory to this soft limit. However, your container can consume more memory when it needs to, up to either the hard limit specified with the ``memory`` parameter (if applicable), or all of the available memory on the container instance, whichever comes first. This parameter maps to ``MemoryReservation`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--memory-reservation`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If a task-level memory value is not specified, you must specify a non-zero integer for one or both of ``memory`` or ``memoryReservation`` in a container definiti +- `mount_points` (Attributes List) The mount points for data volumes in your container. + This parameter maps to ``Volumes`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volume`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. (see [below for nested schema](#nestedatt--container_definitions--mount_points)) +- `port_mappings` (Attributes Set) The list of port mappings for the container. Port mappings allow containers to access ports on the host container instance to send or receive traffic. + For task definitions that use the ``awsvpc`` network mode, you should only specify the ``containerPort``. The ``hostPort`` can be left blank or it must be the same value as the ``containerPort``. + Port mappings on Windows use the ``NetNAT`` gateway address rather than ``localhost``. There is no loopback for port mappings on Windows, so you cannot access a container's mapped port from the host itself. + This parameter maps to ``PortBindings`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--publish`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). If the network mode of a task definition is set to (see [below for nested schema](#nestedatt--container_definitions--port_mappings)) +- `privileged` (Boolean) When this parameter is true, the container is given elevated privileges on the host container instance (similar to the ``root`` user). This parameter maps to ``Privileged`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--privileged`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers or tasks run on FARGATElong. +- `pseudo_terminal` (Boolean) When this parameter is ``true``, a TTY is allocated. This parameter maps to ``Tty`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--tty`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). +- `readonly_root_filesystem` (Boolean) When this parameter is true, the container is given read-only access to its root file system. This parameter maps to ``ReadonlyRootfs`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--read-only`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + This parameter is not supported for Windows containers. +- `repository_credentials` (Attributes) The private repository authentication credentials to use. (see [below for nested schema](#nestedatt--container_definitions--repository_credentials)) +- `resource_requirements` (Attributes List) The type and amount of a resource to assign to a container. The only supported resource is a GPU. (see [below for nested schema](#nestedatt--container_definitions--resource_requirements)) +- `secrets` (Attributes List) The secrets to pass to the container. For more information, see [Specifying Sensitive Data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--secrets)) +- `start_timeout` (Number) Time duration (in seconds) to wait before giving up on resolving dependencies for a container. For example, you specify two containers in a task definition with containerA having a dependency on containerB reaching a ``COMPLETE``, ``SUCCESS``, or ``HEALTHY`` status. If a ``startTimeout`` value is specified for containerB and it doesn't reach the desired status within that time then containerA gives up and not start. This results in the task transitioning to a ``STOPPED`` state. + When the ``ECS_CONTAINER_START_TIMEOUT`` container agent configuration variable is used, it's enforced independently from this start timeout value. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + For tasks using the EC2 launch type, your container instances require at least version ``1.26.0`` of the container agent to use a container start timeout value. However +- `stop_timeout` (Number) Time duration (in seconds) to wait before the container is forcefully killed if it doesn't exit normally on its own. + For tasks using the Fargate launch type, the task or service requires the following platforms: + + Linux platform version ``1.3.0`` or later. + + Windows platform version ``1.0.0`` or later. + + The max stop timeout value is 120 seconds and if the parameter is not specified, the default value of 30 seconds is used. + For tasks that use the EC2 launch type, if the ``stopTimeout`` parameter isn't specified, the value set for the Amazon ECS container agent configuration variable ``ECS_CONTAINER_STOP_TIMEOUT`` is used. If neither the ``stopTimeout`` parameter or the ``ECS_CONTAINER_STOP_TIMEOUT`` agent configuration variable are set, then the default values of 30 seconds for Linux containers and 30 seconds on Windows containers are used. Your container instances require at least version 1.26.0 of the container agent to use a container stop timeout value. However, we recomm +- `system_controls` (Attributes List) A list of namespaced kernel parameters to set in the container. This parameter maps to ``Sysctls`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--sysctl`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). For example, you can configure ``net.ipv4.tcp_keepalive_time`` setting to maintain longer lived connections. (see [below for nested schema](#nestedatt--container_definitions--system_controls)) +- `ulimits` (Attributes List) A list of ``ulimits`` to set in the container. This parameter maps to ``Ulimits`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--ulimit`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/). Valid naming values are displayed in the [Ulimit](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_Ulimit.html) data type. This parameter requires version 1.18 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` + This parameter is not supported for Windows containers. (see [below for nested schema](#nestedatt--container_definitions--ulimits)) +- `user` (String) The user to use inside the container. This parameter maps to ``User`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--user`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + When running tasks using the ``host`` network mode, don't run containers using the root user (UID 0). We recommend using a non-root user for better security. + You can specify the ``user`` using the following formats. If specifying a UID or GID, you must specify it as a positive integer. + + ``user`` + + ``user:group`` + + ``uid`` + + ``uid:gid`` + + ``user:gid`` + + ``uid:group`` + + This parameter is not supported for Windows containers. +- `volumes_from` (Attributes Set) Data volumes to mount from another container. This parameter maps to ``VolumesFrom`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--volumes-from`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). (see [below for nested schema](#nestedatt--container_definitions--volumes_from)) +- `working_directory` (String) The working directory to run commands inside the container in. This parameter maps to ``WorkingDir`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--workdir`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). ### Nested Schema for `container_definitions.depends_on` Optional: -- `condition` (String) -- `container_name` (String) +- `condition` (String) The dependency condition of the container. The following are the available conditions and their behavior: + + ``START`` - This condition emulates the behavior of links and volumes today. It validates that a dependent container is started before permitting other containers to start. + + ``COMPLETE`` - This condition validates that a dependent container runs to completion (exits) before permitting other containers to start. This can be useful for nonessential containers that run a script and then exit. This condition can't be set on an essential container. + + ``SUCCESS`` - This condition is the same as ``COMPLETE``, but it also requires that the container exits with a ``zero`` status. This condition can't be set on an essential container. + + ``HEALTHY`` - This condition validates that the dependent container passes its Docker health check before permitting other containers to start. This requires that the dependent container has health checks configured. This condition is confi +- `container_name` (String) The name of a container. @@ -103,8 +203,8 @@ Optional: Optional: -- `name` (String) -- `value` (String) +- `name` (String) The name of the key-value pair. For environment variables, this is the name of the environment variable. +- `value` (String) The value of the key-value pair. For environment variables, this is the value of the environment variable. @@ -112,8 +212,8 @@ Optional: Optional: -- `type` (String) -- `value` (String) +- `type` (String) The file type to use. The only supported value is ``s3``. +- `value` (String) The Amazon Resource Name (ARN) of the Amazon S3 object containing the environment variable file. @@ -121,8 +221,8 @@ Optional: Optional: -- `hostname` (String) -- `ip_address` (String) +- `hostname` (String) The hostname to use in the ``/etc/hosts`` entry. +- `ip_address` (String) The IP address to use in the ``/etc/hosts`` entry. @@ -130,8 +230,12 @@ Optional: Optional: -- `options` (Map of String) -- `type` (String) +- `options` (Map of String) The options to use when configuring the log router. This field is optional and can be used to add additional metadata, such as the task, task definition, cluster, and container instance details to the log event. + If specified, valid option keys are: + + ``enable-ecs-log-metadata``, which can be ``true`` or ``false`` + + ``config-file-type``, which can be ``s3`` or ``file`` + + ``config-file-value``, which is either an S3 ARN or a file path +- `type` (String) The log router to use. The valid values are ``fluentd`` or ``fluentbit``. @@ -139,11 +243,17 @@ Optional: Optional: -- `command` (List of String) A string array representing the command that the container runs to determine if it is healthy. +- `command` (List of String) A string array representing the command that the container runs to determine if it is healthy. The string array must start with ``CMD`` to run the command arguments directly, or ``CMD-SHELL`` to run the command with the container's default shell. + When you use the AWS Management Console JSON panel, the CLIlong, or the APIs, enclose the list of commands in double quotes and brackets. + ``[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]`` + You don't include the double quotes and brackets when you use the AWS Management Console. + ``CMD-SHELL, curl -f http://localhost/ || exit 1`` + An exit code of 0 indicates success, and non-zero exit code indicates failure. For more information, see ``HealthCheck`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/). - `interval` (Number) The time period in seconds between each health check execution. You may specify between 5 and 300 seconds. The default value is 30 seconds. -- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is three retries. -- `start_period` (Number) The optional grace period within which to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You may specify between 0 and 300 seconds. The startPeriod is disabled by default. -- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5 seconds. +- `retries` (Number) The number of times to retry a failed health check before the container is considered unhealthy. You may specify between 1 and 10 retries. The default value is 3. +- `start_period` (Number) The optional grace period to provide containers time to bootstrap before failed health checks count towards the maximum number of retries. You can specify between 0 and 300 seconds. By default, the ``startPeriod`` is off. + If a health check succeeds within the ``startPeriod``, then the container is considered healthy and any subsequent failures count toward the maximum number of retries. +- `timeout` (Number) The time period in seconds to wait for a health check to succeed before it is considered a failure. You may specify between 2 and 60 seconds. The default value is 5. @@ -151,21 +261,33 @@ Optional: Optional: -- `capabilities` (Attributes) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--capabilities)) -- `devices` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--devices)) -- `init_process_enabled` (Boolean) -- `max_swap` (Number) -- `shared_memory_size` (Number) -- `swappiness` (Number) -- `tmpfs` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--tmpfs)) +- `capabilities` (Attributes) The Linux capabilities for the container that are added to or dropped from the default configuration provided by Docker. + For tasks that use the Fargate launch type, ``capabilities`` is supported for all platform versions but the ``add`` parameter is only supported if using platform version 1.4.0 or later. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--capabilities)) +- `devices` (Attributes List) Any host devices to expose to the container. This parameter maps to ``Devices`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--device`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``devices`` parameter isn't supported. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--devices)) +- `init_process_enabled` (Boolean) Run an ``init`` process inside the container that forwards signals and reaps processes. This parameter maps to the ``--init`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). This parameter requires version 1.25 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `max_swap` (Number) The total amount of swap memory (in MiB) a container can use. This parameter will be translated to the ``--memory-swap`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration) where the value would be the sum of the container memory plus the ``maxSwap`` value. + If a ``maxSwap`` value of ``0`` is specified, the container will not use swap. Accepted values are ``0`` or any positive integer. If the ``maxSwap`` parameter is omitted, the container will use the swap configuration for the container instance it is running on. A ``maxSwap`` value must be set for the ``swappiness`` parameter to be used. + If you're using tasks that use the Fargate launch type, the ``maxSwap`` parameter isn't supported. + If you're using tasks on Amazon Linux 2023 the ``swappiness`` parameter isn't supported. +- `shared_memory_size` (Number) The value for the size (in MiB) of the ``/dev/shm`` volume. This parameter maps to the ``--shm-size`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you are using tasks that use the Fargate launch type, the ``sharedMemorySize`` parameter is not supported. +- `swappiness` (Number) This allows you to tune a container's memory swappiness behavior. A ``swappiness`` value of ``0`` will cause swapping to not happen unless absolutely necessary. A ``swappiness`` value of ``100`` will cause pages to be swapped very aggressively. Accepted values are whole numbers between ``0`` and ``100``. If the ``swappiness`` parameter is not specified, a default value of ``60`` is used. If a value is not specified for ``maxSwap`` then this parameter is ignored. This parameter maps to the ``--memory-swappiness`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``swappiness`` parameter isn't supported. + If you're using tasks on Amazon Linux 2023 the ``swappiness`` parameter isn't supported. +- `tmpfs` (Attributes List) The container path, mount options, and size (in MiB) of the tmpfs mount. This parameter maps to the ``--tmpfs`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + If you're using tasks that use the Fargate launch type, the ``tmpfs`` parameter isn't supported. (see [below for nested schema](#nestedatt--container_definitions--linux_parameters--tmpfs)) ### Nested Schema for `container_definitions.linux_parameters.capabilities` Optional: -- `add` (List of String) -- `drop` (List of String) +- `add` (List of String) The Linux capabilities for the container that have been added to the default configuration provided by Docker. This parameter maps to ``CapAdd`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-add`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Tasks launched on FARGATElong only support adding the ``SYS_PTRACE`` kernel capability. + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" +- `drop` (List of String) The Linux capabilities for the container that have been removed from the default configuration provided by Docker. This parameter maps to ``CapDrop`` in the [Create a container](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/ContainerCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``--cap-drop`` option to [docker run](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/run/#security-configuration). + Valid values: ``"ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND" | "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID" | "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE" | "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" | "NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP" | "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" | "SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE" | "SYS_RAWIO" @@ -173,9 +295,9 @@ Optional: Optional: -- `container_path` (String) -- `host_path` (String) -- `permissions` (Set of String) +- `container_path` (String) The path inside the container at which to expose the host device. +- `host_path` (String) The path for the device on the host container instance. +- `permissions` (Set of String) The explicit permissions to provide to the container for the device. By default, the container has permissions for ``read``, ``write``, and ``mknod`` for the device. @@ -183,12 +305,13 @@ Optional: Required: -- `size` (Number) +- `size` (Number) The maximum size (in MiB) of the tmpfs volume. Optional: -- `container_path` (String) -- `mount_options` (List of String) +- `container_path` (String) The absolute file path where the tmpfs volume is to be mounted. +- `mount_options` (List of String) The list of tmpfs volume mount options. + Valid values: ``"defaults" | "ro" | "rw" | "suid" | "nosuid" | "dev" | "nodev" | "exec" | "noexec" | "sync" | "async" | "dirsync" | "remount" | "mand" | "nomand" | "atime" | "noatime" | "diratime" | "nodiratime" | "bind" | "rbind" | "unbindable" | "runbindable" | "private" | "rprivate" | "shared" | "rshared" | "slave" | "rslave" | "relatime" | "norelatime" | "strictatime" | "nostrictatime" | "mode" | "uid" | "gid" | "nr_inodes" | "nr_blocks" | "mpol"`` @@ -197,20 +320,27 @@ Optional: Required: -- `log_driver` (String) +- `log_driver` (String) The log driver to use for the container. + For tasks on FARGATElong, the supported log drivers are ``awslogs``, ``splunk``, and ``awsfirelens``. + For tasks hosted on Amazon EC2 instances, the supported log drivers are ``awslogs``, ``fluentd``, ``gelf``, ``json-file``, ``journald``, ``logentries``,``syslog``, ``splunk``, and ``awsfirelens``. + For more information about using the ``awslogs`` log driver, see [Using the awslogs log driver](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html) in the *Amazon Elastic Container Service Developer Guide*. + For more information about using the ``awsfirelens`` log driver, see [Custom log routing](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_firelens.html) in the *Amazon Elastic Container Service Developer Guide*. + If you have a custom driver that isn't listed, you can fork the Amazon ECS container agent project that's [available on GitHub](https://docs.aws.amazon.com/https://github.com/aws/amazon-ecs Optional: -- `options` (Map of String) -- `secret_options` (Attributes List) (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) +- `options` (Map of String) The configuration options to send to the log driver. This parameter requires version 1.19 of the Docker Remote API or greater on your container instance. To check the Docker Remote API version on your container instance, log in to your container instance and run the following command: ``sudo docker version --format '{{.Server.APIVersion}}'`` +- `secret_options` (Attributes List) The secrets to pass to the log configuration. For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*. (see [below for nested schema](#nestedatt--container_definitions--log_configuration--secret_options)) ### Nested Schema for `container_definitions.log_configuration.secret_options` Required: -- `name` (String) -- `value_from` (String) +- `name` (String) The name of the secret. +- `value_from` (String) The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store. + For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*. + If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. @@ -219,9 +349,9 @@ Required: Optional: -- `container_path` (String) -- `read_only` (Boolean) -- `source_volume` (String) +- `container_path` (String) The path on the container to mount the host volume at. +- `read_only` (Boolean) If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``. +- `source_volume` (String) The name of the volume to mount. Must be a volume name referenced in the ``name`` parameter of task definition ``volume``. @@ -229,12 +359,33 @@ Optional: Optional: -- `app_protocol` (String) -- `container_port` (Number) -- `container_port_range` (String) -- `host_port` (Number) -- `name` (String) -- `protocol` (String) +- `app_protocol` (String) The application protocol that's used for the port mapping. This parameter only applies to Service Connect. We recommend that you set this parameter to be consistent with the protocol that your application uses. If you set this parameter, Amazon ECS adds protocol-specific connection handling to the Service Connect proxy. If you set this parameter, Amazon ECS adds protocol-specific telemetry in the Amazon ECS console and CloudWatch. + If you don't set a value for this parameter, then TCP is used. However, Amazon ECS doesn't add protocol-specific telemetry for TCP. + ``appProtocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. + Tasks that run in a namespace can use short names to connect to services in the namespace. Tasks can connect to services across all of the clusters in the namespace. Tasks connect through a managed proxy container that collects logs and metrics for increased visibility. Only the tasks that Amazon ECS se +- `container_port` (Number) The port number on the container that's bound to the user-specified or automatically assigned host port. + If you use containers in a task with the ``awsvpc`` or ``host`` network mode, specify the exposed ports using ``containerPort``. + If you use containers in a task with the ``bridge`` network mode and you specify a container port and not a host port, your container automatically receives a host port in the ephemeral port range. For more information, see ``hostPort``. Port mappings that are automatically assigned in this way do not count toward the 100 reserved ports limit of a container instance. +- `container_port_range` (String) The port number range on the container that's bound to the dynamically mapped host port range. + The following rules apply when you specify a ``containerPortRange``: + + You must use either the ``bridge`` network mode or the ``awsvpc`` network mode. + + This parameter is available for both the EC2 and FARGATElong launch types. + + This parameter is available for both the Linux and Windows operating systems. + + The container instance must have at least version 1.67.0 of the container agent and at least version 1.67.0-1 of the ``ecs-init`` package + + You can specify a maximum of 100 port ranges per container. + + You do not specify a ``hostPortRange``. The value of the ``hostPortRange`` is set as follows: + + For containers in a task with the ``awsvpc`` network mode, the ``hostPortRange`` is set to the same value as the ``containerPortRange``. This is a static mapping strategy. + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open host +- `host_port` (Number) The port number on the container instance to reserve for your container. + If you specify a ``containerPortRange``, leave this field empty and the value of the ``hostPort`` is set as follows: + + For containers in a task with the ``awsvpc`` network mode, the ``hostPort`` is set to the same value as the ``containerPort``. This is a static mapping strategy. + + For containers in a task with the ``bridge`` network mode, the Amazon ECS agent finds open ports on the host and automatically binds them to the container ports. This is a dynamic mapping strategy. + + If you use containers in a task with the ``awsvpc`` or ``host`` network mode, the ``hostPort`` can either be left blank or set to the same value as the ``containerPort``. + If you use containers in a task with the ``bridge`` network mode, you can specify a non-reserved host port for your container port mapping, or you can omit the ``hostPort`` (or set it to ``0``) while specifying a ``containerPort`` and your container automatically +- `name` (String) The name that's used for the port mapping. This parameter only applies to Service Connect. This parameter is the name that you use in the ``serviceConnectConfiguration`` of a service. The name can include up to 64 characters. The characters can include lowercase letters, numbers, underscores (_), and hyphens (-). The name can't start with a hyphen. + For more information, see [Service Connect](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html) in the *Amazon Elastic Container Service Developer Guide*. +- `protocol` (String) The protocol used for the port mapping. Valid values are ``tcp`` and ``udp``. The default is ``tcp``. ``protocol`` is immutable in a Service Connect service. Updating this field requires a service deletion and redeployment. @@ -242,7 +393,8 @@ Optional: Optional: -- `credentials_parameter` (String) +- `credentials_parameter` (String) The Amazon Resource Name (ARN) of the secret containing the private repository credentials. + When you use the Amazon ECS API, CLI, or AWS SDK, if the secret exists in the same Region as the task that you're launching then you can use either the full ARN or the name of the secret. When you use the AWS Management Console, you must specify the full ARN of the secret. @@ -250,8 +402,10 @@ Optional: Required: -- `type` (String) -- `value` (String) +- `type` (String) The type of resource to assign to a container. The supported values are ``GPU`` or ``InferenceAccelerator``. +- `value` (String) The value for the specified resource type. + If the ``GPU`` type is used, the value is the number of physical ``GPUs`` the Amazon ECS container agent reserves for the container. The number of GPUs that's reserved for all containers in a task can't exceed the number of available GPUs on the container instance that the task is launched on. + If the ``InferenceAccelerator`` type is used, the ``value`` matches the ``deviceName`` for an [InferenceAccelerator](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_InferenceAccelerator.html) specified in a task definition. @@ -259,8 +413,10 @@ Required: Required: -- `name` (String) -- `value_from` (String) +- `name` (String) The name of the secret. +- `value_from` (String) The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store. + For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*. + If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified. @@ -268,8 +424,11 @@ Required: Optional: -- `namespace` (String) -- `value` (String) +- `namespace` (String) The namespaced kernel parameter to set a ``value`` for. +- `value` (String) The namespaced kernel parameter to set a ``value`` for. + Valid IPC namespace values: ``"kernel.msgmax" | "kernel.msgmnb" | "kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" | "kernel.shmmni" | "kernel.shm_rmid_forced"``, and ``Sysctls`` that start with ``"fs.mqueue.*"`` + Valid network namespace values: ``Sysctls`` that start with ``"net.*"`` + All of these values are supported by Fargate. @@ -277,9 +436,9 @@ Optional: Required: -- `hard_limit` (Number) -- `name` (String) -- `soft_limit` (Number) +- `hard_limit` (Number) The hard limit for the ``ulimit`` type. +- `name` (String) The ``type`` of the ``ulimit``. +- `soft_limit` (Number) The soft limit for the ``ulimit`` type. @@ -287,8 +446,8 @@ Required: Optional: -- `read_only` (Boolean) -- `source_container` (String) +- `read_only` (Boolean) If this value is ``true``, the container has read-only access to the volume. If this value is ``false``, then the container can write to the volume. The default value is ``false``. +- `source_container` (String) The name of another container within the same task definition to mount volumes from. @@ -297,7 +456,7 @@ Optional: Optional: -- `size_in_gi_b` (Number) +- `size_in_gi_b` (Number) The total amount, in GiB, of ephemeral storage to set for the task. The minimum supported value is ``21`` GiB and the maximum supported value is ``200`` GiB. @@ -305,8 +464,8 @@ Optional: Optional: -- `device_name` (String) -- `device_type` (String) +- `device_name` (String) The Elastic Inference accelerator device name. The ``deviceName`` must also be referenced in a container definition as a [ResourceRequirement](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ResourceRequirement.html). +- `device_type` (String) The Elastic Inference accelerator type to use. @@ -314,11 +473,11 @@ Optional: Required: -- `type` (String) +- `type` (String) The type of constraint. The ``MemberOf`` constraint restricts selection to be from a group of valid candidates. Optional: -- `expression` (String) +- `expression` (String) A cluster query language expression to apply to the constraint. For more information, see [Cluster query language](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cluster-query-language.html) in the *Amazon Elastic Container Service Developer Guide*. @@ -326,20 +485,25 @@ Optional: Required: -- `container_name` (String) +- `container_name` (String) The name of the container that will serve as the App Mesh proxy. Optional: -- `proxy_configuration_properties` (Attributes Set) (see [below for nested schema](#nestedatt--proxy_configuration--proxy_configuration_properties)) -- `type` (String) +- `proxy_configuration_properties` (Attributes Set) The set of network configuration parameters to provide the Container Network Interface (CNI) plugin, specified as key-value pairs. + + ``IgnoredUID`` - (Required) The user ID (UID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredGID`` is specified, this field can be empty. + + ``IgnoredGID`` - (Required) The group ID (GID) of the proxy container as defined by the ``user`` parameter in a container definition. This is used to ensure the proxy ignores its own traffic. If ``IgnoredUID`` is specified, this field can be empty. + + ``AppPorts`` - (Required) The list of ports that the application uses. Network traffic to these ports is forwarded to the ``ProxyIngressPort`` and ``ProxyEgressPort``. + + ``ProxyIngressPort`` - (Required) Specifies the port that incoming traffic to the ``AppPorts`` is directed to. + + ``ProxyEgressPort`` - (Required) Specifies the port that outgoi (see [below for nested schema](#nestedatt--proxy_configuration--proxy_configuration_properties)) +- `type` (String) The proxy type. The only supported value is ``APPMESH``. ### Nested Schema for `proxy_configuration.proxy_configuration_properties` Optional: -- `name` (String) -- `value` (String) +- `name` (String) The name of the key-value pair. For environment variables, this is the name of the environment variable. +- `value` (String) The value of the key-value pair. For environment variables, this is the value of the environment variable. @@ -348,8 +512,9 @@ Optional: Optional: -- `cpu_architecture` (String) -- `operating_system_family` (String) +- `cpu_architecture` (String) The CPU architecture. + You can run your Linux tasks on an ARM-based platform by setting the value to ``ARM64``. This option is available for tasks that run on Linux Amazon EC2 instance or Linux containers on Fargate. +- `operating_system_family` (String) The operating system. @@ -357,8 +522,8 @@ Optional: Optional: -- `key` (String) -- `value` (String) +- `key` (String) One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values. +- `value` (String) The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key). @@ -366,22 +531,30 @@ Optional: Optional: -- `configured_at_launch` (Boolean) -- `docker_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--volumes--docker_volume_configuration)) -- `efs_volume_configuration` (Attributes) (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration)) -- `host` (Attributes) (see [below for nested schema](#nestedatt--volumes--host)) -- `name` (String) +- `configured_at_launch` (Boolean) Indicates whether the volume should be configured at launch time. This is used to create Amazon EBS volumes for standalone tasks or tasks created as part of a service. Each task definition revision may only have one volume configured at launch in the volume configuration. + To configure a volume at launch time, use this task definition revision and specify a ``volumeConfigurations`` object when calling the ``CreateService``, ``UpdateService``, ``RunTask`` or ``StartTask`` APIs. +- `docker_volume_configuration` (Attributes) This parameter is specified when you use Docker volumes. + Windows containers only support the use of the ``local`` driver. To use bind mounts, specify the ``host`` parameter instead. + Docker volumes aren't supported by tasks run on FARGATElong. (see [below for nested schema](#nestedatt--volumes--docker_volume_configuration)) +- `efs_volume_configuration` (Attributes) This parameter is specified when you use an Amazon Elastic File System file system for task storage. (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration)) +- `host` (Attributes) This parameter is specified when you use bind mount host volumes. The contents of the ``host`` parameter determine whether your bind mount host volume persists on the host container instance and where it's stored. If the ``host`` parameter is empty, then the Docker daemon assigns a host path for your data volume. However, the data isn't guaranteed to persist after the containers that are associated with it stop running. + Windows containers can mount whole directories on the same drive as ``$env:ProgramData``. Windows containers can't mount directories on a different drive, and mount point can't be across drives. For example, you can mount ``C:\my\path:C:\my\path`` and ``D:\:D:\``, but not ``D:\my\path:C:\my\path`` or ``D:\:C:\my\path``. (see [below for nested schema](#nestedatt--volumes--host)) +- `name` (String) The name of the volume. Up to 255 letters (uppercase and lowercase), numbers, underscores, and hyphens are allowed. + When using a volume configured at launch, the ``name`` is required and must also be specified as the volume name in the ``ServiceVolumeConfiguration`` or ``TaskVolumeConfiguration`` parameter when creating your service or standalone task. + For all other types of volumes, this name is referenced in the ``sourceVolume`` parameter of the ``mountPoints`` object in the container definition. + When a volume is using the ``efsVolumeConfiguration``, the name is required. ### Nested Schema for `volumes.docker_volume_configuration` Optional: -- `autoprovision` (Boolean) -- `driver` (String) -- `driver_opts` (Map of String) -- `labels` (Map of String) -- `scope` (String) +- `autoprovision` (Boolean) If this value is ``true``, the Docker volume is created if it doesn't already exist. + This field is only used if the ``scope`` is ``shared``. +- `driver` (String) The Docker volume driver to use. The driver value must match the driver name provided by Docker because it is used for task placement. If the driver was installed using the Docker plugin CLI, use ``docker plugin ls`` to retrieve the driver name from your container instance. If the driver was installed using another method, use Docker plugin discovery to retrieve the driver name. For more information, see [Docker plugin discovery](https://docs.aws.amazon.com/https://docs.docker.com/engine/extend/plugin_api/#plugin-discovery). This parameter maps to ``Driver`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxdriver`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `driver_opts` (Map of String) A map of Docker driver-specific options passed through. This parameter maps to ``DriverOpts`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxopt`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `labels` (Map of String) Custom metadata to add to your Docker volume. This parameter maps to ``Labels`` in the [Create a volume](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/#operation/VolumeCreate) section of the [Docker Remote API](https://docs.aws.amazon.com/https://docs.docker.com/engine/api/v1.35/) and the ``xxlabel`` option to [docker volume create](https://docs.aws.amazon.com/https://docs.docker.com/engine/reference/commandline/volume_create/). +- `scope` (String) The scope for the Docker volume that determines its lifecycle. Docker volumes that are scoped to a ``task`` are automatically provisioned when the task starts and destroyed when the task stops. Docker volumes that are scoped as ``shared`` persist after the task stops. @@ -389,22 +562,23 @@ Optional: Required: -- `filesystem_id` (String) +- `filesystem_id` (String) The Amazon EFS file system ID to use. Optional: -- `authorization_config` (Attributes) (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration--authorization_config)) -- `root_directory` (String) -- `transit_encryption` (String) -- `transit_encryption_port` (Number) +- `authorization_config` (Attributes) The authorization configuration details for the Amazon EFS file system. (see [below for nested schema](#nestedatt--volumes--efs_volume_configuration--authorization_config)) +- `root_directory` (String) The directory within the Amazon EFS file system to mount as the root directory inside the host. If this parameter is omitted, the root of the Amazon EFS volume will be used. Specifying ``/`` will have the same effect as omitting this parameter. + If an EFS access point is specified in the ``authorizationConfig``, the root directory parameter must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. +- `transit_encryption` (String) Determines whether to use encryption for Amazon EFS data in transit between the Amazon ECS host and the Amazon EFS server. Transit encryption must be turned on if Amazon EFS IAM authorization is used. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see [Encrypting data in transit](https://docs.aws.amazon.com/efs/latest/ug/encryption-in-transit.html) in the *Amazon Elastic File System User Guide*. +- `transit_encryption_port` (Number) The port to use when sending encrypted data between the Amazon ECS host and the Amazon EFS server. If you do not specify a transit encryption port, it will use the port selection strategy that the Amazon EFS mount helper uses. For more information, see [EFS mount helper](https://docs.aws.amazon.com/efs/latest/ug/efs-mount-helper.html) in the *Amazon Elastic File System User Guide*. ### Nested Schema for `volumes.efs_volume_configuration.authorization_config` Optional: -- `access_point_id` (String) -- `iam` (String) +- `access_point_id` (String) The Amazon EFS access point ID to use. If an access point is specified, the root directory value specified in the ``EFSVolumeConfiguration`` must either be omitted or set to ``/`` which will enforce the path set on the EFS access point. If an access point is used, transit encryption must be on in the ``EFSVolumeConfiguration``. For more information, see [Working with Amazon EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) in the *Amazon Elastic File System User Guide*. +- `iam` (String) Determines whether to use the Amazon ECS task role defined in a task definition when mounting the Amazon EFS file system. If it is turned on, transit encryption must be turned on in the ``EFSVolumeConfiguration``. If this parameter is omitted, the default value of ``DISABLED`` is used. For more information, see [Using Amazon EFS access points](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/efs-volumes.html#efs-volume-accesspoints) in the *Amazon Elastic Container Service Developer Guide*. @@ -413,7 +587,8 @@ Optional: Optional: -- `source_path` (String) +- `source_path` (String) When the ``host`` parameter is used, specify a ``sourcePath`` to declare the path on the host container instance that's presented to the container. If this parameter is empty, then the Docker daemon has assigned a host path for you. If the ``host`` parameter contains a ``sourcePath`` file location, then the data volume persists at the specified location on the host container instance until you delete it manually. If the ``sourcePath`` value doesn't exist on the host container instance, the Docker daemon creates it. If the location does exist, the contents of the source path folder are exported. + If you're using the Fargate launch type, the ``sourcePath`` parameter is not supported. ## Import diff --git a/docs/resources/efs_access_point.md b/docs/resources/efs_access_point.md index a111c80683..455f23e40b 100644 --- a/docs/resources/efs_access_point.md +++ b/docs/resources/efs_access_point.md @@ -2,12 +2,14 @@ page_title: "awscc_efs_access_point Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EFS::AccessPoint + The AWS::EFS::AccessPoint resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see Mounting a file system using EFS access points https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html. + This operation requires permissions for the elasticfilesystem:CreateAccessPoint action. --- # awscc_efs_access_point (Resource) -Resource Type definition for AWS::EFS::AccessPoint +The ``AWS::EFS::AccessPoint`` resource creates an EFS access point. An access point is an application-specific view into an EFS file system that applies an operating system user and group, and a file system path, to any file system request made through the access point. The operating system user and group override any identity information provided by the NFS client. The file system path is exposed as the access point's root directory. Applications using the access point can only access data in its own directory and below. To learn more, see [Mounting a file system using EFS access points](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html). + This operation requires permissions for the ``elasticfilesystem:CreateAccessPoint`` action. ## Example Usage @@ -85,14 +87,15 @@ resource "awscc_efs_file_system" "this" { ### Required -- `file_system_id` (String) The ID of the EFS file system that the access point provides access to. +- `file_system_id` (String) The ID of the EFS file system that the access point applies to. Accepts only the ID format for input when specifying a file system, for example ``fs-0123456789abcedf2``. ### Optional -- `access_point_tags` (Attributes Set) (see [below for nested schema](#nestedatt--access_point_tags)) -- `client_token` (String) (optional) A string of up to 64 ASCII characters that Amazon EFS uses to ensure idempotent creation. -- `posix_user` (Attributes) The operating system user and group applied to all file system requests made using the access point. (see [below for nested schema](#nestedatt--posix_user)) -- `root_directory` (Attributes) Specifies the directory on the Amazon EFS file system that the access point exposes as the root directory of your file system to NFS clients using the access point. The clients using the access point can only access the root directory and below. If the RootDirectory>Path specified does not exist, EFS creates it and applies the CreationInfo settings when a client connects to an access point. When specifying a RootDirectory, you need to provide the Path, and the CreationInfo is optional. (see [below for nested schema](#nestedatt--root_directory)) +- `access_point_tags` (Attributes Set) An array of key-value pairs to apply to this resource. + For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--access_point_tags)) +- `client_token` (String) The opaque string specified in the request to ensure idempotent creation. +- `posix_user` (Attributes) The full POSIX identity, including the user ID, group ID, and secondary group IDs on the access point that is used for all file operations by NFS clients using the access point. (see [below for nested schema](#nestedatt--posix_user)) +- `root_directory` (Attributes) The directory on the EFS file system that the access point exposes as the root directory to NFS clients using the access point. (see [below for nested schema](#nestedatt--root_directory)) ### Read-Only @@ -105,8 +108,8 @@ resource "awscc_efs_file_system" "this" { Optional: -- `key` (String) -- `value` (String) +- `key` (String) The tag key (String). The key can't start with ``aws:``. +- `value` (String) The value of the tag key. @@ -127,17 +130,18 @@ Optional: Optional: -- `creation_info` (Attributes) (Optional) Specifies the POSIX IDs and permissions to apply to the access point's RootDirectory. If the RootDirectory>Path specified does not exist, EFS creates the root directory using the CreationInfo settings when a client connects to an access point. When specifying the CreationInfo, you must provide values for all properties. If you do not provide CreationInfo and the specified RootDirectory>Path does not exist, attempts to mount the file system using the access point will fail. (see [below for nested schema](#nestedatt--root_directory--creation_info)) -- `path` (String) Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the CreationInfo. +- `creation_info` (Attributes) (Optional) Specifies the POSIX IDs and permissions to apply to the access point's ``RootDirectory``. If the ``RootDirectory`` > ``Path`` specified does not exist, EFS creates the root directory using the ``CreationInfo`` settings when a client connects to an access point. When specifying the ``CreationInfo``, you must provide values for all properties. + If you do not provide ``CreationInfo`` and the specified ``RootDirectory`` > ``Path`` does not exist, attempts to mount the file system using the access point will fail. (see [below for nested schema](#nestedatt--root_directory--creation_info)) +- `path` (String) Specifies the path on the EFS file system to expose as the root directory to NFS clients using the access point to access the EFS file system. A path can have up to four subdirectories. If the specified path does not exist, you are required to provide the ``CreationInfo``. ### Nested Schema for `root_directory.creation_info` Required: -- `owner_gid` (String) Specifies the POSIX group ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). -- `owner_uid` (String) Specifies the POSIX user ID to apply to the RootDirectory. Accepts values from 0 to 2^32 (4294967295). -- `permissions` (String) Specifies the POSIX permissions to apply to the RootDirectory, in the format of an octal number representing the file's mode bits. +- `owner_gid` (String) Specifies the POSIX group ID to apply to the ``RootDirectory``. Accepts values from 0 to 2^32 (4294967295). +- `owner_uid` (String) Specifies the POSIX user ID to apply to the ``RootDirectory``. Accepts values from 0 to 2^32 (4294967295). +- `permissions` (String) Specifies the POSIX permissions to apply to the ``RootDirectory``, in the format of an octal number representing the file's mode bits. ## Import diff --git a/docs/resources/efs_file_system.md b/docs/resources/efs_file_system.md index ce3b65cf44..666c8e573f 100644 --- a/docs/resources/efs_file_system.md +++ b/docs/resources/efs_file_system.md @@ -2,12 +2,12 @@ page_title: "awscc_efs_file_system Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EFS::FileSystem + The AWS::EFS::FileSystem resource creates a new, empty file system in EFSlong (EFS). You must create a mount target (AWS::EFS::MountTarget https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) to mount your EFS file system on an EC2 or other AWS cloud compute resource. --- # awscc_efs_file_system (Resource) -Resource Type definition for AWS::EFS::FileSystem +The ``AWS::EFS::FileSystem`` resource creates a new, empty file system in EFSlong (EFS). You must create a mount target ([AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html)) to mount your EFS file system on an EC2 or other AWS cloud compute resource. ## Example Usage @@ -74,19 +74,34 @@ resource "awscc_efs_file_system" "this" { ### Optional -- `availability_zone_name` (String) -- `backup_policy` (Attributes) (see [below for nested schema](#nestedatt--backup_policy)) -- `bypass_policy_lockout_safety_check` (Boolean) Whether to bypass the FileSystemPolicy lockout safety check. The policy lockout safety check determines whether the policy in the request will prevent the principal making the request to be locked out from making future PutFileSystemPolicy requests on the file system. Set BypassPolicyLockoutSafetyCheck to True only when you intend to prevent the principal that is making the request from making a subsequent PutFileSystemPolicy request on the file system. Defaults to false -- `encrypted` (Boolean) -- `file_system_policy` (String) -- `file_system_protection` (Attributes) (see [below for nested schema](#nestedatt--file_system_protection)) -- `file_system_tags` (Attributes List) (see [below for nested schema](#nestedatt--file_system_tags)) -- `kms_key_id` (String) -- `lifecycle_policies` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_policies)) -- `performance_mode` (String) -- `provisioned_throughput_in_mibps` (Number) -- `replication_configuration` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration)) -- `throughput_mode` (String) +- `availability_zone_name` (String) For One Zone file systems, specify the AWS Availability Zone in which to create the file system. Use the format ``us-east-1a`` to specify the Availability Zone. For more information about One Zone file systems, see [EFS file system types](https://docs.aws.amazon.com/efs/latest/ug/availability-durability.html#file-system-type) in the *Amazon EFS User Guide*. + One Zone file systems are not available in all Availability Zones in AWS-Regions where Amazon EFS is available. +- `backup_policy` (Attributes) Use the ``BackupPolicy`` to turn automatic backups on or off for the file system. (see [below for nested schema](#nestedatt--backup_policy)) +- `bypass_policy_lockout_safety_check` (Boolean) (Optional) A boolean that specifies whether or not to bypass the ``FileSystemPolicy`` lockout safety check. The lockout safety check determines whether the policy in the request will lock out, or prevent, the IAM principal that is making the request from making future ``PutFileSystemPolicy`` requests on this file system. Set ``BypassPolicyLockoutSafetyCheck`` to ``True`` only when you intend to prevent the IAM principal that is making the request from making subsequent ``PutFileSystemPolicy`` requests on this file system. The default value is ``False``. +- `encrypted` (Boolean) A Boolean value that, if true, creates an encrypted file system. When creating an encrypted file system, you have the option of specifying a KmsKeyId for an existing kms-key-long. If you don't specify a kms-key, then the default kms-key for EFS, ``/aws/elasticfilesystem``, is used to protect the encrypted file system. +- `file_system_policy` (String) The ``FileSystemPolicy`` for the EFS file system. A file system policy is an IAM resource policy used to control NFS access to an EFS file system. For more information, see [Using to control NFS access to Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html) in the *Amazon EFS User Guide*. +- `file_system_protection` (Attributes) Describes the protection on the file system. (see [below for nested schema](#nestedatt--file_system_protection)) +- `file_system_tags` (Attributes List) Use to create one or more tags associated with the file system. Each tag is a user-defined key-value pair. Name your file system on creation by including a ``"Key":"Name","Value":"{value}"`` key-value pair. Each key must be unique. For more information, see [Tagging resources](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) in the *General Reference Guide*. (see [below for nested schema](#nestedatt--file_system_tags)) +- `kms_key_id` (String) The ID of the kms-key-long to be used to protect the encrypted file system. This parameter is only required if you want to use a nondefault kms-key. If this parameter is not specified, the default kms-key for EFS is used. This ID can be in one of the following formats: + + Key ID - A unique identifier of the key, for example ``1234abcd-12ab-34cd-56ef-1234567890ab``. + + ARN - An Amazon Resource Name (ARN) for the key, for example ``arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``. + + Key alias - A previously created display name for a key, for example ``alias/projectKey1``. + + Key alias ARN - An ARN for a key alias, for example ``arn:aws:kms:us-west-2:444455556666:alias/projectKey1``. + + If ``KmsKeyId`` is specified, the ``Encrypted`` parameter must be set to true. +- `lifecycle_policies` (Attributes List) An array of ``LifecyclePolicy`` objects that define the file system's ``LifecycleConfiguration`` object. A ``LifecycleConfiguration`` object informs Lifecycle management of the following: + + When to move files in the file system from primary storage to IA storage. + + When to move files in the file system from primary storage or IA storage to Archive storage. + + When to move files that are in IA or Archive storage to primary storage. + + EFS requires that each ``LifecyclePolicy`` object have only a single transition. This means that in a request body, ``LifecyclePolicies`` needs to be structured as an array of ``LifecyclePolicy`` objects, one object for each transition, ``TransitionToIA``, ``TransitionToArchive`` ``TransitionToPrimaryStorageClass``. See the example requests in the following section for more information. (see [below for nested schema](#nestedatt--lifecycle_policies)) +- `performance_mode` (String) The Performance mode of the file system. We recommend ``generalPurpose`` performance mode for all file systems. File systems using the ``maxIO`` performance mode can scale to higher levels of aggregate throughput and operations per second with a tradeoff of slightly higher latencies for most file operations. The performance mode can't be changed after the file system has been created. The ``maxIO`` mode is not supported on One Zone file systems. + Due to the higher per-operation latencies with Max I/O, we recommend using General Purpose performance mode for all file systems. + Default is ``generalPurpose``. +- `provisioned_throughput_in_mibps` (Number) The throughput, measured in mebibytes per second (MiBps), that you want to provision for a file system that you're creating. Required if ``ThroughputMode`` is set to ``provisioned``. Valid values are 1-3414 MiBps, with the upper limit depending on Region. To increase this limit, contact SUP. For more information, see [Amazon EFS quotas that you can increase](https://docs.aws.amazon.com/efs/latest/ug/limits.html#soft-limits) in the *Amazon EFS User Guide*. +- `replication_configuration` (Attributes) Describes the replication configuration for a specific file system. (see [below for nested schema](#nestedatt--replication_configuration)) +- `throughput_mode` (String) Specifies the throughput mode for the file system. The mode can be ``bursting``, ``provisioned``, or ``elastic``. If you set ``ThroughputMode`` to ``provisioned``, you must also set a value for ``ProvisionedThroughputInMibps``. After you create the file system, you can decrease your file system's Provisioned throughput or change between the throughput modes, with certain time restrictions. For more information, see [Specifying throughput with provisioned mode](https://docs.aws.amazon.com/efs/latest/ug/performance.html#provisioned-throughput) in the *Amazon EFS User Guide*. + Default is ``bursting``. ### Read-Only @@ -99,7 +114,9 @@ resource "awscc_efs_file_system" "this" { Required: -- `status` (String) +- `status` (String) Set the backup policy status for the file system. + + *ENABLED* - Turns automatic backups on for the file system. + + *DISABLED* - Turns automatic backups off for the file system. @@ -107,7 +124,12 @@ Required: Optional: -- `replication_overwrite_protection` (String) +- `replication_overwrite_protection` (String) The status of the file system's replication overwrite protection. + + ``ENABLED`` ? The file system cannot be used as the destination file system in a replication configuration. The file system is writeable. Replication overwrite protection is ``ENABLED`` by default. + + ``DISABLED`` ? The file system can be used as the destination file system in a replication configuration. The file system is read-only and can only be modified by EFS replication. + + ``REPLICATING`` ? The file system is being used as the destination file system in a replication configuration. The file system is read-only and is only modified only by EFS replication. + + If the replication configuration is deleted, the file system's replication overwrite protection is re-enabled, the file system becomes writeable. @@ -115,8 +137,8 @@ Optional: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key (String). The key can't start with ``aws:``. +- `value` (String) The value of the tag key. @@ -124,9 +146,9 @@ Required: Optional: -- `transition_to_archive` (String) -- `transition_to_ia` (String) -- `transition_to_primary_storage_class` (String) +- `transition_to_archive` (String) The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events. +- `transition_to_ia` (String) The number of days after files were last accessed in primary storage (the Standard storage class) at which to move them to Infrequent Access (IA) storage. Metadata operations such as listing the contents of a directory don't count as file access events. +- `transition_to_primary_storage_class` (String) Whether to move files back to primary (Standard) storage after they are accessed in IA or Archive storage. Metadata operations such as listing the contents of a directory don't count as file access events. @@ -134,17 +156,20 @@ Optional: Optional: -- `destinations` (Attributes List) (see [below for nested schema](#nestedatt--replication_configuration--destinations)) +- `destinations` (Attributes List) An array of destination objects. Only one destination object is supported. (see [below for nested schema](#nestedatt--replication_configuration--destinations)) ### Nested Schema for `replication_configuration.destinations` Optional: -- `availability_zone_name` (String) -- `file_system_id` (String) -- `kms_key_id` (String) -- `region` (String) +- `availability_zone_name` (String) The AWS For One Zone file systems, the replication configuration must specify the Availability Zone in which the destination file system is located. + Use the format ``us-east-1a`` to specify the Availability Zone. For more information about One Zone file systems, see [EFS file system types](https://docs.aws.amazon.com/efs/latest/ug/storage-classes.html) in the *Amazon EFS User Guide*. + One Zone file system type is not available in all Availability Zones in AWS-Regions where Amazon EFS is available. +- `file_system_id` (String) The ID of the destination Amazon EFS file system. +- `kms_key_id` (String) The ID of an kms-key-long used to protect the encrypted file system. +- `region` (String) The AWS-Region in which the destination file system is located. + For One Zone file systems, the replication configuration must specify the AWS-Region in which the destination file system is located. ## Import diff --git a/docs/resources/efs_mount_target.md b/docs/resources/efs_mount_target.md index db2c1ff826..49c2f4a35c 100644 --- a/docs/resources/efs_mount_target.md +++ b/docs/resources/efs_mount_target.md @@ -2,12 +2,12 @@ page_title: "awscc_efs_mount_target Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::EFS::MountTarget + The AWS::EFS::MountTarget resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. --- # awscc_efs_mount_target (Resource) -Resource Type definition for AWS::EFS::MountTarget +The ``AWS::EFS::MountTarget`` resource is an Amazon EFS resource that creates a mount target for an EFS file system. You can then mount the file system on Amazon EC2 instances or other resources by using the mount target. ## Example Usage @@ -53,13 +53,13 @@ resource "awscc_ec2_subnet" "main" { ### Required -- `file_system_id` (String) -- `security_groups` (Set of String) -- `subnet_id` (String) +- `file_system_id` (String) The ID of the file system for which to create the mount target. +- `security_groups` (Set of String) Up to five VPC security group IDs, of the form ``sg-xxxxxxxx``. These must be for the same VPC as subnet specified. +- `subnet_id` (String) The ID of the subnet to add the mount target in. For One Zone file systems, use the subnet that is associated with the file system's Availability Zone. ### Optional -- `ip_address` (String) +- `ip_address` (String) Valid IPv4 address within the address range of the specified subnet. ### Read-Only diff --git a/docs/resources/gamelift_fleet.md b/docs/resources/gamelift_fleet.md index e479a458b3..09c1b9bf52 100644 --- a/docs/resources/gamelift_fleet.md +++ b/docs/resources/gamelift_fleet.md @@ -107,7 +107,7 @@ resource "aws_iam_policy" "example" { ### Optional - `anywhere_configuration` (Attributes) Configuration for Anywhere fleet. (see [below for nested schema](#nestedatt--anywhere_configuration)) -- `apply_capacity` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. +- `apply_capacity` (String) Determines whether to apply fleet or location capacities on fleet creation. - `build_id` (String) A unique identifier for a build to be deployed on the new fleet. If you are deploying the fleet with a custom game build, you must specify this property. The build must have been successfully uploaded to Amazon GameLift and be in a READY status. This fleet setting cannot be changed once the fleet is created. - `certificate_configuration` (Attributes) Indicates whether to generate a TLS/SSL certificate for the new fleet. TLS certificates are used for encrypting traffic between game clients and game servers running on GameLift. If this parameter is not set, certificate generation is disabled. This fleet setting cannot be changed once the fleet is created. (see [below for nested schema](#nestedatt--certificate_configuration)) - `compute_type` (String) ComputeType to differentiate EC2 hardware managed by GameLift and Anywhere hardware managed by the customer. diff --git a/docs/resources/guardduty_master.md b/docs/resources/guardduty_master.md new file mode 100644 index 0000000000..50780b7237 --- /dev/null +++ b/docs/resources/guardduty_master.md @@ -0,0 +1,37 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_master Resource - terraform-provider-awscc" +subcategory: "" +description: |- + GuardDuty Master resource schema +--- + +# awscc_guardduty_master (Resource) + +GuardDuty Master resource schema + + + + +## Schema + +### Required + +- `detector_id` (String) Unique ID of the detector of the GuardDuty member account. +- `master_id` (String) ID of the account used as the master account. + +### Optional + +- `invitation_id` (String) Value used to validate the master account to the member account. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_guardduty_master.example +``` diff --git a/docs/resources/guardduty_member.md b/docs/resources/guardduty_member.md new file mode 100644 index 0000000000..8fd7060faa --- /dev/null +++ b/docs/resources/guardduty_member.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_guardduty_member Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::GuardDuty::Member +--- + +# awscc_guardduty_member (Resource) + +Resource Type definition for AWS::GuardDuty::Member + + + + +## Schema + +### Required + +- `email` (String) + +### Optional + +- `detector_id` (String) +- `disable_email_notification` (Boolean) +- `member_id` (String) +- `message` (String) +- `status` (String) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_guardduty_member.example +``` diff --git a/docs/resources/iam_group_policy.md b/docs/resources/iam_group_policy.md index b3c370a0bc..9acedb9a50 100644 --- a/docs/resources/iam_group_policy.md +++ b/docs/resources/iam_group_policy.md @@ -2,12 +2,16 @@ page_title: "awscc_iam_group_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Schema for IAM Group Policy + Adds or updates an inline policy document that is embedded in the specified IAM group. + A group can also have managed policies attached to it. To attach a managed policy to a group, use AWS::IAM::Group https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html. To create a new managed policy, use AWS::IAM::ManagedPolicy https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html. For information about policies, see Managed policies and inline policies https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html in the IAM User Guide. + For information about the maximum number of inline policies that you can embed in a group, see IAM and quotas https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html in the IAM User Guide. --- # awscc_iam_group_policy (Resource) -Schema for IAM Group Policy +Adds or updates an inline policy document that is embedded in the specified IAM group. + A group can also have managed policies attached to it. To attach a managed policy to a group, use [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html). To create a new managed policy, use [AWS::IAM::ManagedPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html). For information about policies, see [Managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) in the *IAM User Guide*. + For information about the maximum number of inline policies that you can embed in a group, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. ## Example Usage @@ -44,11 +48,18 @@ resource "awscc_iam_group" "example" { ### Required - `group_name` (String) The name of the group to associate the policy with. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. - `policy_name` (String) The name of the policy document. + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@- ### Optional - `policy_document` (String) The policy document. + You must provide policies in JSON format in IAM. However, for CFN templates formatted in YAML, you can provide the policy in JSON or YAML format. CFN always converts a YAML policy to JSON format before submitting it to IAM. + The [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex) used to validate this parameter is a string of characters consisting of the following: + + Any printable ASCII character ranging from the space character (``\u0020``) through the end of the ASCII character range + + The printable characters in the Basic Latin and Latin-1 Supplement character set (through ``\u00FF``) + + The special characters tab (``\u0009``), line feed (``\u000A``), and carriage return (``\u000D``) ### Read-Only diff --git a/docs/resources/iam_user.md b/docs/resources/iam_user.md index 89ab1c59f3..4d5ee712f2 100644 --- a/docs/resources/iam_user.md +++ b/docs/resources/iam_user.md @@ -3,12 +3,14 @@ page_title: "awscc_iam_user Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::IAM::User + Creates a new IAM user for your AWS-account. + For information about quotas for the number of IAM users you can create, see IAM and quotas https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html in the IAM User Guide. --- # awscc_iam_user (Resource) -Resource Type definition for AWS::IAM::User +Creates a new IAM user for your AWS-account. + For information about quotas for the number of IAM users you can create, see [IAM and quotas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html) in the *IAM User Guide*. @@ -18,17 +20,31 @@ Resource Type definition for AWS::IAM::User ### Optional - `groups` (List of String) A list of group names to which you want to add the user. -- `login_profile` (Attributes) Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the AWS Management Console. (see [below for nested schema](#nestedatt--login_profile)) -- `managed_policy_arns` (Set of String) A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the role. -- `path` (String) The path to the user. For more information about paths, see IAM identifiers in the IAM User Guide. The ARN of the policy used to set the permissions boundary for the user. -- `permissions_boundary` (String) The ARN of the policy that is used to set the permissions boundary for the user. -- `policies` (Attributes List) Adds or updates an inline policy document that is embedded in the specified IAM role. (see [below for nested schema](#nestedatt--policies)) -- `tags` (Attributes List) A list of tags that are associated with the user. For more information about tagging, see Tagging IAM resources in the IAM User Guide. (see [below for nested schema](#nestedatt--tags)) -- `user_name` (String) The friendly name identifying the user. +- `login_profile` (Attributes) Creates a password for the specified IAM user. A password allows an IAM user to access AWS services through the console. + You can use the CLI, the AWS API, or the *Users* page in the IAM console to create a password for any IAM user. Use [ChangePassword](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ChangePassword.html) to update your own existing password in the *My Security Credentials* page in the console. + For more information about managing passwords, see [Managing passwords](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html) in the *User Guide*. (see [below for nested schema](#nestedatt--login_profile)) +- `managed_policy_arns` (Set of String) A list of Amazon Resource Names (ARNs) of the IAM managed policies that you want to attach to the user. + For more information about ARNs, see [Amazon Resource Names (ARNs) and Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) in the *General Reference*. +- `path` (String) The path for the user name. For more information about paths, see [IAM identifiers](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html) in the *IAM User Guide*. + This parameter is optional. If it is not included, it defaults to a slash (/). + This parameter allows (through its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (``\u0021``) through the DEL character (``\u007F``), including most punctuation characters, digits, and upper and lowercased letters. +- `permissions_boundary` (String) The ARN of the managed policy that is used to set the permissions boundary for the user. + A permissions boundary policy defines the maximum permissions that identity-based policies can grant to an entity, but does not grant permissions. Permissions boundaries do not define the maximum permissions that a resource-based policy can grant to an entity. To learn more, see [Permissions boundaries for IAM entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM User Guide*. + For more information about policy types, see [Policy types](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policy-types) in the *IAM User Guide*. +- `policies` (Attributes List) Adds or updates an inline policy document that is embedded in the specified IAM user. To view AWS::IAM::User snippets, see [Declaring an User Resource](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-iam.html#scenario-iam-user). + The name of each policy for a role, user, or group must be unique. If you don't choose unique names, updates to the IAM identity will fail. + For information about limits on the number of inline policies that you can embed in a user, see [Limitations on Entities](https://docs.aws.amazon.com/IAM/latest/UserGuide/LimitationsOnEntities.html) in the *User Guide*. (see [below for nested schema](#nestedatt--policies)) +- `tags` (Attributes List) A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) in the *IAM User Guide*. + If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. (see [below for nested schema](#nestedatt--tags)) +- `user_name` (String) The name of the user to create. Do not include the path in this value. + This parameter allows (per its [regex pattern](https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex)) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-. The user name must be unique within the account. User names are not distinguished by case. For example, you cannot create users named both "John" and "john". + If you don't specify a name, CFN generates a unique physical ID and uses that ID for the user name. + If you specify a name, you must specify the ``CAPABILITY_NAMED_IAM`` value to acknowledge your template's capabilities. For more information, see [Acknowledging Resources in Templates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#using-iam-capabilities). + Naming an IAM resource can cause an unrecoverable error if you reuse the same template in multiple Regions. To prevent this, we recommend using ``Fn::Join`` and ``AWS::Region`` to create a Region-specific name, as in the following example: ``{"Fn::Join": ["", [{"Ref": "AWS::Region"}, {"Ref": "MyResourceName"}]]}``. ### Read-Only -- `arn` (String) The Amazon Resource Name (ARN) that identifies the user. For more information about ARNs and how to use ARNs in policies, see IAM Identifiers in the IAM User Guide. +- `arn` (String) - `id` (String) Uniquely identifies the resource. @@ -48,7 +64,7 @@ Optional: Required: -- `policy_document` (String) The policy document. +- `policy_document` (String) The entire contents of the policy that defines permissions. For more information, see [Overview of JSON policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json). - `policy_name` (String) The friendly name (not ARN) identifying the policy. @@ -57,8 +73,9 @@ Required: Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) The key name that can be used to look up or retrieve the associated value. For example, ``Department`` or ``Cost Center`` are common choices. +- `value` (String) The value associated with this tag. For example, tags with a key name of ``Department`` could have values such as ``Human Resources``, ``Accounting``, and ``Support``. Tags with a key name of ``Cost Center`` might have values that consist of the number associated with the different cost centers in your company. Typically, many resources have tags with the same key name but with different values. + AWS always interprets the tag ``Value`` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code. ## Import diff --git a/docs/resources/iot_domain_configuration.md b/docs/resources/iot_domain_configuration.md index d2b8a13a8f..a39d719a4c 100644 --- a/docs/resources/iot_domain_configuration.md +++ b/docs/resources/iot_domain_configuration.md @@ -22,6 +22,7 @@ Create and manage a Domain Configuration - `domain_configuration_status` (String) - `domain_name` (String) - `server_certificate_arns` (List of String) +- `server_certificate_config` (Attributes) (see [below for nested schema](#nestedatt--server_certificate_config)) - `service_type` (String) - `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) - `tls_config` (Attributes) (see [below for nested schema](#nestedatt--tls_config)) @@ -43,6 +44,14 @@ Optional: - `default_authorizer_name` (String) + +### Nested Schema for `server_certificate_config` + +Optional: + +- `enable_ocsp_check` (Boolean) + + ### Nested Schema for `tags` diff --git a/docs/resources/iotwireless_wireless_device.md b/docs/resources/iotwireless_wireless_device.md index 8be483f014..821201cbcb 100644 --- a/docs/resources/iotwireless_wireless_device.md +++ b/docs/resources/iotwireless_wireless_device.md @@ -44,6 +44,7 @@ Optional: - `abp_v11` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--abp_v11)) - `dev_eui` (String) - `device_profile_id` (String) +- `f_ports` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--f_ports)) - `otaa_v10_x` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--otaa_v10_x)) - `otaa_v11` (Attributes) (see [below for nested schema](#nestedatt--lo_ra_wan--otaa_v11)) - `service_profile_id` (String) @@ -86,6 +87,24 @@ Required: + +### Nested Schema for `lo_ra_wan.f_ports` + +Optional: + +- `applications` (Attributes Set) A list of optional LoRaWAN application information, which can be used for geolocation. (see [below for nested schema](#nestedatt--lo_ra_wan--f_ports--applications)) + + +### Nested Schema for `lo_ra_wan.f_ports.applications` + +Optional: + +- `destination_name` (String) The name of the position data destination that describes the AWS IoT rule that processes the device's position data for use by AWS IoT Core for LoRaWAN. +- `f_port` (Number) The Fport value. +- `type` (String) Application type, which can be specified to obtain real-time position information of your LoRaWAN device. + + + ### Nested Schema for `lo_ra_wan.otaa_v10_x` diff --git a/docs/resources/kms_alias.md b/docs/resources/kms_alias.md index 5e00f8c068..f8e8366baa 100644 --- a/docs/resources/kms_alias.md +++ b/docs/resources/kms_alias.md @@ -2,12 +2,16 @@ page_title: "awscc_kms_alias Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::KMS::Alias resource specifies a display name for an AWS KMS key in AWS Key Management Service (AWS KMS). You can use an alias to identify an AWS KMS key in cryptographic operations. + The AWS::KMS::Alias resource specifies a display name for a KMS key https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys. You can use an alias to identify a KMS key in the KMS console, in the DescribeKey https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html operation, and in cryptographic operations https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations, such as Decrypt https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html and GenerateDataKey https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html. + Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see ABAC for https://docs.aws.amazon.com/kms/latest/developerguide/abac.html in the Developer Guide. + Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys i --- # awscc_kms_alias (Resource) -The AWS::KMS::Alias resource specifies a display name for an AWS KMS key in AWS Key Management Service (AWS KMS). You can use an alias to identify an AWS KMS key in cryptographic operations. +The ``AWS::KMS::Alias`` resource specifies a display name for a [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys). You can use an alias to identify a KMS key in the KMS console, in the [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) operation, and in [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations), such as [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) and [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html). + Adding, deleting, or updating an alias can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*. + Using an alias to refer to a KMS key can help you simplify key management. For example, an alias in your code can be associated with different KMS keys i ## Example Usage @@ -45,8 +49,18 @@ resource "awscc_kms_alias" "this" { ### Required -- `alias_name` (String) Specifies the alias name. This value must begin with alias/ followed by a name, such as alias/ExampleAlias. The alias name cannot begin with alias/aws/. The alias/aws/ prefix is reserved for AWS managed keys. -- `target_key_id` (String) Identifies the AWS KMS key to which the alias refers. Specify the key ID or the Amazon Resource Name (ARN) of the AWS KMS key. You cannot specify another alias. For help finding the key ID and ARN, see Finding the Key ID and ARN in the AWS Key Management Service Developer Guide. +- `alias_name` (String) Specifies the alias name. This value must begin with ``alias/`` followed by a name, such as ``alias/ExampleAlias``. + If you change the value of the ``AliasName`` property, the existing alias is deleted and a new alias is created for the specified KMS key. This change can disrupt applications that use the alias. It can also allow or deny access to a KMS key affected by attribute-based access control (ABAC). + The alias must be string of 1-256 characters. It can contain only alphanumeric characters, forward slashes (/), underscores (_), and dashes (-). The alias name cannot begin with ``alias/aws/``. The ``alias/aws/`` prefix is reserved for [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk). +- `target_key_id` (String) Associates the alias with the specified [](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). The KMS key must be in the same AWS-account and Region. + A valid key ID is required. If you supply a null or empty string value, this operation returns an error. + For help finding the key ID and ARN, see [Finding the key ID and ARN](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html#find-cmk-id-arn) in the *Developer Guide*. + Specify the key ID or the key ARN of the KMS key. + For example: + + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` + + To get the key ID and key ARN for a KMS key, use [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) or [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html). ### Read-Only diff --git a/docs/resources/kms_key.md b/docs/resources/kms_key.md index 508877a8cd..c4388f04bb 100644 --- a/docs/resources/kms_key.md +++ b/docs/resources/kms_key.md @@ -2,12 +2,16 @@ page_title: "awscc_kms_key Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::KMS::Key resource specifies an AWS KMS key in AWS Key Management Service (AWS KMS). Authorized users can use the AWS KMS key to encrypt and decrypt small amounts of data (up to 4096 bytes), but they are more commonly used to generate data keys. You can also use AWS KMS keys to encrypt data stored in AWS services that are integrated with AWS KMS or within their applications. + The AWS::KMS::Key resource specifies an KMS key https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use AWS::KMS::Key to create multi-Region primary keys https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key of all supported types. To replicate a multi-Region key, use the AWS::KMS::ReplicaKey resource. + If you change the value of the KeySpec, KeyUsage, Origin, or MultiRegion properties of an existing KMS key, the update request fails, regardless of the value of the UpdateReplacePolicy attribute https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html. This prevents you from accidentally deleting a KMS key by changing any of its immutable property values. + KMS replaced th --- # awscc_kms_key (Resource) -The AWS::KMS::Key resource specifies an AWS KMS key in AWS Key Management Service (AWS KMS). Authorized users can use the AWS KMS key to encrypt and decrypt small amounts of data (up to 4096 bytes), but they are more commonly used to generate data keys. You can also use AWS KMS keys to encrypt data stored in AWS services that are integrated with AWS KMS or within their applications. +The ``AWS::KMS::Key`` resource specifies an [KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) in KMSlong. You can use this resource to create symmetric encryption KMS keys, asymmetric KMS keys for encryption or signing, and symmetric HMAC KMS keys. You can use ``AWS::KMS::Key`` to create [multi-Region primary keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html#mrk-primary-key) of all supported types. To replicate a multi-Region key, use the ``AWS::KMS::ReplicaKey`` resource. + If you change the value of the ``KeySpec``, ``KeyUsage``, ``Origin``, or ``MultiRegion`` properties of an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing any of its immutable property values. + KMS replaced th ## Example Usage @@ -189,16 +193,46 @@ resource "awscc_kms_key" "this" { ### Optional - `bypass_policy_lockout_safety_check` (Boolean) Skips ("bypasses") the key policy lockout safety check. The default value is false. -- `description` (String) A description of the AWS KMS key. Use a description that helps you to distinguish this AWS KMS key from others in the account, such as its intended use. -- `enable_key_rotation` (Boolean) Enables automatic rotation of the key material for the specified AWS KMS key. By default, automation key rotation is not enabled. -- `enabled` (Boolean) Specifies whether the AWS KMS key is enabled. Disabled AWS KMS keys cannot be used in cryptographic operations. -- `key_policy` (String) The key policy that authorizes use of the AWS KMS key. The key policy must observe the following rules. -- `key_spec` (String) Specifies the type of AWS KMS key to create. The default value is SYMMETRIC_DEFAULT. This property is required only for asymmetric AWS KMS keys. You can't change the KeySpec value after the AWS KMS key is created. -- `key_usage` (String) Determines the cryptographic operations for which you can use the AWS KMS key. The default value is ENCRYPT_DECRYPT. This property is required only for asymmetric AWS KMS keys. You can't change the KeyUsage value after the AWS KMS key is created. -- `multi_region` (Boolean) Specifies whether the AWS KMS key should be Multi-Region. You can't change the MultiRegion value after the AWS KMS key is created. -- `origin` (String) The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is AWS_KMS, which means that AWS KMS creates the key material. -- `pending_window_in_days` (Number) Specifies the number of days in the waiting period before AWS KMS deletes an AWS KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. -- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + Setting this value to true increases the risk that the KMS key becomes unmanageable. Do not set this value to true indiscriminately. + For more information, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html#prevent-unmanageable-key) in the *Developer Guide*. + Use this parameter only when you intend to prevent the principal that is making the request from making a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key. +- `description` (String) A description of the KMS key. Use a description that helps you to distinguish this KMS key from others in the account, such as its intended use. +- `enable_key_rotation` (Boolean) Enables automatic rotation of the key material for the specified KMS key. By default, automatic key rotation is not enabled. + KMS supports automatic rotation only for symmetric encryption KMS keys (``KeySpec`` = ``SYMMETRIC_DEFAULT``). For asymmetric KMS keys, HMAC KMS keys, and KMS keys with Origin ``EXTERNAL``, omit the ``EnableKeyRotation`` property or set it to ``false``. + To enable automatic key rotation of the key material for a multi-Region KMS key, set ``EnableKeyRotation`` to ``true`` on the primary key (created by using ``AWS::KMS::Key``). KMS copies the rotation status to all replica keys. For details, see [Rotating multi-Region keys](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-manage.html#multi-region-rotate) in the *Developer Guide*. + When you enable automatic rotation, KMS automatically creates new key material for the KMS key one year after the enable date and every year thereafter. KMS retains all key material until you delete the KMS key. Fo +- `enabled` (Boolean) Specifies whether the KMS key is enabled. Disabled KMS keys cannot be used in cryptographic operations. + When ``Enabled`` is ``true``, the *key state* of the KMS key is ``Enabled``. When ``Enabled`` is ``false``, the key state of the KMS key is ``Disabled``. The default value is ``true``. + The actual key state of the KMS key might be affected by actions taken outside of CloudFormation, such as running the [EnableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_EnableKey.html), [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html), or [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) operations. + For information about the key states of a KMS key, see [Key state: Effect on your KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) in the *Developer Guide*. +- `key_policy` (String) The key policy to attach to the KMS key. + If you provide a key policy, it must meet the following criteria: + + The key policy must allow the caller to make a subsequent [PutKeyPolicy](https://docs.aws.amazon.com/kms/latest/APIReference/API_PutKeyPolicy.html) request on the KMS key. This reduces the risk that the KMS key becomes unmanageable. For more information, see [Default key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-root-enable-iam) in the *Developer Guide*. (To omit this condition, set ``BypassPolicyLockoutSafetyCheck`` to true.) + + Each statement in the key policy must contain one or more principals. The principals in the key policy must exist and be visible to KMS. When you create a new AWS principal (for example, an IAM user or role), you might need to enforce a delay before including the new principal in a key policy because the new principal might not be immediately visible to KMS. For more information, see [ +- `key_spec` (String) Specifies the type of KMS key to create. The default value, ``SYMMETRIC_DEFAULT``, creates a KMS key with a 256-bit symmetric key for encryption and decryption. In China Regions, ``SYMMETRIC_DEFAULT`` creates a 128-bit symmetric key that uses SM4 encryption. You can't change the ``KeySpec`` value after the KMS key is created. For help choosing a key spec for your KMS key, see [Choosing a KMS key type](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose.html) in the *Developer Guide*. + The ``KeySpec`` property determines the type of key material in the KMS key and the algorithms that the KMS key supports. To further restrict the algorithms that can be used with the KMS key, use a condition key in its key policy or IAM policy. For more information, see [condition keys](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms) in the *Developer Guide*. + If you change the value of the ``KeySpec`` property on an existing KMS key, the u +- `key_usage` (String) Determines the [cryptographic operations](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#cryptographic-operations) for which you can use the KMS key. The default value is ``ENCRYPT_DECRYPT``. This property is required for asymmetric KMS keys and HMAC KMS keys. You can't change the ``KeyUsage`` value after the KMS key is created. + If you change the value of the ``KeyUsage`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. + Select only one valid value. + + For symmetric encryption KMS keys, omit the property or specify ``ENCRYPT_DECRYPT``. + + For asymmetric KMS keys with RSA key material, specify ``ENCRYPT_DECRYPT`` or ``SIGN_VERIFY``. + + For asymmetric KMS keys with ECC key material, specify +- `multi_region` (Boolean) Creates a multi-Region primary key that you can replicate in other AWS-Regions. You can't change the ``MultiRegion`` value after the KMS key is created. + For a list of AWS-Regions in which multi-Region keys are supported, see [Multi-Region keys in](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) in the **. + If you change the value of the ``MultiRegion`` property on an existing KMS key, the update request fails, regardless of the value of the [UpdateReplacePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatereplacepolicy.html). This prevents you from accidentally deleting a KMS key by changing an immutable property value. + For a multi-Region key, set to this property to ``true``. For a single-Region key, omit this property or set it to ``false``. The default value is ``false``. + *Multi-Region keys* are an KMS feature that lets you create multiple interoperable KMS keys in different AWS-Regions. Bec +- `origin` (String) The source of the key material for the KMS key. You cannot change the origin after you create the KMS key. The default is ``AWS_KMS``, which means that KMS creates the key material. + To [create a KMS key with no key material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys-create-cmk.html) (for imported key material), set this value to ``EXTERNAL``. For more information about importing key material into KMS, see [Importing Key Material](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) in the *Developer Guide*. + You can ignore ``ENABLED`` when Origin is ``EXTERNAL``. When a KMS key with Origin ``EXTERNAL`` is created, the key state is ``PENDING_IMPORT`` and ``ENABLED`` is ``false``. After you import the key material, ``ENABLED`` updated to ``true``. The KMS key can then be used for Cryptographic Operations. + CFN doesn't support creating an ``Origin`` parameter of the ``AWS_CLOUDHSM`` or ``EXTERNAL_KEY_STORE`` values. +- `pending_window_in_days` (Number) Specifies the number of days in the waiting period before KMS deletes a KMS key that has been removed from a CloudFormation stack. Enter a value between 7 and 30 days. The default value is 30 days. + When you remove a KMS key from a CloudFormation stack, KMS schedules the KMS key for deletion and starts the mandatory waiting period. The ``PendingWindowInDays`` property determines the length of waiting period. During the waiting period, the key state of KMS key is ``Pending Deletion`` or ``Pending Replica Deletion``, which prevents the KMS key from being used in cryptographic operations. When the waiting period expires, KMS permanently deletes the KMS key. + KMS will not delete a [multi-Region primary key](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) that has replica keys. If you remove a multi-Region primary key from a CloudFormation stack, its key state changes to ``PendingReplicaDeletion`` so it cannot be replicated or used in cryptographic ope +- `tags` (Attributes Set) Assigns one or more tags to the replica key. + Tagging or untagging a KMS key can allow or deny permission to the KMS key. For details, see [ABAC for](https://docs.aws.amazon.com/kms/latest/developerguide/abac.html) in the *Developer Guide*. + For information about tags in KMS, see [Tagging keys](https://docs.aws.amazon.com/kms/latest/developerguide/tagging-keys.html) in the *Developer Guide*. For information about tags in CloudFormation, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html). (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -211,8 +245,8 @@ resource "awscc_kms_key" "this" { Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) +- `value` (String) ## Import diff --git a/docs/resources/lambda_function.md b/docs/resources/lambda_function.md index 5b01493d53..4d33f2f9ce 100644 --- a/docs/resources/lambda_function.md +++ b/docs/resources/lambda_function.md @@ -2,12 +2,16 @@ page_title: "awscc_lambda_function Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::Lambda::Function in region + The AWS::Lambda::Function resource creates a Lambda function. To create a function, you need a deployment package https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html and an execution role https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html. The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing. + You set the package type to Image if the deployment package is a container image https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html. For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties. + You set the package type to Zip if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lam --- # awscc_lambda_function (Resource) -Resource Type definition for AWS::Lambda::Function in region +The ``AWS::Lambda::Function`` resource creates a Lambda function. To create a function, you need a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html) and an [execution role](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html). The deployment package is a .zip file archive or container image that contains your function code. The execution role grants the function permission to use AWS services, such as Amazon CloudWatch Logs for log streaming and AWS X-Ray for request tracing. + You set the package type to ``Image`` if the deployment package is a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html). For a container image, the code property must include the URI of a container image in the Amazon ECR registry. You do not need to specify the handler and runtime properties. + You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lam ## Example Usage @@ -174,46 +178,51 @@ resource "awscc_lambda_function" "main" { ### Optional -- `architectures` (List of String) -- `code_signing_config_arn` (String) A unique Arn for CodeSigningConfig resource -- `dead_letter_config` (Attributes) A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. (see [below for nested schema](#nestedatt--dead_letter_config)) +- `architectures` (List of String) The instruction set architecture that the function supports. Enter a string array with one of the valid values (arm64 or x86_64). The default value is ``x86_64``. +- `code_signing_config_arn` (String) To enable code signing for this function, specify the ARN of a code-signing configuration. A code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function. +- `dead_letter_config` (Attributes) A dead-letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. For more information, see [Dead-letter queues](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq). (see [below for nested schema](#nestedatt--dead_letter_config)) - `description` (String) A description of the function. - `environment` (Attributes) Environment variables that are accessible from function code during execution. (see [below for nested schema](#nestedatt--environment)) -- `ephemeral_storage` (Attributes) A function's ephemeral storage settings. (see [below for nested schema](#nestedatt--ephemeral_storage)) -- `file_system_configs` (Attributes List) Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an AWS::EFS::MountTarget resource, you must also specify a DependsOn attribute to ensure that the mount target is created or updated before the function. (see [below for nested schema](#nestedatt--file_system_configs)) -- `function_name` (String) The name of the Lambda function, up to 64 characters in length. If you don't specify a name, AWS CloudFormation generates one. -- `handler` (String) The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime -- `image_config` (Attributes) ImageConfig (see [below for nested schema](#nestedatt--image_config)) -- `kms_key_arn` (String) The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key. -- `layers` (List of String) A list of function layers to add to the function's execution environment. Specify each layer by its ARN, including the version. -- `logging_config` (Attributes) The logging configuration of your function (see [below for nested schema](#nestedatt--logging_config)) -- `memory_size` (Number) The amount of memory that your function has access to. Increasing the function's memory also increases its CPU allocation. The default value is 128 MB. The value must be a multiple of 64 MB. -- `package_type` (String) PackageType. +- `ephemeral_storage` (Attributes) The size of the function's ``/tmp`` directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB. (see [below for nested schema](#nestedatt--ephemeral_storage)) +- `file_system_configs` (Attributes List) Connection settings for an Amazon EFS file system. To connect a function to a file system, a mount target must be available in every Availability Zone that your function connects to. If your template contains an [AWS::EFS::MountTarget](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-efs-mounttarget.html) resource, you must also specify a ``DependsOn`` attribute to ensure that the mount target is created or updated before the function. + For more information about using the ``DependsOn`` attribute, see [DependsOn Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html). (see [below for nested schema](#nestedatt--file_system_configs)) +- `function_name` (String) The name of the Lambda function, up to 64 characters in length. If you don't specify a name, CFN generates one. + If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. +- `handler` (String) The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see [Lambda programming model](https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html). +- `image_config` (Attributes) Configuration values that override the container image Dockerfile settings. For more information, see [Container image settings](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms). (see [below for nested schema](#nestedatt--image_config)) +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that's used to encrypt your function's [environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption). When [Lambda SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, Lambda also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, Lambda also uses this key to encrypt your function when it's deployed. Note that this is not the same key that's used to protect your container image in the Amazon Elastic Container Registry (Amazon ECR). If you don't provide a customer managed key, Lambda uses a default service key. +- `layers` (List of String) A list of [function layers](https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html) to add to the function's execution environment. Specify each layer by its ARN, including the version. +- `logging_config` (Attributes) The function's Amazon CloudWatch Logs configuration settings. (see [below for nested schema](#nestedatt--logging_config)) +- `memory_size` (Number) The amount of [memory available to the function](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console) at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB. Note that new AWS accounts have reduced concurrency and memory quotas. AWS raises these quotas automatically based on your usage. You can also request a quota increase. +- `package_type` (String) The type of deployment package. Set to ``Image`` for container image and set ``Zip`` for .zip file archive. - `reserved_concurrent_executions` (Number) The number of simultaneous executions to reserve for the function. -- `runtime` (String) The identifier of the function's runtime. -- `runtime_management_config` (Attributes) RuntimeManagementConfig (see [below for nested schema](#nestedatt--runtime_management_config)) -- `snap_start` (Attributes) The SnapStart setting of your function (see [below for nested schema](#nestedatt--snap_start)) -- `tags` (Attributes Set) A list of tags to apply to the function. (see [below for nested schema](#nestedatt--tags)) -- `timeout` (Number) The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. -- `tracing_config` (Attributes) Set Mode to Active to sample and trace a subset of incoming requests with AWS X-Ray. (see [below for nested schema](#nestedatt--tracing_config)) -- `vpc_config` (Attributes) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. (see [below for nested schema](#nestedatt--vpc_config)) +- `runtime` (String) The identifier of the function's [runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. + The following list includes deprecated runtimes. For more information, see [Runtime deprecation policy](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy). +- `runtime_management_config` (Attributes) Sets the runtime management configuration for a function's version. For more information, see [Runtime updates](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html). (see [below for nested schema](#nestedatt--runtime_management_config)) +- `snap_start` (Attributes) The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting. (see [below for nested schema](#nestedatt--snap_start)) +- `tags` (Attributes Set) A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function. (see [below for nested schema](#nestedatt--tags)) +- `timeout` (Number) The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see [Lambda execution environment](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html). +- `tracing_config` (Attributes) Set ``Mode`` to ``Active`` to sample and trace a subset of incoming requests with [X-Ray](https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html). (see [below for nested schema](#nestedatt--tracing_config)) +- `vpc_config` (Attributes) For network connectivity to AWS resources in a VPC, specify a list of security groups and subnets in the VPC. When you connect a function to a VPC, it can access resources and the internet only through that VPC. For more information, see [Configuring a Lambda function to access resources in a VPC](https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html). (see [below for nested schema](#nestedatt--vpc_config)) ### Read-Only -- `arn` (String) Unique identifier for function resources +- `arn` (String) - `id` (String) Uniquely identifies the resource. -- `snap_start_response` (Attributes) The SnapStart response of your function (see [below for nested schema](#nestedatt--snap_start_response)) +- `snap_start_response` (Attributes) The function's [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html) setting. (see [below for nested schema](#nestedatt--snap_start_response)) ### Nested Schema for `code` Optional: -- `image_uri` (String) ImageUri. -- `s3_bucket` (String) An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account. +- `image_uri` (String) URI of a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the Amazon ECR registry. +- `s3_bucket` (String) An Amazon S3 bucket in the same AWS-Region as your function. The bucket can be in a different AWS-account. - `s3_key` (String) The Amazon S3 key of the deployment package. - `s3_object_version` (String) For versioned objects, the version of the deployment package object to use. -- `zip_file` (String) The source code of your Lambda function. If you include your function source inline with this parameter, AWS CloudFormation places it in a file named index and zips it to create a deployment package.. +- `zip_file` (String) (Node.js and Python) The source code of your Lambda function. If you include your function source inline with this parameter, CFN places it in a file named ``index`` and zips it to create a [deployment package](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html). This zip file cannot exceed 4MB. For the ``Handler`` property, the first part of the handler identifier must be ``index``. For example, ``index.handler``. + For JSON, you must escape quotes and special characters such as newline (``\n``) with a backslash. + If you specify a function that interacts with an AWS CloudFormation custom resource, you don't have to write your own functions to send responses to the custom resource that invoked the function. AWS CloudFormation provides a response module ([cfn-response](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-lambda-function-code-cfnresponsemodule.html)) that simplifies sending responses. See [Using Lambda with CloudFormation](https://docs @@ -229,7 +238,7 @@ Optional: Optional: -- `variables` (Map of String) Environment variable key-value pairs. +- `variables` (Map of String) Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html). @@ -237,7 +246,7 @@ Optional: Required: -- `size` (Number) The amount of ephemeral storage that your function has access to. +- `size` (Number) The size of the function's ``/tmp`` directory. @@ -246,7 +255,7 @@ Required: Required: - `arn` (String) The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system. -- `local_mount_path` (String) The path where the function can access the file system, starting with /mnt/. +- `local_mount_path` (String) The path where the function can access the file system, starting with ``/mnt/``. @@ -254,9 +263,9 @@ Required: Optional: -- `command` (List of String) Command. -- `entry_point` (List of String) EntryPoint. -- `working_directory` (String) WorkingDirectory. +- `command` (List of String) Specifies parameters that you want to pass in with ENTRYPOINT. You can specify a maximum of 1,500 parameters in the list. +- `entry_point` (List of String) Specifies the entry point to their application, which is typically the location of the runtime executable. You can specify a maximum of 1,500 string entries in the list. +- `working_directory` (String) Specifies the working directory. The length of the directory string cannot exceed 1,000 characters. @@ -264,10 +273,10 @@ Optional: Optional: -- `application_log_level` (String) Application log granularity level, can only be used when LogFormat is set to JSON -- `log_format` (String) Log delivery format for the lambda function -- `log_group` (String) The log group name. -- `system_log_level` (String) System log granularity level, can only be used when LogFormat is set to JSON +- `application_log_level` (String) Set this property to filter the application logs for your function that Lambda sends to CloudWatch. Lambda only sends application logs at the selected level of detail and lower, where ``TRACE`` is the highest level and ``FATAL`` is the lowest. +- `log_format` (String) The format in which Lambda sends your function's application and system logs to CloudWatch. Select between plain text and structured JSON. +- `log_group` (String) The name of the Amazon CloudWatch log group the function sends logs to. By default, Lambda functions send logs to a default log group named ``/aws/lambda/``. To use a different log group, enter an existing log group or enter a new log group name. +- `system_log_level` (String) Set this property to filter the system logs for your function that Lambda sends to CloudWatch. Lambda only sends system logs at the selected level of detail and lower, where ``DEBUG`` is the highest level and ``WARN`` is the lowest. @@ -275,11 +284,15 @@ Optional: Required: -- `update_runtime_on` (String) Trigger for runtime update +- `update_runtime_on` (String) Specify the runtime update mode. + + *Auto (default)* - Automatically update to the most recent and secure runtime version using a [Two-phase runtime version rollout](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase). This is the best choice for most customers to ensure they always benefit from runtime updates. + + *FunctionUpdate* - LAM updates the runtime of you function to the most recent and secure runtime version when you update your function. This approach synchronizes runtime updates with function deployments, giving you control over when runtime updates are applied and allowing you to detect and mitigate rare runtime update incompatibilities early. When using this setting, you need to regularly update your functions to keep their runtime up-to-date. + + *Manual* - You specify a runtime version in your function configuration. The function will use this runtime version indefinitely. In the rare case where a new runtime version is incomp Optional: -- `runtime_version_arn` (String) Unique identifier for a runtime version arn +- `runtime_version_arn` (String) The ARN of the runtime version you want the function to use. + This is only required if you're using the *Manual* runtime update mode. @@ -287,7 +300,7 @@ Optional: Required: -- `apply_on` (String) Applying SnapStart setting on function resource type. +- `apply_on` (String) Set ``ApplyOn`` to ``PublishedVersions`` to create a snapshot of the initialized execution environment when you publish a function version. @@ -295,11 +308,11 @@ Required: Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) Optional: -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) @@ -315,8 +328,8 @@ Optional: Optional: -- `ipv_6_allowed_for_dual_stack` (Boolean) A boolean indicating whether IPv6 protocols will be allowed for dual stack subnets -- `security_group_ids` (List of String) A list of VPC security groups IDs. +- `ipv_6_allowed_for_dual_stack` (Boolean) Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack subnets. +- `security_group_ids` (List of String) A list of VPC security group IDs. - `subnet_ids` (List of String) A list of VPC subnet IDs. @@ -325,8 +338,8 @@ Optional: Read-Only: -- `apply_on` (String) Applying SnapStart setting on function resource type. -- `optimization_status` (String) Indicates whether SnapStart is activated for the specified function version. +- `apply_on` (String) When set to ``PublishedVersions``, Lambda creates a snapshot of the execution environment when you publish a function version. +- `optimization_status` (String) When you provide a [qualified Amazon Resource Name (ARN)](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using), this response element indicates whether SnapStart is activated for the specified function version. ## Import diff --git a/docs/resources/lambda_permission.md b/docs/resources/lambda_permission.md index 8feff3dd4f..ef003680e5 100644 --- a/docs/resources/lambda_permission.md +++ b/docs/resources/lambda_permission.md @@ -2,12 +2,16 @@ page_title: "awscc_lambda_permission Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::Lambda::Permission + The AWS::Lambda::Permission resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function. + To grant permission to another account, specify the account ID as the Principal. To grant permission to an organization defined in AOlong, specify the organization ID as the PrincipalOrgID. For AWS services, the principal is a domain-style identifier defined by the service, like s3.amazonaws.com or sns.amazonaws.com. For AWS services, you can also specify the ARN of the associated resource as the SourceArn. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function. + If your function has a fu --- # awscc_lambda_permission (Resource) -Resource Type definition for AWS::Lambda::Permission +The ``AWS::Lambda::Permission`` resource grants an AWS service or another account permission to use a function. You can apply the policy at the function level, or specify a qualifier to restrict access to a single version or alias. If you use a qualifier, the invoker must use the full Amazon Resource Name (ARN) of that version or alias to invoke the function. + To grant permission to another account, specify the account ID as the ``Principal``. To grant permission to an organization defined in AOlong, specify the organization ID as the ``PrincipalOrgID``. For AWS services, the principal is a domain-style identifier defined by the service, like ``s3.amazonaws.com`` or ``sns.amazonaws.com``. For AWS services, you can also specify the ARN of the associated resource as the ``SourceArn``. If you grant permission to a service principal without specifying the source, other accounts could potentially configure resources in their account to invoke your Lambda function. + If your function has a fu ## Example Usage @@ -74,21 +78,28 @@ resource "awscc_iam_role" "default" { ### Required -- `action` (String) The action that the principal can use on the function. +- `action` (String) The action that the principal can use on the function. For example, ``lambda:InvokeFunction`` or ``lambda:GetFunction``. - `function_name` (String) The name of the Lambda function, version, or alias. -- `principal` (String) The AWS service or account that invokes the function. If you specify a service, use SourceArn or SourceAccount to limit who can invoke the function through that service. + **Name formats** + + *Function name* ? ``my-function`` (name-only), ``my-function:v1`` (with alias). + + *Function ARN* ? ``arn:aws:lambda:us-west-2:123456789012:function:my-function``. + + *Partial ARN* ? ``123456789012:function:my-function``. + + You can append a version number or alias to any of the formats. The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length. +- `principal` (String) The AWS-service or AWS-account that invokes the function. If you specify a service, use ``SourceArn`` or ``SourceAccount`` to limit who can invoke the function through that service. ### Optional -- `event_source_token` (String) For Alexa Smart Home functions, a token that must be supplied by the invoker. -- `function_url_auth_type` (String) The type of authentication that your function URL uses. Set to AWS_IAM if you want to restrict access to authenticated users only. Set to NONE if you want to bypass IAM authentication to create a public endpoint. -- `principal_org_id` (String) The identifier for your organization in AWS Organizations. Use this to grant permissions to all the AWS accounts under this organization. -- `source_account` (String) For Amazon S3, the ID of the account that owns the resource. Use this together with SourceArn to ensure that the resource is owned by the specified account. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account. -- `source_arn` (String) For AWS services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic. +- `event_source_token` (String) For Alexa Smart Home functions, a token that the invoker must supply. +- `function_url_auth_type` (String) The type of authentication that your function URL uses. Set to ``AWS_IAM`` if you want to restrict access to authenticated users only. Set to ``NONE`` if you want to bypass IAM authentication to create a public endpoint. For more information, see [Security and auth model for Lambda function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html). +- `principal_org_id` (String) The identifier for your organization in AOlong. Use this to grant permissions to all the AWS-accounts under this organization. +- `source_account` (String) For AWS-service, the ID of the AWS-account that owns the resource. Use this together with ``SourceArn`` to ensure that the specified account owns the resource. It is possible for an Amazon S3 bucket to be deleted by its owner and recreated by another account. +- `source_arn` (String) For AWS-services, the ARN of the AWS resource that invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic. + Note that Lambda configures the comparison using the ``StringLike`` operator. ### Read-Only -- `id` (String) A statement identifier that differentiates the statement from others in the same policy. +- `id` (String) The ID of this resource. ## Import diff --git a/docs/resources/mediapackagev2_channel.md b/docs/resources/mediapackagev2_channel.md index 2f5c7caf8a..e170a2f2b6 100644 --- a/docs/resources/mediapackagev2_channel.md +++ b/docs/resources/mediapackagev2_channel.md @@ -3,32 +3,35 @@ page_title: "awscc_mediapackagev2_channel Resource - terraform-provider-awscc" subcategory: "" description: |- - Definition of AWS::MediaPackageV2::Channel Resource Type +

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

--- # awscc_mediapackagev2_channel (Resource) -Definition of AWS::MediaPackageV2::Channel Resource Type +

Represents an entry point into AWS Elemental MediaPackage for an ABR video content stream sent from an upstream encoder such as AWS Elemental MediaLive. The channel continuously analyzes the content that it receives and prepares it to be distributed to consumers via one or more origin endpoints.

## Schema -### Optional +### Required - `channel_group_name` (String) - `channel_name` (String) -- `description` (String) + +### Optional + +- `description` (String)

Enter any descriptive text that helps you to identify the channel.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only -- `arn` (String) -- `created_at` (String) +- `arn` (String)

The Amazon Resource Name (ARN) associated with the resource.

+- `created_at` (String)

The date and time the channel was created.

- `id` (String) Uniquely identifies the resource. -- `ingest_endpoints` (Attributes List) (see [below for nested schema](#nestedatt--ingest_endpoints)) -- `modified_at` (String) +- `ingest_endpoints` (Attributes List)

The list of ingest endpoints.

(see [below for nested schema](#nestedatt--ingest_endpoints)) +- `modified_at` (String)

The date and time the channel was modified.

### Nested Schema for `tags` @@ -44,8 +47,8 @@ Optional: Read-Only: -- `id` (String) -- `url` (String) +- `id` (String)

The system-generated unique identifier for the IngestEndpoint.

+- `url` (String)

The ingest domain URL where the source stream should be sent.

## Import diff --git a/docs/resources/mediapackagev2_channel_group.md b/docs/resources/mediapackagev2_channel_group.md index a618771871..4634661a24 100644 --- a/docs/resources/mediapackagev2_channel_group.md +++ b/docs/resources/mediapackagev2_channel_group.md @@ -3,31 +3,34 @@ page_title: "awscc_mediapackagev2_channel_group Resource - terraform-provider-awscc" subcategory: "" description: |- - Definition of AWS::MediaPackageV2::ChannelGroup Resource Type +

Represents a channel group that facilitates the grouping of multiple channels.

--- # awscc_mediapackagev2_channel_group (Resource) -Definition of AWS::MediaPackageV2::ChannelGroup Resource Type +

Represents a channel group that facilitates the grouping of multiple channels.

## Schema -### Optional +### Required - `channel_group_name` (String) -- `description` (String) + +### Optional + +- `description` (String)

Enter any descriptive text that helps you to identify the channel group.

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only -- `arn` (String) -- `created_at` (String) -- `egress_domain` (String) +- `arn` (String)

The Amazon Resource Name (ARN) associated with the resource.

+- `created_at` (String)

The date and time the channel group was created.

+- `egress_domain` (String)

The output domain where the source stream should be sent. Integrate the domain with a downstream CDN (such as Amazon CloudFront) or playback device.

- `id` (String) Uniquely identifies the resource. -- `modified_at` (String) +- `modified_at` (String)

The date and time the channel group was modified.

### Nested Schema for `tags` diff --git a/docs/resources/mediapackagev2_channel_policy.md b/docs/resources/mediapackagev2_channel_policy.md index bc6b552585..1ed863394e 100644 --- a/docs/resources/mediapackagev2_channel_policy.md +++ b/docs/resources/mediapackagev2_channel_policy.md @@ -3,12 +3,12 @@ page_title: "awscc_mediapackagev2_channel_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Definition of AWS::MediaPackageV2::ChannelPolicy Resource Type +

Represents a resource-based policy that allows or denies access to a channel.

--- # awscc_mediapackagev2_channel_policy (Resource) -Definition of AWS::MediaPackageV2::ChannelPolicy Resource Type +

Represents a resource-based policy that allows or denies access to a channel.

@@ -17,12 +17,9 @@ Definition of AWS::MediaPackageV2::ChannelPolicy Resource Type ### Required -- `policy` (String) - -### Optional - - `channel_group_name` (String) - `channel_name` (String) +- `policy` (String) ### Read-Only diff --git a/docs/resources/mediapackagev2_origin_endpoint.md b/docs/resources/mediapackagev2_origin_endpoint.md index 6866348572..cf0fc8b3ef 100644 --- a/docs/resources/mediapackagev2_origin_endpoint.md +++ b/docs/resources/mediapackagev2_origin_endpoint.md @@ -17,16 +17,16 @@ description: |- ### Required -- `container_type` (String) +- `channel_group_name` (String) +- `channel_name` (String) +- `origin_endpoint_name` (String) ### Optional -- `channel_group_name` (String) -- `channel_name` (String) +- `container_type` (String) - `description` (String)

Enter any descriptive text that helps you to identify the origin endpoint.

- `hls_manifests` (Attributes List)

An HTTP live streaming (HLS) manifest configuration.

(see [below for nested schema](#nestedatt--hls_manifests)) - `low_latency_hls_manifests` (Attributes List)

A low-latency HLS manifest configuration.

(see [below for nested schema](#nestedatt--low_latency_hls_manifests)) -- `origin_endpoint_name` (String) - `segment` (Attributes)

The segment configuration, including the segment name, duration, and other configuration values.

(see [below for nested schema](#nestedatt--segment)) - `startover_window_seconds` (Number)

The size of the window (in seconds) to create a window of the live stream that's available for on-demand viewing. Viewers can start-over or catch-up on content that falls within the window. The maximum startover window is 1,209,600 seconds (14 days).

- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/mediapackagev2_origin_endpoint_policy.md b/docs/resources/mediapackagev2_origin_endpoint_policy.md index b21efca0d6..7426b726be 100644 --- a/docs/resources/mediapackagev2_origin_endpoint_policy.md +++ b/docs/resources/mediapackagev2_origin_endpoint_policy.md @@ -3,12 +3,12 @@ page_title: "awscc_mediapackagev2_origin_endpoint_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Definition of AWS::MediaPackageV2::OriginEndpointPolicy Resource Type +

Represents a resource policy that allows or denies access to an origin endpoint.

--- # awscc_mediapackagev2_origin_endpoint_policy (Resource) -Definition of AWS::MediaPackageV2::OriginEndpointPolicy Resource Type +

Represents a resource policy that allows or denies access to an origin endpoint.

@@ -17,13 +17,10 @@ Definition of AWS::MediaPackageV2::OriginEndpointPolicy Resource Type ### Required -- `policy` (String) - -### Optional - - `channel_group_name` (String) - `channel_name` (String) - `origin_endpoint_name` (String) +- `policy` (String) ### Read-Only diff --git a/docs/resources/rds_db_instance.md b/docs/resources/rds_db_instance.md index 15da86c000..adf88c1f6a 100644 --- a/docs/resources/rds_db_instance.md +++ b/docs/resources/rds_db_instance.md @@ -2,12 +2,20 @@ page_title: "awscc_rds_db_instance Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance. + The AWS::RDS::DBInstance resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster. + For more information about creating an RDS DB instance, see Creating an Amazon RDS DB instance https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html in the Amazon RDS User Guide. + For more information about creating a DB instance in an Aurora DB cluster, see Creating an Amazon Aurora DB cluster https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html in the Amazon Aurora User Guide. + If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation. + If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an --- # awscc_rds_db_instance (Resource) -The AWS::RDS::DBInstance resource creates an Amazon RDS DB instance. +The ``AWS::RDS::DBInstance`` resource creates an Amazon DB instance. The new DB instance can be an RDS DB instance, or it can be a DB instance in an Aurora DB cluster. + For more information about creating an RDS DB instance, see [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html) in the *Amazon RDS User Guide*. + For more information about creating a DB instance in an Aurora DB cluster, see [Creating an Amazon Aurora DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.CreateInstance.html) in the *Amazon Aurora User Guide*. + If you import an existing DB instance, and the template configuration doesn't match the actual configuration of the DB instance, AWS CloudFormation applies the changes in the template during the import operation. + If a DB instance is deleted or replaced during an update, AWS CloudFormation deletes all automated snapshots. However, it retains manual DB snapshots. During an ## Example Usage @@ -111,105 +119,412 @@ resource "awscc_rds_db_instance" "this" { ### Optional -- `allocated_storage` (String) The amount of storage (in gigabytes) to be initially allocated for the database instance. +- `allocated_storage` (String) The amount of storage in gibibytes (GiB) to be initially allocated for the database instance. + If any value is set in the ``Iops`` parameter, ``AllocatedStorage`` must be at least 100 GiB, which corresponds to the minimum Iops value of 1,000. If you increase the ``Iops`` value (in 1,000 IOPS increments), then you must also increase the ``AllocatedStorage`` value (in 100-GiB increments). + *Amazon Aurora* + Not applicable. Aurora cluster volumes automatically grow as the amount of data in your database increases, though you are only charged for the space that you use in an Aurora cluster volume. + *Db2* + Constraints to the amount of storage for each storage type are the following: + + General Purpose (SSD) storage (gp3): Must be an integer from 20 to 64000. + + Provisioned IOPS storage (io1): Must be an integer from 100 to 64000. + + *MySQL* + Constraints to the amount of storage for each storage type are the following: + + General Purpose (SSD) storage (gp2): Must be an integer fro - `allow_major_version_upgrade` (Boolean) A value that indicates whether major version upgrades are allowed. Changing this parameter doesn't result in an outage and the change is asynchronously applied as soon as possible. -- `associated_roles` (Attributes List) The AWS Identity and Access Management (IAM) roles associated with the DB instance. (see [below for nested schema](#nestedatt--associated_roles)) + Constraints: Major version upgrades must be allowed when specifying a value for the ``EngineVersion`` parameter that is a different major version than the DB instance's current version. +- `associated_roles` (Attributes List) The IAMlong (IAM) roles associated with the DB instance. + *Amazon Aurora* + Not applicable. The associated roles are managed by the DB cluster. (see [below for nested schema](#nestedatt--associated_roles)) - `auto_minor_version_upgrade` (Boolean) A value that indicates whether minor engine upgrades are applied automatically to the DB instance during the maintenance window. By default, minor engine upgrades are applied automatically. -- `automatic_backup_replication_region` (String) Enables replication of automated backups to a different Amazon Web Services Region. -- `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS Regions and Availability Zones. +- `automatic_backup_replication_region` (String) The destination region for the backup replication of the DB instance. For more info, see [Replicating automated backups to another Region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReplicateBackups.html) in the *Amazon RDS User Guide*. +- `availability_zone` (String) The Availability Zone (AZ) where the database will be created. For information on AWS-Regions and Availability Zones, see [Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html). + For Amazon Aurora, each Aurora DB cluster hosts copies of its storage in three separate Availability Zones. Specify one of these Availability Zones. Aurora automatically chooses an appropriate Availability Zone if you don't specify one. + Default: A random, system-chosen Availability Zone in the endpoint's AWS-Region. + Constraints: + + The ``AvailabilityZone`` parameter can't be specified if the DB instance is a Multi-AZ deployment. + + The specified Availability Zone must be in the same AWS-Region as the current endpoint. + + Example: ``us-east-1d`` - `backup_retention_period` (Number) The number of days for which automated backups are retained. Setting this parameter to a positive number enables backups. Setting this parameter to 0 disables automated backups. + *Amazon Aurora* + Not applicable. The retention period for automated backups is managed by the DB cluster. + Default: 1 + Constraints: + + Must be a value from 0 to 35 + + Can't be set to 0 if the DB instance is a source to read replicas - `ca_certificate_identifier` (String) The identifier of the CA certificate for this DB instance. -- `certificate_details` (Attributes) Returns the details of the DB instance's server certificate. (see [below for nested schema](#nestedatt--certificate_details)) -- `certificate_rotation_restart` (Boolean) A value that indicates whether the DB instance is restarted when you rotate your SSL/TLS certificate. -By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. -If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate -This setting doesn't apply to RDS Custom. + Specifying or updating this property triggers a reboot. For more information about CA certificate identifiers for RDS DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide*. For more information about CA certificate identifiers for Aurora DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Guide*. +- `certificate_details` (Attributes) The details of the DB instance's server certificate. (see [below for nested schema](#nestedatt--certificate_details)) +- `certificate_rotation_restart` (Boolean) Specifies whether the DB instance is restarted when you rotate your SSL/TLS certificate. + By default, the DB instance is restarted when you rotate your SSL/TLS certificate. The certificate is not updated until the DB instance is restarted. + Set this parameter only if you are *not* using SSL/TLS to connect to the DB instance. + If you are using SSL/TLS to connect to the DB instance, follow the appropriate instructions for your DB engine to rotate your SSL/TLS certificate: + + For more information about rotating your SSL/TLS certificate for RDS DB engines, see [Rotating Your SSL/TLS Certificate.](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon RDS User Guide.* + + For more information about rotating your SSL/TLS certificate for Aurora DB engines, see [Rotating Your SSL/TLS Certificate](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.SSL-certificate-rotation.html) in the *Amazon Aurora User Gui - `character_set_name` (String) For supported engines, indicates that the DB instance should be associated with the specified character set. -- `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. -- `custom_iam_instance_profile` (String) The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. The instance profile must meet the following requirements: - * The profile must exist in your account. - * The profile must have an IAM role that Amazon EC2 has permissions to assume. - * The instance profile name and the associated IAM role name must start with the prefix AWSRDSCustom . -For the list of permissions required for the IAM role, see Configure IAM and your VPC in the Amazon RDS User Guide . - -This setting is required for RDS Custom. + *Amazon Aurora* + Not applicable. The character set is managed by the DB cluster. For more information, see [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html). +- `copy_tags_to_snapshot` (Boolean) Specifies whether to copy tags from the DB instance to snapshots of the DB instance. By default, tags are not copied. + This setting doesn't apply to Amazon Aurora DB instances. Copying tags to snapshots is managed by the DB cluster. Setting this value for an Aurora DB instance has no effect on the DB cluster setting. +- `custom_iam_instance_profile` (String) The instance profile associated with the underlying Amazon EC2 instance of an RDS Custom DB instance. + This setting is required for RDS Custom. + Constraints: + + The profile must exist in your account. + + The profile must have an IAM role that Amazon EC2 has permissions to assume. + + The instance profile name and the associated IAM role name must start with the prefix ``AWSRDSCustom``. + + For the list of permissions required for the IAM role, see [Configure IAM and your VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-setup-orcl.html#custom-setup-orcl.iam-vpc) in the *Amazon RDS User Guide*. - `db_cluster_identifier` (String) The identifier of the DB cluster that the instance will belong to. -- `db_cluster_snapshot_identifier` (String) The identifier for the RDS for MySQL Multi-AZ DB cluster snapshot to restore from. For more information on Multi-AZ DB clusters, see Multi-AZ deployments with two readable standby DB instances in the Amazon RDS User Guide . - -Constraints: - * Must match the identifier of an existing Multi-AZ DB cluster snapshot. - * Can't be specified when DBSnapshotIdentifier is specified. - * Must be specified when DBSnapshotIdentifier isn't specified. - * If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the DBClusterSnapshotIdentifier must be the ARN of the shared snapshot. - * Can't be the identifier of an Aurora DB cluster snapshot. - * Can't be the identifier of an RDS for PostgreSQL Multi-AZ DB cluster snapshot. -- `db_instance_class` (String) The compute and memory capacity of the DB instance, for example, db.m4.large. Not all DB instance classes are available in all AWS Regions, or for all database engines. -- `db_instance_identifier` (String) A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance. +- `db_cluster_snapshot_identifier` (String) The identifier for the Multi-AZ DB cluster snapshot to restore from. + For more information on Multi-AZ DB clusters, see [Multi-AZ DB cluster deployments](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) in the *Amazon RDS User Guide*. + Constraints: + + Must match the identifier of an existing Multi-AZ DB cluster snapshot. + + Can't be specified when ``DBSnapshotIdentifier`` is specified. + + Must be specified when ``DBSnapshotIdentifier`` isn't specified. + + If you are restoring from a shared manual Multi-AZ DB cluster snapshot, the ``DBClusterSnapshotIdentifier`` must be the ARN of the shared snapshot. + + Can't be the identifier of an Aurora DB cluster snapshot. +- `db_instance_class` (String) The compute and memory capacity of the DB instance, for example, ``db.m4.large``. Not all DB instance classes are available in all AWS Regions, or for all database engines. + For the full list of DB instance classes, and availability for your engine, see [DB Instance Class](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.DBInstanceClass.html) in the *Amazon RDS User Guide.* For more information about DB instance class pricing and AWS Region support for DB instance classes, see [Amazon RDS Pricing](https://docs.aws.amazon.com/rds/pricing/). +- `db_instance_identifier` (String) A name for the DB instance. If you specify a name, AWS CloudFormation converts it to lowercase. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the DB instance. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html). + For information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*. + If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. - `db_name` (String) The meaning of this parameter differs according to the database engine you use. -- `db_parameter_group_name` (String) The name of an existing DB parameter group or a reference to an AWS::RDS::DBParameterGroup resource created in the template. + If you specify the ``DBSnapshotIdentifier`` property, this property only applies to RDS for Oracle. + *Amazon Aurora* + Not applicable. The database name is managed by the DB cluster. + *Db2* + The name of the database to create when the DB instance is created. If this parameter isn't specified, no database is created in the DB instance. + Constraints: + + Must contain 1 to 64 letters or numbers. + + Must begin with a letter. Subsequent characters can be letters, underscores, or digits (0-9). + + Can't be a word reserved by the specified database engine. + + *MySQL* + The name of the database to create when the DB instance is created. If this parameter is not specified, no database is created in the DB instance. + Constraints: + + Must contain 1 to 64 letters or numbers. + + Can't be a word reserved by the specified database engine + + *MariaDB* + The name of the database to create when the DB instance is +- `db_parameter_group_name` (String) The name of an existing DB parameter group or a reference to an [AWS::RDS::DBParameterGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbparametergroup.html) resource created in the template. + To list all of the available DB parameter group names, use the following command: + ``aws rds describe-db-parameter-groups --query "DBParameterGroups[].DBParameterGroupName" --output text`` + If any of the data members of the referenced parameter group are changed during an update, the DB instance might need to be restarted, which causes some interruption. If the parameter group contains static parameters, whether they were changed or not, an update triggers a reboot. + If you don't specify a value for ``DBParameterGroupName`` property, the default DB parameter group for the specified engine and engine version is used. - `db_security_groups` (List of String) A list of the DB security groups to assign to the DB instance. The list can include both the name of existing DB security groups or references to AWS::RDS::DBSecurityGroup resources created in the template. + If you set DBSecurityGroups, you must not set VPCSecurityGroups, and vice versa. Also, note that the DBSecurityGroups property exists only for backwards compatibility with older regions and is no longer recommended for providing security information to an RDS DB instance. Instead, use VPCSecurityGroups. + If you specify this property, AWS CloudFormation sends only the following properties (if specified) to Amazon RDS during create operations: + + ``AllocatedStorage`` + + ``AutoMinorVersionUpgrade`` + + ``AvailabilityZone`` + + ``BackupRetentionPeriod`` + + ``CharacterSetName`` + + ``DBInstanceClass`` + + ``DBName`` + + ``DBParameterGroupName`` + + ``DBSecurityGroups`` + + ``DBSubnetGroupName`` + + ``Engine`` + + ``EngineVersion`` + + ``Iops`` + + ``LicenseModel`` + + - `db_snapshot_identifier` (String) The name or Amazon Resource Name (ARN) of the DB snapshot that's used to restore the DB instance. If you're restoring from a shared manual DB snapshot, you must specify the ARN of the snapshot. -- `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. + By specifying this property, you can create a DB instance from the specified DB snapshot. If the ``DBSnapshotIdentifier`` property is an empty string or the ``AWS::RDS::DBInstance`` declaration has no ``DBSnapshotIdentifier`` property, AWS CloudFormation creates a new database. If the property contains a value (other than an empty string), AWS CloudFormation creates a database from the specified snapshot. If a snapshot with the specified name doesn't exist, AWS CloudFormation can't create the database and it rolls back the stack. + Some DB instance properties aren't valid when you restore from a snapshot, such as the ``MasterUsername`` and ``MasterUserPassword`` properties. For information about the properties that you can specify, see the ``RestoreDBInstanceFromDBSnapshot`` action in the *Amazo +- `db_subnet_group_name` (String) A DB subnet group to associate with the DB instance. If you update this value, the new subnet group must be a subnet group in a new VPC. + If there's no DB subnet group, then the DB instance isn't a VPC DB instance. + For more information about using Amazon RDS in a VPC, see [Using Amazon RDS with Amazon Virtual Private Cloud (VPC)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. The DB subnet group is managed by the DB cluster. If specified, the setting must match the DB cluster setting. - `dedicated_log_volume` (Boolean) Indicates whether the DB instance has a dedicated log volume (DLV) enabled. - `delete_automated_backups` (Boolean) A value that indicates whether to remove automated backups immediately after the DB instance is deleted. This parameter isn't case-sensitive. The default is to remove automated backups immediately after the DB instance is deleted. -- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. -- `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. + *Amazon Aurora* + Not applicable. When you delete a DB cluster, all automated backups for that DB cluster are deleted and can't be recovered. Manual DB cluster snapshots of the DB cluster are not deleted. +- `deletion_protection` (Boolean) A value that indicates whether the DB instance has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled. For more information, see [Deleting a DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_DeleteInstance.html). + *Amazon Aurora* + Not applicable. You can enable or disable deletion protection for the DB cluster. For more information, see ``CreateDBCluster``. DB instances in a DB cluster can be deleted even when deletion protection is enabled for the DB cluster. +- `domain` (String) The Active Directory directory ID to create the DB instance in. Currently, only Db2, MySQL, Microsoft SQL Server, Oracle, and PostgreSQL DB instances can be created in an Active Directory Domain. + For more information, see [Kerberos Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/kerberos-authentication.html) in the *Amazon RDS User Guide*. - `domain_auth_secret_arn` (String) The ARN for the Secrets Manager secret with the credentials for the user joining the domain. + Example: ``arn:aws:secretsmanager:region:account-number:secret:myselfmanagedADtestsecret-123456`` - `domain_dns_ips` (List of String) The IPv4 DNS IP addresses of your primary and secondary Active Directory domain controllers. + Constraints: + + Two IP addresses must be provided. If there isn't a secondary domain controller, use the IP address of the primary domain controller for both entries in the list. + + Example: ``123.124.125.126,234.235.236.237`` - `domain_fqdn` (String) The fully qualified domain name (FQDN) of an Active Directory domain. -- `domain_iam_role_name` (String) Specify the name of the IAM role to be used when making API calls to the Directory Service. + Constraints: + + Can't be longer than 64 characters. + + Example: ``mymanagedADtest.mymanagedAD.mydomain`` +- `domain_iam_role_name` (String) The name of the IAM role to use when making API calls to the Directory Service. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (The domain is managed by the DB cluster.) + + RDS Custom - `domain_ou` (String) The Active Directory organizational unit for your DB instance to join. -- `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. + Constraints: + + Must be in the distinguished name format. + + Can't be longer than 64 characters. + + Example: ``OU=mymanagedADtestOU,DC=mymanagedADtest,DC=mymanagedAD,DC=mydomain`` +- `enable_cloudwatch_logs_exports` (List of String) The list of log types that need to be enabled for exporting to CloudWatch Logs. The values in the list depend on the DB engine being used. For more information, see [Publishing Database Logs to Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Relational Database Service User Guide*. + *Amazon Aurora* + Not applicable. CloudWatch Logs exports are managed by the DB cluster. + *Db2* + Valid values: ``diag.log``, ``notify.log`` + *MariaDB* + Valid values: ``audit``, ``error``, ``general``, ``slowquery`` + *Microsoft SQL Server* + Valid values: ``agent``, ``error`` + *MySQL* + Valid values: ``audit``, ``error``, ``general``, ``slowquery`` + *Oracle* + Valid values: ``alert``, ``audit``, ``listener``, ``trace``, ``oemagent`` + *PostgreSQL* + Valid values: ``postgresql``, ``upgrade`` - `enable_iam_database_authentication` (Boolean) A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled. -- `enable_performance_insights` (Boolean) A value that indicates whether to enable Performance Insights for the DB instance. -- `endpoint` (Attributes) Specifies the connection endpoint. (see [below for nested schema](#nestedatt--endpoint)) + This property is supported for RDS for MariaDB, RDS for MySQL, and RDS for PostgreSQL. For more information, see [IAM Database Authentication for MariaDB, MySQL, and PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon RDS User Guide.* + *Amazon Aurora* + Not applicable. Mapping AWS IAM accounts to database accounts is managed by the DB cluster. +- `enable_performance_insights` (Boolean) Specifies whether to enable Performance Insights for the DB instance. For more information, see [Using Amazon Performance Insights](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) in the *Amazon RDS User Guide*. + This setting doesn't apply to RDS Custom DB instances. +- `endpoint` (Attributes) The connection endpoint for the DB instance. + The endpoint might not be shown for instances with the status of ``creating``. (see [below for nested schema](#nestedatt--endpoint)) - `engine` (String) The name of the database engine that you want to use for this DB instance. + Not every database engine is available in every AWS Region. + When you are creating a DB instance, the ``Engine`` property is required. + Valid Values: + + ``aurora-mysql`` (for Aurora MySQL DB instances) + + ``aurora-postgresql`` (for Aurora PostgreSQL DB instances) + + ``custom-oracle-ee`` (for RDS Custom for Oracle DB instances) + + ``custom-oracle-ee-cdb`` (for RDS Custom for Oracle DB instances) + + ``custom-sqlserver-ee`` (for RDS Custom for SQL Server DB instances) + + ``custom-sqlserver-se`` (for RDS Custom for SQL Server DB instances) + + ``custom-sqlserver-web`` (for RDS Custom for SQL Server DB instances) + + ``db2-ae`` + + ``db2-se`` + + ``mariadb`` + + ``mysql`` + + ``oracle-ee`` + + ``oracle-ee-cdb`` + + ``oracle-se2`` + + ``oracle-se2-cdb`` + + ``postgres`` + + ``sqlserver-ee`` + + ``sqlserver-se`` + + ``sqlserver-ex`` + + ``sqlserver-web`` - `engine_version` (String) The version number of the database engine to use. -- `iops` (Number) The number of I/O operations per second (IOPS) that the database provisions. -- `kms_key_id` (String) The ARN of the AWS Key Management Service (AWS KMS) master key that's used to encrypt the DB instance. + For a list of valid engine versions, use the ``DescribeDBEngineVersions`` action. + The following are the database engines and links to information about the major and minor versions that are available with Amazon RDS. Not every database engine is available for every AWS Region. + *Amazon Aurora* + Not applicable. The version number of the database engine to be used by the DB instance is managed by the DB cluster. + *Db2* + See [Amazon RDS for Db2](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Db2.html#Db2.Concepts.VersionMgmt) in the *Amazon RDS User Guide.* + *MariaDB* + See [MariaDB on Amazon RDS Versions](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MariaDB.html#MariaDB.Concepts.VersionMgmt) in the *Amazon RDS User Guide.* + *Microsoft SQL Server* + See [Microsoft SQL Server Versions on Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.VersionSu +- `iops` (Number) The number of I/O operations per second (IOPS) that the database provisions. The value must be equal to or greater than 1000. + If you specify this property, you must follow the range of allowed ratios of your requested IOPS rate to the amount of storage that you allocate (IOPS to allocated storage). For example, you can provision an Oracle database instance with 1000 IOPS and 200 GiB of storage (a ratio of 5:1), or specify 2000 IOPS with 200 GiB of storage (a ratio of 10:1). For more information, see [Amazon RDS Provisioned IOPS Storage to Improve Performance](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*. + If you specify ``io1`` for the ``StorageType`` property, then you must also specify the ``Iops`` property. + Constraints: + + For RDS for Db2, MariaDB, MySQL, Oracle, and PostgreSQL - Must be a multiple between .5 and 50 of the storage amount for the DB instance. + + For RDS for SQL Server - Must be a multip +- `kms_key_id` (String) The ARN of the AWS KMS key that's used to encrypt the DB instance, such as ``arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef``. If you enable the StorageEncrypted property but don't specify this property, AWS CloudFormation uses the default KMS key. If you specify this property, you must set the StorageEncrypted property to true. + If you specify the ``SourceDBInstanceIdentifier`` property, the value is inherited from the source DB instance if the read replica is created in the same region. + If you create an encrypted read replica in a different AWS Region, then you must specify a KMS key for the destination AWS Region. KMS encryption keys are specific to the region that they're created in, and you can't use encryption keys from one region in another region. + If you specify the ``SnapshotIdentifier`` property, the ``StorageEncrypted`` property value is inherited from the snapshot, and if the DB instance is encrypted, the specified ``KmsKeyId`` property is us - `license_model` (String) License model information for this DB instance. -- `manage_master_user_password` (Boolean) A value that indicates whether to manage the master user password with AWS Secrets Manager. -- `master_user_password` (String) The password for the master user. -- `master_user_secret` (Attributes) Contains the secret managed by RDS in AWS Secrets Manager for the master user password. (see [below for nested schema](#nestedatt--master_user_secret)) + Valid Values: + + Aurora MySQL - ``general-public-license`` + + Aurora PostgreSQL - ``postgresql-license`` + + RDS for Db2 - ``bring-your-own-license``. For more information about RDS for Db2 licensing, see [](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/db2-licensing.html) in the *Amazon RDS User Guide.* + + RDS for MariaDB - ``general-public-license`` + + RDS for Microsoft SQL Server - ``license-included`` + + RDS for MySQL - ``general-public-license`` + + RDS for Oracle - ``bring-your-own-license`` or ``license-included`` + + RDS for PostgreSQL - ``postgresql-license`` + + If you've specified ``DBSecurityGroups`` and then you update the license model, AWS CloudFormation replaces the underlying DB instance. This will incur some interruptions to database availability. +- `manage_master_user_password` (Boolean) Specifies whether to manage the master user password with AWS Secrets Manager. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide.* + Constraints: + + Can't manage the master user password with AWS Secrets Manager if ``MasterUserPassword`` is specified. +- `master_user_password` (String) The password for the master user. The password can include any printable ASCII character except "/", """, or "@". + *Amazon Aurora* + Not applicable. The password for the master user is managed by the DB cluster. + *RDS for Db2* + Must contain from 8 to 255 characters. + *RDS for MariaDB* + Constraints: Must contain from 8 to 41 characters. + *RDS for Microsoft SQL Server* + Constraints: Must contain from 8 to 128 characters. + *RDS for MySQL* + Constraints: Must contain from 8 to 41 characters. + *RDS for Oracle* + Constraints: Must contain from 8 to 30 characters. + *RDS for PostgreSQL* + Constraints: Must contain from 8 to 128 characters. +- `master_user_secret` (Attributes) The secret managed by RDS in AWS Secrets Manager for the master user password. + For more information, see [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) in the *Amazon RDS User Guide.* (see [below for nested schema](#nestedatt--master_user_secret)) - `master_username` (String) The master user name for the DB instance. -- `max_allocated_storage` (Number) The upper limit to which Amazon RDS can automatically scale the storage of the DB instance. -- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collecting Enhanced Monitoring metrics, specify 0. The default is 0. -- `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. -- `multi_az` (Boolean) Specifies whether the database instance is a multiple Availability Zone deployment. -- `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. This parameter doesn't apply to RDS Custom. -- `network_type` (String) The network type of the DB cluster. + If you specify the ``SourceDBInstanceIdentifier`` or ``DBSnapshotIdentifier`` property, don't specify this property. The value is inherited from the source DB instance or snapshot. + When migrating a self-managed Db2 database, we recommend that you use the same master username as your self-managed Db2 instance name. + *Amazon Aurora* + Not applicable. The name for the master user is managed by the DB cluster. + *RDS for Db2* + Constraints: + + Must be 1 to 16 letters or numbers. + + First character must be a letter. + + Can't be a reserved word for the chosen database engine. + + *RDS for MariaDB* + Constraints: + + Must be 1 to 16 letters or numbers. + + Can't be a reserved word for the chosen database engine. + + *RDS for Microsoft SQL Server* + Constraints: + + Must be 1 to 128 letters or numbers. + + First character must be a letter. + + Can't be a reserved word for the chosen database engine. + + *RDS for MySQL* + Constrain +- `max_allocated_storage` (Number) The upper limit in gibibytes (GiB) to which Amazon RDS can automatically scale the storage of the DB instance. + For more information about this setting, including limitations that apply to it, see [Managing capacity automatically with Amazon RDS storage autoscaling](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIOPS.StorageTypes.html#USER_PIOPS.Autoscaling) in the *Amazon RDS User Guide*. + This setting doesn't apply to the following DB instances: + + Amazon Aurora (Storage is managed by the DB cluster.) + + RDS Custom +- `monitoring_interval` (Number) The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB instance. To disable collection of Enhanced Monitoring metrics, specify 0. The default is 0. + If ``MonitoringRoleArn`` is specified, then you must set ``MonitoringInterval`` to a value other than 0. + This setting doesn't apply to RDS Custom. + Valid Values: ``0, 1, 5, 10, 15, 30, 60`` +- `monitoring_role_arn` (String) The ARN for the IAM role that permits RDS to send enhanced monitoring metrics to Amazon CloudWatch Logs. For example, ``arn:aws:iam:123456789012:role/emaccess``. For information on creating a monitoring role, see [Setting Up and Enabling Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html#USER_Monitoring.OS.Enabling) in the *Amazon RDS User Guide*. + If ``MonitoringInterval`` is set to a value other than ``0``, then you must supply a ``MonitoringRoleArn`` value. + This setting doesn't apply to RDS Custom DB instances. +- `multi_az` (Boolean) Specifies whether the database instance is a Multi-AZ DB instance deployment. You can't set the ``AvailabilityZone`` parameter if the ``MultiAZ`` parameter is set to true. + For more information, see [Multi-AZ deployments for high availability](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.MultiAZ.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. Amazon Aurora storage is replicated across all of the Availability Zones and doesn't require the ``MultiAZ`` option to be set. +- `nchar_character_set_name` (String) The name of the NCHAR character set for the Oracle DB instance. + This setting doesn't apply to RDS Custom DB instances. +- `network_type` (String) The network type of the DB instance. + Valid values: + + ``IPV4`` + + ``DUAL`` + + The network type is determined by the ``DBSubnetGroup`` specified for the DB instance. A ``DBSubnetGroup`` can support only the IPv4 protocol or the IPv4 and IPv6 protocols (``DUAL``). + For more information, see [Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) in the *Amazon RDS User Guide.* - `option_group_name` (String) Indicates that the DB instance should be associated with the specified option group. -- `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. The KMS key ID is the Amazon Resource Name (ARN), KMS key identifier, or the KMS key alias for the KMS encryption key. -- `performance_insights_retention_period` (Number) The amount of time, in days, to retain Performance Insights data. Valid values are 7 or 731 (2 years). + Permanent options, such as the TDE option for Oracle Advanced Security TDE, can't be removed from an option group. Also, that option group can't be removed from a DB instance once it is associated with a DB instance. +- `performance_insights_kms_key_id` (String) The AWS KMS key identifier for encryption of Performance Insights data. + The KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key. + If you do not specify a value for ``PerformanceInsightsKMSKeyId``, then Amazon RDS uses your default KMS key. There is a default KMS key for your AWS account. Your AWS account has a different default KMS key for each AWS Region. + For information about enabling Performance Insights, see [EnablePerformanceInsights](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-enableperformanceinsights). +- `performance_insights_retention_period` (Number) The number of days to retain Performance Insights data. + This setting doesn't apply to RDS Custom DB instances. + Valid Values: + + ``7`` + + *month* * 31, where *month* is a number of months from 1-23. Examples: ``93`` (3 months * 31), ``341`` (11 months * 31), ``589`` (19 months * 31) + + ``731`` + + Default: ``7`` days + If you specify a retention period that isn't valid, such as ``94``, Amazon RDS returns an error. - `port` (String) The port number on which the database accepts connections. -- `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the BackupRetentionPeriod parameter. -- `preferred_maintenance_window` (String) he weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). -- `processor_features` (Attributes List) The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. (see [below for nested schema](#nestedatt--processor_features)) -- `promotion_tier` (Number) A value that specifies the order in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. -- `publicly_accessible` (Boolean) Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address. -- `replica_mode` (String) The open mode of an Oracle read replica. The default is open-read-only. + *Amazon Aurora* + Not applicable. The port number is managed by the DB cluster. + *Db2* + Default value: ``50000`` +- `preferred_backup_window` (String) The daily time range during which automated backups are created if automated backups are enabled, using the ``BackupRetentionPeriod`` parameter. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow) in the *Amazon RDS User Guide.* + Constraints: + + Must be in the format ``hh24:mi-hh24:mi``. + + Must be in Universal Coordinated Time (UTC). + + Must not conflict with the preferred maintenance window. + + Must be at least 30 minutes. + + *Amazon Aurora* + Not applicable. The daily time range for creating automated backups is managed by the DB cluster. +- `preferred_maintenance_window` (String) The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC). + Format: ``ddd:hh24:mi-ddd:hh24:mi`` + The default is a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week. To see the time blocks available, see [Adjusting the Preferred DB Instance Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow) in the *Amazon RDS User Guide.* + This property applies when AWS CloudFormation initially creates the DB instance. If you use AWS CloudFormation to update the DB instance, those updates are applied immediately. + Constraints: Minimum 30-minute window. +- `processor_features` (Attributes List) The number of CPU cores and the number of threads per core for the DB instance class of the DB instance. + This setting doesn't apply to Amazon Aurora or RDS Custom DB instances. (see [below for nested schema](#nestedatt--processor_features)) +- `promotion_tier` (Number) The order of priority in which an Aurora Replica is promoted to the primary instance after a failure of the existing primary instance. For more information, see [Fault Tolerance for an Aurora DB Cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.AuroraHighAvailability.html#Aurora.Managing.FaultTolerance) in the *Amazon Aurora User Guide*. + This setting doesn't apply to RDS Custom DB instances. + Default: ``1`` + Valid Values: ``0 - 15`` +- `publicly_accessible` (Boolean) Indicates whether the DB instance is an internet-facing instance. If you specify true, AWS CloudFormation creates an instance with a publicly resolvable DNS name, which resolves to a public IP address. If you specify false, AWS CloudFormation creates an internal instance with a DNS name that resolves to a private IP address. + The default behavior value depends on your VPC setup and the database subnet group. For more information, see the ``PubliclyAccessible`` parameter in the [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) in the *Amazon RDS API Reference*. +- `replica_mode` (String) The open mode of an Oracle read replica. For more information, see [Working with Oracle Read Replicas for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-read-replicas.html) in the *Amazon RDS User Guide*. + This setting is only supported in RDS for Oracle. + Default: ``open-read-only`` + Valid Values: ``open-read-only`` or ``mounted`` - `restore_time` (String) The date and time to restore from. + Constraints: + + Must be a time in Universal Coordinated Time (UTC) format. + + Must be before the latest restorable time for the DB instance. + + Can't be specified if the ``UseLatestRestorableTime`` parameter is enabled. + + Example: ``2009-09-07T23:45:00Z`` - `source_db_cluster_identifier` (String) The identifier of the Multi-AZ DB cluster that will act as the source for the read replica. Each DB cluster can have up to 15 read replicas. -- `source_db_instance_automated_backups_arn` (String) The Amazon Resource Name (ARN) of the replicated automated backups from which to restore. -- `source_db_instance_identifier` (String) If you want to create a Read Replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of Read Replicas. + Constraints: + + Must be the identifier of an existing Multi-AZ DB cluster. + + Can't be specified if the ``SourceDBInstanceIdentifier`` parameter is also specified. + + The specified DB cluster must have automatic backups enabled, that is, its backup retention period must be greater than 0. + + The source DB cluster must be in the same AWS-Region as the read replica. Cross-Region replication isn't supported. +- `source_db_instance_automated_backups_arn` (String) The Amazon Resource Name (ARN) of the replicated automated backups from which to restore, for example, ``arn:aws:rds:us-east-1:123456789012:auto-backup:ab-L2IJCEXJP7XQ7HOJ4SIEXAMPLE``. + This setting doesn't apply to RDS Custom. +- `source_db_instance_identifier` (String) If you want to create a read replica DB instance, specify the ID of the source DB instance. Each DB instance can have a limited number of read replicas. For more information, see [Working with Read Replicas](https://docs.aws.amazon.com/AmazonRDS/latest/DeveloperGuide/USER_ReadRepl.html) in the *Amazon RDS User Guide*. + For information about constraints that apply to DB instance identifiers, see [Naming constraints in Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon RDS User Guide*. + The ``SourceDBInstanceIdentifier`` property determines whether a DB instance is a read replica. If you remove the ``SourceDBInstanceIdentifier`` property from your template and then update your stack, AWS CloudFormation promotes the Read Replica to a standalone DB instance. + + If you specify a source DB instance that uses VPC security groups, we recommend that you specify the ``VPCSecurityGroups`` property. If you don't specify the - `source_dbi_resource_id` (String) The resource ID of the source DB instance from which to restore. -- `source_region` (String) The ID of the region that contains the source DB instance for the Read Replica. +- `source_region` (String) The ID of the region that contains the source DB instance for the read replica. - `storage_encrypted` (Boolean) A value that indicates whether the DB instance is encrypted. By default, it isn't encrypted. -- `storage_throughput` (Number) Specifies the storage throughput for the DB instance. + If you specify the ``KmsKeyId`` property, then you must enable encryption. + If you specify the ``SourceDBInstanceIdentifier`` property, don't specify this property. The value is inherited from the source DB instance, and if the DB instance is encrypted, the specified ``KmsKeyId`` property is used. + If you specify the ``DBSnapshotIdentifier`` and the specified snapshot is encrypted, don't specify this property. The value is inherited from the snapshot, and the specified ``KmsKeyId`` property is used. + If you specify the ``DBSnapshotIdentifier`` and the specified snapshot isn't encrypted, you can use this property to specify that the restored DB instance is encrypted. Specify the ``KmsKeyId`` property for the KMS key to use for encryption. If you don't want the restored DB instance to be encrypted, then don't set this property or set it to ``false``. + *Amazon Aurora* + Not applicable. The encrypt +- `storage_throughput` (Number) Specifies the storage throughput value for the DB instance. This setting applies only to the ``gp3`` storage type. + This setting doesn't apply to RDS Custom or Amazon Aurora. - `storage_type` (String) Specifies the storage type to be associated with the DB instance. -- `tags` (Attributes List) Tags to assign to the DB instance. (see [below for nested schema](#nestedatt--tags)) -- `tde_credential_arn` (String) The ARN from the key store with which to associate the instance for TDE encryption. -- `tde_credential_password` (String) The password for the given ARN from the key store in order to access the device. -- `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by Microsoft SQL Server. -- `use_default_processor_features` (Boolean) A value that indicates whether the DB instance class of the DB instance uses its default processor features. -- `use_latest_restorable_time` (Boolean) A value that indicates whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time. -- `vpc_security_groups` (List of String) A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to AWS::EC2::SecurityGroup resources created in the template. + Valid values: ``gp2 | gp3 | io1 | standard`` + The ``standard`` value is also known as magnetic. + If you specify ``io1`` or ``gp3``, you must also include a value for the ``Iops`` parameter. + Default: ``io1`` if the ``Iops`` parameter is specified, otherwise ``gp2`` + For more information, see [Amazon RDS DB Instance Storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html) in the *Amazon RDS User Guide*. + *Amazon Aurora* + Not applicable. Aurora data is stored in the cluster volume, which is a single, virtual volume that uses solid state drives (SSDs). +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB instance. (see [below for nested schema](#nestedatt--tags)) +- `tde_credential_arn` (String) +- `tde_credential_password` (String) +- `timezone` (String) The time zone of the DB instance. The time zone parameter is currently supported only by [Microsoft SQL Server](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_SQLServer.html#SQLServer.Concepts.General.TimeZone). +- `use_default_processor_features` (Boolean) Specifies whether the DB instance class of the DB instance uses its default processor features. + This setting doesn't apply to RDS Custom DB instances. +- `use_latest_restorable_time` (Boolean) Specifies whether the DB instance is restored from the latest backup time. By default, the DB instance isn't restored from the latest backup time. + Constraints: + + Can't be specified if the ``RestoreTime`` parameter is provided. +- `vpc_security_groups` (List of String) A list of the VPC security group IDs to assign to the DB instance. The list can include both the physical IDs of existing VPC security groups and references to [AWS::EC2::SecurityGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html) resources created in the template. + If you plan to update the resource, don't specify VPC security groups in a shared VPC. + If you set ``VPCSecurityGroups``, you must not set [DBSecurityGroups](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-dbsecuritygroups), and vice versa. + You can migrate a DB instance in your stack from an RDS DB security group to a VPC security group, but keep the following in mind: + + You can't revert to using an RDS security group after you establish a VPC security group membership. + + When you migrate your DB instance to VPC security groups, if your stack update rolls back because the DB instanc ### Read-Only -- `db_instance_arn` (String) The Amazon Resource Name (ARN) for the DB instance. -- `db_system_id` (String) The Oracle system ID (Oracle SID) for a container database (CDB). The Oracle SID is also the name of the CDB. This setting is valid for RDS Custom only. -- `dbi_resource_id` (String) The AWS Region-unique, immutable identifier for the DB instance. This identifier is found in AWS CloudTrail log entries whenever the AWS KMS key for the DB instance is accessed. +- `db_instance_arn` (String) +- `db_system_id` (String) The Oracle system identifier (SID), which is the name of the Oracle database instance that manages your database files. In this context, the term "Oracle database instance" refers exclusively to the system global area (SGA) and Oracle background processes. If you don't specify a SID, the value defaults to ``RDSCDB``. The Oracle SID is also the name of your CDB. +- `dbi_resource_id` (String) - `id` (String) Uniquely identifies the resource. @@ -217,7 +532,7 @@ Constraints: Required: -- `feature_name` (String) The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf. +- `feature_name` (String) The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB instance grant permission for the DB instance to access other AWS services on your behalf. For the list of supported feature names, see the ``SupportedFeatureNames`` description in [DBEngineVersion](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBEngineVersion.html) in the *Amazon RDS API Reference*. - `role_arn` (String) The Amazon Resource Name (ARN) of the IAM role that is associated with the DB instance. @@ -227,7 +542,7 @@ Required: Read-Only: - `ca_identifier` (String) The CA identifier of the CA certificate used for the DB instance's server certificate. -- `valid_till` (String) The expiration date of the DB instance’s server certificate. +- `valid_till` (String) The expiration date of the DB instance?s server certificate. @@ -257,7 +572,7 @@ Read-Only: Optional: -- `name` (String) The name of the processor feature. Valid names are coreCount and threadsPerCore. +- `name` (String) The name of the processor feature. Valid names are ``coreCount`` and ``threadsPerCore``. - `value` (String) The value of a processor feature name. @@ -266,11 +581,11 @@ Optional: Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). Optional: -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). ## Import diff --git a/docs/resources/rds_db_parameter_group.md b/docs/resources/rds_db_parameter_group.md index 003a11d700..a49b57d1d5 100644 --- a/docs/resources/rds_db_parameter_group.md +++ b/docs/resources/rds_db_parameter_group.md @@ -2,12 +2,20 @@ page_title: "awscc_rds_db_parameter_group Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::RDS::DBParameterGroup resource creates a custom parameter group for an RDS database family + The AWS::RDS::DBParameterGroup resource creates a custom parameter group for an RDS database family. + This type can be declared in a template and referenced in the DBParameterGroupName property of an AWS::RDS::DBInstance resource. + For information about configuring parameters for Amazon RDS DB instances, see Working with parameter groups https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html in the Amazon RDS User Guide. + For information about configuring parameters for Amazon Aurora DB instances, see Working with parameter groups https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html in the Amazon Aurora User Guide. + Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. --- # awscc_rds_db_parameter_group (Resource) -The AWS::RDS::DBParameterGroup resource creates a custom parameter group for an RDS database family +The ``AWS::RDS::DBParameterGroup`` resource creates a custom parameter group for an RDS database family. + This type can be declared in a template and referenced in the ``DBParameterGroupName`` property of an ``AWS::RDS::DBInstance`` resource. + For information about configuring parameters for Amazon RDS DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*. + For information about configuring parameters for Amazon Aurora DB instances, see [Working with parameter groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. + Applying a parameter group to a DB instance may require the DB instance to reboot, resulting in a database outage for the duration of the reboot. ## Example Usage @@ -68,13 +76,30 @@ resource "awscc_rds_db_parameter_group" "this" { ### Required - `description` (String) Provides the customer-specified description for this DB parameter group. -- `family` (String) The DB parameter group family name. +- `family` (String) The DB parameter group family name. A DB parameter group can be associated with one and only one DB parameter group family, and can be applied only to a DB instance running a DB engine and engine version compatible with that DB parameter group family. + The DB parameter group family can't be changed when updating a DB parameter group. + To list all of the available parameter group families, use the following command: + ``aws rds describe-db-engine-versions --query "DBEngineVersions[].DBParameterGroupFamily"`` + The output contains duplicates. + For more information, see ``CreateDBParameterGroup``. ### Optional -- `db_parameter_group_name` (String) Specifies the name of the DB parameter group -- `parameters` (String) An array of parameter names and values for the parameter update. -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `db_parameter_group_name` (String) The name of the DB parameter group. + Constraints: + + Must be 1 to 255 letters, numbers, or hyphens. + + First character must be a letter + + Can't end with a hyphen or contain two consecutive hyphens + + If you don't specify a value for ``DBParameterGroupName`` property, a name is automatically created for the DB parameter group. + This value is stored as a lowercase string. +- `parameters` (String) An array of parameter names and values for the parameter update. At least one parameter name and value must be supplied. Subsequent arguments are optional. + RDS for Db2 requires you to bring your own Db2 license. You must enter your IBM customer ID (``rds.ibm_customer_id``) and site number (``rds.ibm_site_id``) before starting a Db2 instance. + For more information about DB parameters and DB parameter groups for Amazon RDS DB engines, see [Working with DB Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html) in the *Amazon RDS User Guide*. + For more information about DB cluster and DB instance parameters and parameter groups for Amazon Aurora DB engines, see [Working with DB Parameter Groups and DB Cluster Parameter Groups](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.html) in the *Amazon Aurora User Guide*. + AWS CloudFormation doesn't support specifying an apply method for each individual +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB parameter group. + Currently, this is the only property that supports drift detection. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -85,11 +110,11 @@ resource "awscc_rds_db_parameter_group" "this" { Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). Optional: -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). ## Import diff --git a/docs/resources/rds_db_subnet_group.md b/docs/resources/rds_db_subnet_group.md index 296d378452..33f7b341ca 100644 --- a/docs/resources/rds_db_subnet_group.md +++ b/docs/resources/rds_db_subnet_group.md @@ -3,11 +3,13 @@ page_title: "awscc_rds_db_subnet_group Resource - terraform-provider-awscc" subcategory: "" description: |- The AWS::RDS::DBSubnetGroup resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. + For more information, see Working with DB subnet groups https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets in the Amazon RDS User Guide. --- # awscc_rds_db_subnet_group (Resource) -The AWS::RDS::DBSubnetGroup resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. +The ``AWS::RDS::DBSubnetGroup`` resource creates a database subnet group. Subnet groups must contain at least two subnets in two different Availability Zones in the same region. + For more information, see [Working with DB subnet groups](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html#USER_VPC.Subnets) in the *Amazon RDS User Guide*. ## Example Usage @@ -41,13 +43,15 @@ resource "awscc_rds_db_subnet_group" "example" { ### Required -- `db_subnet_group_description` (String) -- `subnet_ids` (List of String) +- `db_subnet_group_description` (String) The description for the DB subnet group. +- `subnet_ids` (List of String) The EC2 Subnet IDs for the DB subnet group. ### Optional -- `db_subnet_group_name` (String) -- `tags` (Attributes List) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `db_subnet_group_name` (String) The name for the DB subnet group. This value is stored as a lowercase string. + Constraints: Must contain no more than 255 lowercase alphanumeric characters or hyphens. Must not be "Default". + Example: ``mysubnetgroup`` +- `tags` (Attributes List) An optional array of key-value pairs to apply to this DB subnet group. (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -58,11 +62,11 @@ resource "awscc_rds_db_subnet_group" "example" { Required: -- `key` (String) The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `key` (String) A key is the required name of the tag. The string value can be from 1 to 128 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). Optional: -- `value` (String) The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -. +- `value` (String) A value is the optional value of the tag. The string value can be from 1 to 256 Unicode characters in length and can't be prefixed with ``aws:`` or ``rds:``. The string can only contain only the set of Unicode letters, digits, white-space, '_', '.', ':', '/', '=', '+', '-', '@' (Java regex: "^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)$"). ## Import diff --git a/docs/resources/s3_bucket.md b/docs/resources/s3_bucket.md index ce63476294..bba69041d8 100644 --- a/docs/resources/s3_bucket.md +++ b/docs/resources/s3_bucket.md @@ -2,12 +2,16 @@ page_title: "awscc_s3_bucket Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::S3::Bucket + The AWS::S3::Bucket resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack. + To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to retain the bucket or to delete the bucket. For more information, see DeletionPolicy Attribute https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html. + You can only delete empty buckets. Deletion fails for buckets that have contents. --- # awscc_s3_bucket (Resource) -Resource Type definition for AWS::S3::Bucket +The ``AWS::S3::Bucket`` resource creates an Amazon S3 bucket in the same AWS Region where you create the AWS CloudFormation stack. + To control how AWS CloudFormation handles the bucket when the stack is deleted, you can set a deletion policy for your bucket. You can choose to *retain* the bucket or to *delete* the bucket. For more information, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html). + You can only delete empty buckets. Deletion fails for buckets that have contents. ## Example Usage ### Create a s3 bucket @@ -72,26 +76,35 @@ resource "awscc_s3_bucket" "example" { ### Optional -- `accelerate_configuration` (Attributes) Configuration for the transfer acceleration state. (see [below for nested schema](#nestedatt--accelerate_configuration)) -- `access_control` (String) A canned access control list (ACL) that grants predefined permissions to the bucket. -- `analytics_configurations` (Attributes List) The configuration and any analyses for the analytics filter of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations)) -- `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with either Amazon S3-managed keys (SSE-S3) or AWS KMS-managed keys (SSE-KMS). (see [below for nested schema](#nestedatt--bucket_encryption)) -- `bucket_name` (String) A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. -- `cors_configuration` (Attributes) Rules that define cross-origin resource sharing of objects in this bucket. (see [below for nested schema](#nestedatt--cors_configuration)) -- `intelligent_tiering_configurations` (Attributes List) Specifies the S3 Intelligent-Tiering configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations)) -- `inventory_configurations` (Attributes List) The inventory configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--inventory_configurations)) -- `lifecycle_configuration` (Attributes) Rules that define how Amazon S3 manages objects during their lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration)) +- `accelerate_configuration` (Attributes) Configures the transfer acceleration state for an Amazon S3 bucket. For more information, see [Amazon S3 Transfer Acceleration](https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--accelerate_configuration)) +- `access_control` (String) This is a legacy property, and it is not recommended for most use cases. A majority of modern use cases in Amazon S3 no longer require the use of ACLs, and we recommend that you keep ACLs disabled. For more information, see [Controlling object ownership](https://docs.aws.amazon.com//AmazonS3/latest/userguide/about-object-ownership.html) in the *Amazon S3 User Guide*. + A canned access control list (ACL) that grants predefined permissions to the bucket. For more information about canned ACLs, see [Canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl) in the *Amazon S3 User Guide*. + S3 buckets are created with ACLs disabled by default. Therefore, unless you explicitly set the [AWS::S3::OwnershipControls](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-ownershipcontrols.html) property to enable ACLs, your resource will fail to deploy with any value other than Private. Use cases requiring ACLs are uncommon. + The majority of access control configurations can be successfully and more easily achieved with bucket policies. For more information, see [AWS::S3::BucketPolicy](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html). For examples of common policy configurations, including S3 Server Access Logs buckets and more, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) in the *Amazon S3 User Guide*. +- `analytics_configurations` (Attributes List) Specifies the configuration and any analyses for the analytics filter of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations)) +- `bucket_encryption` (Attributes) Specifies default encryption for a bucket using server-side encryption with Amazon S3-managed keys (SSE-S3), AWS KMS-managed keys (SSE-KMS), or dual-layer server-side encryption with KMS-managed keys (DSSE-KMS). For information about the Amazon S3 default encryption feature, see [Amazon S3 Default Encryption for S3 Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--bucket_encryption)) +- `bucket_name` (String) A name for the bucket. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. The bucket name must contain only lowercase letters, numbers, periods (.), and dashes (-) and must follow [Amazon S3 bucket restrictions and limitations](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html). For more information, see [Rules for naming Amazon S3 buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html#bucketnamingrules) in the *Amazon S3 User Guide*. + If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name. +- `cors_configuration` (Attributes) Describes the cross-origin access configuration for objects in an Amazon S3 bucket. For more information, see [Enabling Cross-Origin Resource Sharing](https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--cors_configuration)) +- `intelligent_tiering_configurations` (Attributes List) Defines how Amazon S3 handles Intelligent-Tiering storage. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations)) +- `inventory_configurations` (Attributes List) Specifies the inventory configuration for an Amazon S3 bucket. For more information, see [GET Bucket inventory](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETInventoryConfig.html) in the *Amazon S3 API Reference*. (see [below for nested schema](#nestedatt--inventory_configurations)) +- `lifecycle_configuration` (Attributes) Specifies the lifecycle configuration for objects in an Amazon S3 bucket. For more information, see [Object Lifecycle Management](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--lifecycle_configuration)) - `logging_configuration` (Attributes) Settings that define where logs are stored. (see [below for nested schema](#nestedatt--logging_configuration)) -- `metrics_configurations` (Attributes List) Settings that define a metrics configuration for the CloudWatch request metrics from the bucket. (see [below for nested schema](#nestedatt--metrics_configurations)) +- `metrics_configurations` (Attributes List) Specifies a metrics configuration for the CloudWatch request metrics (specified by the metrics configuration ID) from an Amazon S3 bucket. If you're updating an existing metrics configuration, note that this is a full replacement of the existing metrics configuration. If you don't include the elements you want to keep, they are erased. For more information, see [PutBucketMetricsConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTMetricConfiguration.html). (see [below for nested schema](#nestedatt--metrics_configurations)) - `notification_configuration` (Attributes) Configuration that defines how Amazon S3 handles bucket notifications. (see [below for nested schema](#nestedatt--notification_configuration)) -- `object_lock_configuration` (Attributes) Places an Object Lock configuration on the specified bucket. (see [below for nested schema](#nestedatt--object_lock_configuration)) -- `object_lock_enabled` (Boolean) Indicates whether this bucket has an Object Lock configuration enabled. -- `ownership_controls` (Attributes) Specifies the container element for object ownership rules. (see [below for nested schema](#nestedatt--ownership_controls)) +- `object_lock_configuration` (Attributes) This operation is not supported by directory buckets. + Places an Object Lock configuration on the specified bucket. The rule specified in the Object Lock configuration will be applied by default to every new object placed in the specified bucket. For more information, see [Locking Objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html). + + The ``DefaultRetention`` settings require both a mode and a period. + + The ``DefaultRetention`` period can be either ``Days`` or ``Years`` but you must select one. You cannot specify ``Days`` and ``Years`` at the same time. + + You can enable Object Lock for new or existing buckets. For more information, see [Configuring Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-configure.html). (see [below for nested schema](#nestedatt--object_lock_configuration)) +- `object_lock_enabled` (Boolean) Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket. +- `ownership_controls` (Attributes) Configuration that defines how Amazon S3 handles Object Ownership rules. (see [below for nested schema](#nestedatt--ownership_controls)) - `public_access_block_configuration` (Attributes) Configuration that defines how Amazon S3 handles public access. (see [below for nested schema](#nestedatt--public_access_block_configuration)) -- `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. (see [below for nested schema](#nestedatt--replication_configuration)) +- `replication_configuration` (Attributes) Configuration for replicating objects in an S3 bucket. To enable replication, you must also enable versioning by using the ``VersioningConfiguration`` property. + Amazon S3 can store replicated objects in a single destination bucket or multiple destination buckets. The destination bucket or buckets must already exist. (see [below for nested schema](#nestedatt--replication_configuration)) - `tags` (Attributes List) An arbitrary set of tags (key-value pairs) for this S3 bucket. (see [below for nested schema](#nestedatt--tags)) -- `versioning_configuration` (Attributes) Describes the versioning state of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--versioning_configuration)) -- `website_configuration` (Attributes) Specifies website configuration parameters for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--website_configuration)) +- `versioning_configuration` (Attributes) Enables multiple versions of all objects in this bucket. You might enable versioning to prevent objects from being deleted or overwritten by mistake or to archive objects so that you can retrieve previous versions of them. (see [below for nested schema](#nestedatt--versioning_configuration)) +- `website_configuration` (Attributes) Information used to configure the bucket as a static website. For more information, see [Hosting Websites on Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html). (see [below for nested schema](#nestedatt--website_configuration)) ### Read-Only @@ -107,7 +120,7 @@ resource "awscc_s3_bucket" "example" { Required: -- `acceleration_status` (String) Configures the transfer acceleration state for an Amazon S3 bucket. +- `acceleration_status` (String) Specifies the transfer acceleration status of the bucket. @@ -116,12 +129,13 @@ Required: Required: - `id` (String) The ID that identifies the analytics configuration. -- `storage_class_analysis` (Attributes) Specifies data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis)) +- `storage_class_analysis` (Attributes) Contains data related to access patterns to be collected and made available to analyze the tradeoffs between different storage classes. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis)) Optional: - `prefix` (String) The prefix that an object must have to be included in the analytics results. -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--analytics_configurations--tag_filters)) +- `tag_filters` (Attributes List) The tags to use when evaluating an analytics filter. + The analytics only includes objects that meet the filter's criteria. If no filter is specified, all of the contents of the bucket are included in the analysis. (see [below for nested schema](#nestedatt--analytics_configurations--tag_filters)) ### Nested Schema for `analytics_configurations.storage_class_analysis` @@ -135,8 +149,8 @@ Optional: Required: -- `destination` (Attributes) Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis--data_export--destination)) -- `output_schema_version` (String) The version of the output schema to use when exporting data. +- `destination` (Attributes) The place to store the data for an analysis. (see [below for nested schema](#nestedatt--analytics_configurations--storage_class_analysis--data_export--destination)) +- `output_schema_version` (String) The version of the output schema to use when exporting data. Must be ``V_1``. ### Nested Schema for `analytics_configurations.storage_class_analysis.data_export.output_schema_version` @@ -145,10 +159,12 @@ Required: - `bucket_arn` (String) The Amazon Resource Name (ARN) of the bucket to which data is exported. - `format` (String) Specifies the file format used when exporting data to Amazon S3. + *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet`` Optional: -- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. +- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data. + Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes. - `prefix` (String) The prefix to use when exporting data. The prefix is prepended to all results. @@ -159,8 +175,8 @@ Optional: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -176,7 +192,8 @@ Required: Optional: -- `bucket_key_enabled` (Boolean) Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the BucketKeyEnabled element to true causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. +- `bucket_key_enabled` (Boolean) Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. + For more information, see [Amazon S3 Bucket Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html) in the *Amazon S3 User Guide*. - `server_side_encryption_by_default` (Attributes) Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. (see [below for nested schema](#nestedatt--bucket_encryption--server_side_encryption_configuration--server_side_encryption_by_default)) @@ -184,11 +201,19 @@ Optional: Required: -- `sse_algorithm` (String) +- `sse_algorithm` (String) Server-side encryption algorithm to use for the default encryption. Optional: -- `kms_master_key_id` (String) "KMSMasterKeyID" can only be used when you set the value of SSEAlgorithm as aws:kms or aws:kms:dsse. +- `kms_master_key_id` (String) AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse``. + You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key. + + Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` + + Key Alias: ``alias/alias-name`` + + If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. + If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see [Using encryption for cross-account operations](https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy). + Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*. @@ -198,21 +223,22 @@ Optional: Required: -- `cors_rules` (Attributes List) (see [below for nested schema](#nestedatt--cors_configuration--cors_rules)) +- `cors_rules` (Attributes List) A set of origins and methods (cross-origin access that you want to allow). You can add up to 100 rules to the configuration. (see [below for nested schema](#nestedatt--cors_configuration--cors_rules)) ### Nested Schema for `cors_configuration.cors_rules` Required: -- `allowed_methods` (List of String) An HTTP method that you allow the origin to execute. +- `allowed_methods` (List of String) An HTTP method that you allow the origin to run. + *Allowed values*: ``GET`` | ``PUT`` | ``HEAD`` | ``POST`` | ``DELETE`` - `allowed_origins` (List of String) One or more origins you want customers to be able to access the bucket from. Optional: -- `allowed_headers` (List of String) Headers that are specified in the Access-Control-Request-Headers header. -- `exposed_headers` (List of String) One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript XMLHttpRequest object). -- `id` (String) A unique identifier for this rule. +- `allowed_headers` (List of String) Headers that are specified in the ``Access-Control-Request-Headers`` header. These headers are allowed in a preflight OPTIONS request. In response to any preflight OPTIONS request, Amazon S3 returns any requested headers that are allowed. +- `exposed_headers` (List of String) One or more headers in the response that you want customers to be able to access from their applications (for example, from a JavaScript ``XMLHttpRequest`` object). +- `id` (String) A unique identifier for this rule. The value must be no more than 255 characters. - `max_age` (Number) The time in seconds that your browser is to cache the preflight response for the specified resource. @@ -224,7 +250,8 @@ Required: - `id` (String) The ID used to identify the S3 Intelligent-Tiering configuration. - `status` (String) Specifies the status of the configuration. -- `tierings` (Attributes List) Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ARCHIVE_ACCESS and DEEP_ARCHIVE_ACCESS. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations--tierings)) +- `tierings` (Attributes List) Specifies a list of S3 Intelligent-Tiering storage class tiers in the configuration. At least one tier must be defined in the list. At most, you can specify two tiers in the list, one for each available AccessTier: ``ARCHIVE_ACCESS`` and ``DEEP_ARCHIVE_ACCESS``. + You only need Intelligent Tiering Configuration enabled on a bucket if you want to automatically move objects stored in the Intelligent-Tiering storage class to Archive Access or Deep Archive Access tiers. (see [below for nested schema](#nestedatt--intelligent_tiering_configurations--tierings)) Optional: @@ -236,7 +263,7 @@ Optional: Required: -- `access_tier` (String) S3 Intelligent-Tiering access tier. See Storage class for automatically optimizing frequently and infrequently accessed objects for a list of access tiers in the S3 Intelligent-Tiering storage class. +- `access_tier` (String) S3 Intelligent-Tiering access tier. See [Storage class for automatically optimizing frequently and infrequently accessed objects](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access) for a list of access tiers in the S3 Intelligent-Tiering storage class. - `days` (Number) The number of consecutive days of no access after which an object will be eligible to be transitioned to the corresponding tier. The minimum number of days specified for Archive Access tier must be at least 90 days and Deep Archive Access tier must be at least 180 days. The maximum can be up to 2 years (730 days). @@ -245,8 +272,8 @@ Required: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -255,16 +282,16 @@ Required: Required: -- `destination` (Attributes) Specifies information about where to publish analysis or configuration results for an Amazon S3 bucket and S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--inventory_configurations--destination)) -- `enabled` (Boolean) Specifies whether the inventory is enabled or disabled. +- `destination` (Attributes) Contains information about where to publish the inventory results. (see [below for nested schema](#nestedatt--inventory_configurations--destination)) +- `enabled` (Boolean) Specifies whether the inventory is enabled or disabled. If set to ``True``, an inventory list is generated. If set to ``False``, no inventory list is generated. - `id` (String) The ID used to identify the inventory configuration. -- `included_object_versions` (String) Object versions to include in the inventory list. +- `included_object_versions` (String) Object versions to include in the inventory list. If set to ``All``, the list includes all the object versions, which adds the version-related fields ``VersionId``, ``IsLatest``, and ``DeleteMarker`` to the list. If set to ``Current``, the list does not contain these version-related fields. - `schedule_frequency` (String) Specifies the schedule for generating inventory results. Optional: - `optional_fields` (List of String) Contains the optional fields that are included in the inventory results. -- `prefix` (String) The prefix that is prepended to all inventory results. +- `prefix` (String) Specifies the inventory filter prefix. ### Nested Schema for `inventory_configurations.destination` @@ -273,10 +300,12 @@ Required: - `bucket_arn` (String) The Amazon Resource Name (ARN) of the bucket to which data is exported. - `format` (String) Specifies the file format used when exporting data to Amazon S3. + *Allowed values*: ``CSV`` | ``ORC`` | ``Parquet`` Optional: -- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. +- `bucket_account_id` (String) The account ID that owns the destination S3 bucket. If no account ID is provided, the owner is not validated before exporting data. + Although this value is optional, we strongly recommend that you set it to help prevent problems if the destination bucket ownership changes. - `prefix` (String) The prefix to use when exporting data. The prefix is prepended to all results. @@ -293,32 +322,33 @@ Required: Required: -- `status` (String) +- `status` (String) If ``Enabled``, the rule is currently being applied. If ``Disabled``, the rule is not currently being applied. Optional: -- `abort_incomplete_multipart_upload` (Attributes) Specifies the days since the initiation of an incomplete multipart upload that Amazon S3 will wait before permanently removing all parts of the upload. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--abort_incomplete_multipart_upload)) -- `expiration_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `expiration_in_days` (Number) -- `expired_object_delete_marker` (Boolean) -- `id` (String) -- `noncurrent_version_expiration` (Attributes) Container for the expiration rule that describes when noncurrent objects are expired. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 expire noncurrent object versions at a specific period in the object's lifetime (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_expiration)) -- `noncurrent_version_expiration_in_days` (Number) -- `noncurrent_version_transition` (Attributes) Container for the transition rule that describes when noncurrent objects transition to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class. If your bucket is versioning-enabled (or versioning is suspended), you can set this action to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER_IR, GLACIER, or DEEP_ARCHIVE storage class at a specific period in the object's lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transition)) -- `noncurrent_version_transitions` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transitions)) -- `object_size_greater_than` (String) -- `object_size_less_than` (String) -- `prefix` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--tag_filters)) -- `transition` (Attributes) You must specify at least one of "TransitionDate" and "TransitionInDays" (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transition)) -- `transitions` (Attributes List) (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transitions)) +- `abort_incomplete_multipart_upload` (Attributes) Specifies a lifecycle rule that stops incomplete multipart uploads to an Amazon S3 bucket. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--abort_incomplete_multipart_upload)) +- `expiration_date` (String) Indicates when objects are deleted from Amazon S3 and Amazon S3 Glacier. The date value must be in ISO 8601 format. The time is always midnight UTC. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. +- `expiration_in_days` (Number) Indicates the number of days after creation when objects are deleted from Amazon S3 and Amazon S3 Glacier. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. +- `expired_object_delete_marker` (Boolean) Indicates whether Amazon S3 will remove a delete marker without any noncurrent versions. If set to true, the delete marker will be removed if there are no noncurrent versions. This cannot be specified with ``ExpirationInDays``, ``ExpirationDate``, or ``TagFilters``. +- `id` (String) Unique identifier for the rule. The value can't be longer than 255 characters. +- `noncurrent_version_expiration` (Attributes) Specifies when noncurrent object versions expire. Upon expiration, S3 permanently deletes the noncurrent object versions. You set this lifecycle configuration action on a bucket that has versioning enabled (or suspended) to request that S3 delete noncurrent object versions at a specific period in the object's lifetime. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_expiration)) +- `noncurrent_version_expiration_in_days` (Number) (Deprecated.) For buckets with versioning enabled (or suspended), specifies the time, in days, between when a new version of the object is uploaded to the bucket and when old versions of the object expire. When object versions expire, Amazon S3 permanently deletes them. If you specify a transition and expiration time, the expiration time must be later than the transition time. +- `noncurrent_version_transition` (Attributes) (Deprecated.) For buckets with versioning enabled (or suspended), specifies when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransitions`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transition)) +- `noncurrent_version_transitions` (Attributes List) For buckets with versioning enabled (or suspended), one or more transition rules that specify when non-current objects transition to a specified storage class. If you specify a transition and expiration time, the expiration time must be later than the transition time. If you specify this property, don't specify the ``NoncurrentVersionTransition`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--noncurrent_version_transitions)) +- `object_size_greater_than` (String) Specifies the minimum object size in bytes for this rule to apply to. Objects must be larger than this value in bytes. For more information about size based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*. +- `object_size_less_than` (String) Specifies the maximum object size in bytes for this rule to apply to. Objects must be smaller than this value in bytes. For more information about sized based rules, see [Lifecycle configuration using size-based rules](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html#lc-size-rules) in the *Amazon S3 User Guide*. +- `prefix` (String) Object key prefix that identifies one or more objects to which this rule applies. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `tag_filters` (Attributes List) Tags to use to identify a subset of objects to which the lifecycle rule applies. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--tag_filters)) +- `transition` (Attributes) (Deprecated.) Specifies when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transitions`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transition)) +- `transitions` (Attributes List) One or more transition rules that specify when an object transitions to a specified storage class. If you specify an expiration and transition time, you must use the same time unit for both properties (either in days or by date). The expiration time must also be later than the transition time. If you specify this property, don't specify the ``Transition`` property. (see [below for nested schema](#nestedatt--lifecycle_configuration--rules--transitions)) ### Nested Schema for `lifecycle_configuration.rules.abort_incomplete_multipart_upload` Required: -- `days_after_initiation` (Number) Specifies the number of days after which Amazon S3 aborts an incomplete multipart upload. +- `days_after_initiation` (Number) Specifies the number of days after which Amazon S3 stops an incomplete multipart upload. @@ -326,11 +356,11 @@ Required: Required: -- `noncurrent_days` (Number) Specified the number of days an object is noncurrent before Amazon S3 can perform the associated action +- `noncurrent_days` (Number) Specifies the number of days an object is noncurrent before S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates When an Object Became Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. Optional: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. @@ -339,11 +369,11 @@ Optional: Required: - `storage_class` (String) The class of storage used to store the object. -- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. +- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. Optional: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. @@ -352,11 +382,11 @@ Optional: Required: - `storage_class` (String) The class of storage used to store the object. -- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. +- `transition_in_days` (Number) Specifies the number of days an object is noncurrent before Amazon S3 can perform the associated action. For information about the noncurrent days calculations, see [How Amazon S3 Calculates How Long an Object Has Been Noncurrent](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations) in the *Amazon S3 User Guide*. Optional: -- `newer_noncurrent_versions` (Number) Specified the number of newer noncurrent and current versions that must exists before performing the associated action +- `newer_noncurrent_versions` (Number) Specifies how many noncurrent versions S3 will retain. If there are this many more recent noncurrent versions, S3 will take the associated action. For more information about noncurrent versions, see [Lifecycle configuration elements](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) in the *Amazon S3 User Guide*. @@ -364,8 +394,8 @@ Optional: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -373,12 +403,12 @@ Required: Required: -- `storage_class` (String) +- `storage_class` (String) The storage class to which you want the object to transition. Optional: -- `transition_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `transition_in_days` (Number) +- `transition_date` (String) Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC. +- `transition_in_days` (Number) Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. @@ -386,12 +416,12 @@ Optional: Required: -- `storage_class` (String) +- `storage_class` (String) The storage class to which you want the object to transition. Optional: -- `transition_date` (String) The date value in ISO 8601 format. The timezone is always UTC. (YYYY-MM-DDThh:mm:ssZ) -- `transition_in_days` (Number) +- `transition_date` (String) Indicates when objects are transitioned to the specified storage class. The date value must be in ISO 8601 format. The time is always midnight UTC. +- `transition_in_days` (Number) Indicates the number of days after creation when objects are transitioned to the specified storage class. The value must be a positive integer. @@ -401,16 +431,18 @@ Optional: Optional: -- `destination_bucket_name` (String) The name of an Amazon S3 bucket where Amazon S3 store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the LoggingConfiguration property is defined. -- `log_file_prefix` (String) -- `target_object_key_format` (Attributes) Describes the key format for server access log file in the target bucket. You can choose between SimplePrefix and PartitionedPrefix. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format)) +- `destination_bucket_name` (String) The name of the bucket where Amazon S3 should store server access log files. You can store log files in any bucket that you own. By default, logs are stored in the bucket where the ``LoggingConfiguration`` property is defined. +- `log_file_prefix` (String) A prefix for all log object keys. If you store log files from multiple Amazon S3 buckets in a single bucket, you can use a prefix to distinguish which log files came from which bucket. +- `target_object_key_format` (Attributes) Amazon S3 key format for log objects. Only one format, either PartitionedPrefix or SimplePrefix, is allowed. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format)) ### Nested Schema for `logging_configuration.target_object_key_format` Optional: -- `partitioned_prefix` (Attributes) This format appends a time based prefix to the given log file prefix for delivering server access log file. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format--partitioned_prefix)) +- `partitioned_prefix` (Attributes) Amazon S3 keys for log objects are partitioned in the following format: + ``[DestinationPrefix][SourceAccountId]/[SourceRegion]/[SourceBucket]/[YYYY]/[MM]/[DD]/[YYYY]-[MM]-[DD]-[hh]-[mm]-[ss]-[UniqueString]`` + PartitionedPrefix defaults to EventTime delivery when server access logs are delivered. (see [below for nested schema](#nestedatt--logging_configuration--target_object_key_format--partitioned_prefix)) - `simple_prefix` (String) This format defaults the prefix to the given log file prefix for delivering server access log file. @@ -418,7 +450,7 @@ Optional: Optional: -- `partition_date_source` (String) Date Source for creating a partitioned prefix. This can be event time or delivery time. +- `partition_date_source` (String) Specifies the partition date source for the partitioned prefix. PartitionDateSource can be EventTime or DeliveryTime. @@ -428,21 +460,21 @@ Optional: Required: -- `id` (String) +- `id` (String) The ID used to identify the metrics configuration. This can be any value you choose that helps you identify your metrics configuration. Optional: -- `access_point_arn` (String) -- `prefix` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--metrics_configurations--tag_filters)) +- `access_point_arn` (String) The access point that was used while performing operations on the object. The metrics configuration only includes objects that meet the filter's criteria. +- `prefix` (String) The prefix that an object must have to be included in the metrics results. +- `tag_filters` (Attributes List) Specifies a list of tag filters to use as a metrics configuration filter. The metrics configuration includes only objects that meet the filter's criteria. (see [below for nested schema](#nestedatt--metrics_configurations--tag_filters)) ### Nested Schema for `metrics_configurations.tag_filters` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -451,17 +483,17 @@ Required: Optional: -- `event_bridge_configuration` (Attributes) Describes the Amazon EventBridge notification configuration for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--notification_configuration--event_bridge_configuration)) -- `lambda_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations)) -- `queue_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations)) -- `topic_configurations` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations)) +- `event_bridge_configuration` (Attributes) Enables delivery of events to Amazon EventBridge. (see [below for nested schema](#nestedatt--notification_configuration--event_bridge_configuration)) +- `lambda_configurations` (Attributes List) Describes the LAMlong functions to invoke and the events for which to invoke them. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations)) +- `queue_configurations` (Attributes List) The Amazon Simple Queue Service queues to publish messages to and the events for which to publish messages. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations)) +- `topic_configurations` (Attributes List) The topic to which notifications are sent and the events for which notifications are generated. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations)) ### Nested Schema for `notification_configuration.event_bridge_configuration` Optional: -- `event_bridge_enabled` (Boolean) Specifies whether to send notifications to Amazon EventBridge when events occur in an Amazon S3 bucket. +- `event_bridge_enabled` (Boolean) Enables delivery of events to Amazon EventBridge. @@ -469,12 +501,12 @@ Optional: Required: -- `event` (String) The Amazon S3 bucket event for which to invoke the AWS Lambda function. -- `function` (String) The Amazon Resource Name (ARN) of the AWS Lambda function that Amazon S3 invokes when the specified event type occurs. +- `event` (String) The Amazon S3 bucket event for which to invoke the LAMlong function. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `function` (String) The Amazon Resource Name (ARN) of the LAMlong function that Amazon S3 invokes when the specified event type occurs. Optional: -- `filter` (Attributes) The filtering rules that determine which objects invoke the AWS Lambda function. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter)) +- `filter` (Attributes) The filtering rules that determine which objects invoke the AWS Lambda function. For example, you can create a filter so that only image files with a ``.jpg`` extension invoke the function when they are added to the Amazon S3 bucket. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter)) ### Nested Schema for `notification_configuration.lambda_configurations.filter` @@ -488,15 +520,15 @@ Required: Required: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--lambda_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.lambda_configurations.filter.s3_key.rules` Required: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -507,12 +539,12 @@ Required: Required: -- `event` (String) The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. -- `queue` (String) The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. +- `event` (String) The Amazon S3 bucket event about which you want to publish messages to Amazon SQS. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `queue` (String) The Amazon Resource Name (ARN) of the Amazon SQS queue to which Amazon S3 publishes a message when it detects events of the specified type. FIFO queues are not allowed when enabling an SQS queue as the event notification destination. Optional: -- `filter` (Attributes) The filtering rules that determine which objects trigger notifications. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter)) +- `filter` (Attributes) The filtering rules that determine which objects trigger notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. For more information, see [Configuring event notifications using object key name filtering](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/notification-how-to-filtering.html) in the *Amazon S3 User Guide*. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter)) ### Nested Schema for `notification_configuration.queue_configurations.filter` @@ -526,15 +558,15 @@ Required: Required: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--queue_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.queue_configurations.filter.s3_key.rules` Required: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -545,12 +577,12 @@ Required: Required: -- `event` (String) The Amazon S3 bucket event about which to send notifications. +- `event` (String) The Amazon S3 bucket event about which to send notifications. For more information, see [Supported Event Types](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. - `topic` (String) The Amazon Resource Name (ARN) of the Amazon SNS topic to which Amazon S3 publishes a message when it detects events of the specified type. Optional: -- `filter` (Attributes) The filtering rules that determine for which objects to send notifications. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter)) +- `filter` (Attributes) The filtering rules that determine for which objects to send notifications. For example, you can create a filter so that Amazon S3 sends notifications only when image files with a ``.jpg`` extension are added to the bucket. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter)) ### Nested Schema for `notification_configuration.topic_configurations.filter` @@ -564,15 +596,15 @@ Required: Required: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter--s3_key--rules)) +- `rules` (Attributes List) A list of containers for the key-value pair that defines the criteria for the filter rule. (see [below for nested schema](#nestedatt--notification_configuration--topic_configurations--filter--s3_key--rules)) ### Nested Schema for `notification_configuration.topic_configurations.filter.s3_key.rules` Required: -- `name` (String) -- `value` (String) +- `name` (String) The object key name prefix or suffix identifying one or more objects to which the filtering rule applies. The maximum length is 1,024 characters. Overlapping prefixes and suffixes are not supported. For more information, see [Configuring Event Notifications](https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) in the *Amazon S3 User Guide*. +- `value` (String) The value that the filter searches for in object key names. @@ -584,24 +616,24 @@ Required: Optional: -- `object_lock_enabled` (String) -- `rule` (Attributes) The Object Lock rule in place for the specified object. (see [below for nested schema](#nestedatt--object_lock_configuration--rule)) +- `object_lock_enabled` (String) Indicates whether this bucket has an Object Lock configuration enabled. Enable ``ObjectLockEnabled`` when you apply ``ObjectLockConfiguration`` to a bucket. +- `rule` (Attributes) Specifies the Object Lock rule for the specified object. Enable this rule when you apply ``ObjectLockConfiguration`` to a bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information, see [ObjectLockRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-objectlockrule.html) and [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html). (see [below for nested schema](#nestedatt--object_lock_configuration--rule)) ### Nested Schema for `object_lock_configuration.rule` Optional: -- `default_retention` (Attributes) The default retention period that you want to apply to new objects placed in the specified bucket. (see [below for nested schema](#nestedatt--object_lock_configuration--rule--default_retention)) +- `default_retention` (Attributes) The default Object Lock retention mode and period that you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, bucket settings require both ``Mode`` and a period of either ``Days`` or ``Years``. You cannot specify ``Days`` and ``Years`` at the same time. For more information about allowable values for mode and period, see [DefaultRetention](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-defaultretention.html). (see [below for nested schema](#nestedatt--object_lock_configuration--rule--default_retention)) ### Nested Schema for `object_lock_configuration.rule.default_retention` Optional: -- `days` (Number) -- `mode` (String) -- `years` (Number) +- `days` (Number) The number of days that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. +- `mode` (String) The default Object Lock retention mode you want to apply to new objects placed in the specified bucket. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. +- `years` (Number) The number of years that you want to specify for the default retention period. If Object Lock is turned on, you must specify ``Mode`` and specify either ``Days`` or ``Years``. @@ -611,7 +643,7 @@ Optional: Required: -- `rules` (Attributes List) (see [below for nested schema](#nestedatt--ownership_controls--rules)) +- `rules` (Attributes List) Specifies the container element for Object Ownership rules. (see [below for nested schema](#nestedatt--ownership_controls--rules)) ### Nested Schema for `ownership_controls.rules` @@ -627,16 +659,18 @@ Optional: Optional: -- `block_public_acls` (Boolean) Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to TRUE causes the following behavior: -- PUT Bucket acl and PUT Object acl calls fail if the specified ACL is public. - - PUT Object calls fail if the request includes a public ACL. -Enabling this setting doesn't affect existing policies or ACLs. -- `block_public_policy` (Boolean) Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to TRUE causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. -Enabling this setting doesn't affect existing bucket policies. -- `ignore_public_acls` (Boolean) Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to TRUE causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. -Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. -- `restrict_public_buckets` (Boolean) Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to TRUE restricts access to this bucket to only AWS services and authorized users within this account if the bucket has a public policy. -Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. +- `block_public_acls` (Boolean) Specifies whether Amazon S3 should block public access control lists (ACLs) for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes the following behavior: + + PUT Bucket ACL and PUT Object ACL calls fail if the specified ACL is public. + + PUT Object calls fail if the request includes a public ACL. + + PUT Bucket calls fail if the request includes a public ACL. + + Enabling this setting doesn't affect existing policies or ACLs. +- `block_public_policy` (Boolean) Specifies whether Amazon S3 should block public bucket policies for this bucket. Setting this element to ``TRUE`` causes Amazon S3 to reject calls to PUT Bucket policy if the specified bucket policy allows public access. + Enabling this setting doesn't affect existing bucket policies. +- `ignore_public_acls` (Boolean) Specifies whether Amazon S3 should ignore public ACLs for this bucket and objects in this bucket. Setting this element to ``TRUE`` causes Amazon S3 to ignore all public ACLs on this bucket and objects in this bucket. + Enabling this setting doesn't affect the persistence of any existing ACLs and doesn't prevent new public ACLs from being set. +- `restrict_public_buckets` (Boolean) Specifies whether Amazon S3 should restrict public bucket policies for this bucket. Setting this element to ``TRUE`` restricts access to this bucket to only AWS-service principals and authorized users within this account if the bucket has a public policy. + Enabling this setting doesn't affect previously stored bucket policies, except that public and cross-account access within any public bucket policy, including non-public delegation to specific accounts, is blocked. @@ -644,48 +678,55 @@ Enabling this setting doesn't affect previously stored bucket policies, except t Required: -- `role` (String) The Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role that Amazon S3 assumes when replicating objects. -- `rules` (Attributes List) A container for one or more replication rules. (see [below for nested schema](#nestedatt--replication_configuration--rules)) +- `role` (String) The Amazon Resource Name (ARN) of the IAMlong (IAM) role that Amazon S3 assumes when replicating objects. For more information, see [How to Set Up Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-how-setup.html) in the *Amazon S3 User Guide*. +- `rules` (Attributes List) A container for one or more replication rules. A replication configuration must have at least one rule and can contain a maximum of 1,000 rules. (see [below for nested schema](#nestedatt--replication_configuration--rules)) ### Nested Schema for `replication_configuration.rules` Required: -- `destination` (Attributes) Specifies which Amazon S3 bucket to store replicated objects in and their storage class. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination)) +- `destination` (Attributes) A container for information about the replication destination and its configurations including enabling the S3 Replication Time Control (S3 RTC). (see [below for nested schema](#nestedatt--replication_configuration--rules--destination)) - `status` (String) Specifies whether the rule is enabled. Optional: -- `delete_marker_replication` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--delete_marker_replication)) -- `filter` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter)) -- `id` (String) A unique identifier for the rule. -- `prefix` (String) An object key name prefix that identifies the object or objects to which the rule applies. -- `priority` (Number) -- `source_selection_criteria` (Attributes) A container that describes additional filters for identifying the source objects that you want to replicate. (see [below for nested schema](#nestedatt--replication_configuration--rules--source_selection_criteria)) +- `delete_marker_replication` (Attributes) Specifies whether Amazon S3 replicates delete markers. If you specify a ``Filter`` in your replication configuration, you must also include a ``DeleteMarkerReplication`` element. If your ``Filter`` includes a ``Tag`` element, the ``DeleteMarkerReplication`` ``Status`` must be set to Disabled, because Amazon S3 does not support replicating delete markers for tag-based rules. For an example configuration, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config). + For more information about delete marker replication, see [Basic Rule Configuration](https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html). + If you are using an earlier version of the replication configuration, Amazon S3 handles replication of delete markers differently. For more information, see [Backward Compatibility](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations). (see [below for nested schema](#nestedatt--replication_configuration--rules--delete_marker_replication)) +- `filter` (Attributes) A filter that identifies the subset of objects to which the replication rule applies. A ``Filter`` must specify exactly one ``Prefix``, ``TagFilter``, or an ``And`` child element. The use of the filter field indicates that this is a V2 replication configuration. This field isn't supported in a V1 replication configuration. + V1 replication configuration only supports filtering by key prefix. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter)) +- `id` (String) A unique identifier for the rule. The maximum value is 255 characters. If you don't specify a value, AWS CloudFormation generates a random ID. When using a V2 replication configuration this property is capitalized as "ID". +- `prefix` (String) An object key name prefix that identifies the object or objects to which the rule applies. The maximum prefix length is 1,024 characters. To include all objects in a bucket, specify an empty string. To filter using a V1 replication configuration, add the ``Prefix`` directly as a child element of the ``Rule`` element. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `priority` (Number) The priority indicates which rule has precedence whenever two or more replication rules conflict. Amazon S3 will attempt to replicate objects according to all replication rules. However, if there are two or more rules with the same destination bucket, then objects will be replicated according to the rule with the highest priority. The higher the number, the higher the priority. + For more information, see [Replication](https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in the *Amazon S3 User Guide*. +- `source_selection_criteria` (Attributes) A container that describes additional filters for identifying the source objects that you want to replicate. You can choose to enable or disable the replication of these objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--source_selection_criteria)) ### Nested Schema for `replication_configuration.rules.destination` Required: -- `bucket` (String) +- `bucket` (String) The Amazon Resource Name (ARN) of the bucket where you want Amazon S3 to store the results. Optional: -- `access_control_translation` (Attributes) Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS account that owns the source object. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--access_control_translation)) -- `account` (String) -- `encryption_configuration` (Attributes) Specifies encryption-related information for an Amazon S3 bucket that is a destination for replicated objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--encryption_configuration)) -- `metrics` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--metrics)) -- `replication_time` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--replication_time)) -- `storage_class` (String) The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. +- `access_control_translation` (Attributes) Specify this only in a cross-account scenario (where source and destination bucket owners are not the same), and you want to change replica ownership to the AWS-account that owns the destination bucket. If this is not specified in the replication configuration, the replicas are owned by same AWS-account that owns the source object. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--access_control_translation)) +- `account` (String) Destination bucket owner account ID. In a cross-account scenario, if you direct Amazon S3 to change replica ownership to the AWS-account that owns the destination bucket by specifying the ``AccessControlTranslation`` property, this is the account ID of the destination bucket owner. For more information, see [Cross-Region Replication Additional Configuration: Change Replica Owner](https://docs.aws.amazon.com/AmazonS3/latest/dev/crr-change-owner.html) in the *Amazon S3 User Guide*. + If you specify the ``AccessControlTranslation`` property, the ``Account`` property is required. +- `encryption_configuration` (Attributes) Specifies encryption-related information. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--encryption_configuration)) +- `metrics` (Attributes) A container specifying replication metrics-related settings enabling replication metrics and events. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--metrics)) +- `replication_time` (Attributes) A container specifying S3 Replication Time Control (S3 RTC), including whether S3 RTC is enabled and the time when all objects and operations on objects must be replicated. Must be specified together with a ``Metrics`` block. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--replication_time)) +- `storage_class` (String) The storage class to use when replicating objects, such as S3 Standard or reduced redundancy. By default, Amazon S3 uses the storage class of the source object to create the object replica. + For valid values, see the ``StorageClass`` element of the [PUT Bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) action in the *Amazon S3 API Reference*. ### Nested Schema for `replication_configuration.rules.destination.storage_class` Required: -- `owner` (String) +- `owner` (String) Specifies the replica ownership. For default and valid values, see [PUT bucket replication](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html) in the *Amazon S3 API Reference*. @@ -693,7 +734,7 @@ Required: Required: -- `replica_kms_key_id` (String) Specifies the ID (Key ARN or Alias ARN) of the customer managed customer master key (CMK) stored in AWS Key Management Service (KMS) for the destination bucket. +- `replica_kms_key_id` (String) Specifies the ID (Key ARN or Alias ARN) of the customer managed AWS KMS key stored in AWS Key Management Service (KMS) for the destination bucket. Amazon S3 uses this key to encrypt replica objects. Amazon S3 only supports symmetric encryption KMS keys. For more information, see [Asymmetric keys in KMS](https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html) in the *Key Management Service Developer Guide*. @@ -701,18 +742,19 @@ Required: Required: -- `status` (String) +- `status` (String) Specifies whether the replication metrics are enabled. Optional: -- `event_threshold` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--event_threshold)) +- `event_threshold` (Attributes) A container specifying the time threshold for emitting the ``s3:Replication:OperationMissedThreshold`` event. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--event_threshold)) ### Nested Schema for `replication_configuration.rules.destination.storage_class.event_threshold` Required: -- `minutes` (Number) +- `minutes` (Number) Contains an integer specifying time in minutes. + Valid value: 15 @@ -721,15 +763,16 @@ Required: Required: -- `status` (String) -- `time` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--time)) +- `status` (String) Specifies whether the replication time is enabled. +- `time` (Attributes) A container specifying the time by which replication should be complete for all objects and operations on objects. (see [below for nested schema](#nestedatt--replication_configuration--rules--destination--storage_class--time)) ### Nested Schema for `replication_configuration.rules.destination.storage_class.time` Required: -- `minutes` (Number) +- `minutes` (Number) Contains an integer specifying time in minutes. + Valid value: 15 @@ -739,7 +782,7 @@ Required: Optional: -- `status` (String) +- `status` (String) Indicates whether to replicate delete markers. Disabled by default. @@ -747,25 +790,29 @@ Optional: Optional: -- `and` (Attributes) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--and)) -- `prefix` (String) -- `tag_filter` (Attributes) Tags to use to identify a subset of objects for an Amazon S3 bucket. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter)) +- `and` (Attributes) A container for specifying rule filters. The filters determine the subset of objects to which the rule applies. This element is required only if you specify more than one filter. For example: + + If you specify both a ``Prefix`` and a ``TagFilter``, wrap these filters in an ``And`` tag. + + If you specify a filter based on multiple tags, wrap the ``TagFilter`` elements in an ``And`` tag. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--and)) +- `prefix` (String) An object key name prefix that identifies the subset of objects to which the rule applies. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `tag_filter` (Attributes) A container for specifying a tag key and value. + The rule applies only to objects that have the tag in their tag set. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter)) ### Nested Schema for `replication_configuration.rules.filter.tag_filter` Optional: -- `prefix` (String) -- `tag_filters` (Attributes List) (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter--tag_filters)) +- `prefix` (String) An object key name prefix that identifies the subset of objects to which the rule applies. +- `tag_filters` (Attributes List) An array of tags containing key and value pairs. (see [below for nested schema](#nestedatt--replication_configuration--rules--filter--tag_filter--tag_filters)) ### Nested Schema for `replication_configuration.rules.filter.tag_filter.tag_filters` Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -774,8 +821,8 @@ Required: Required: -- `key` (String) -- `value` (String) +- `key` (String) The tag key. +- `value` (String) The tag value. @@ -793,6 +840,7 @@ Optional: Required: - `status` (String) Specifies whether Amazon S3 replicates modifications on replicas. + *Allowed values*: ``Enabled`` | ``Disabled`` @@ -800,7 +848,7 @@ Required: Required: -- `status` (String) Specifies whether Amazon S3 replicates objects created with server-side encryption using a customer master key (CMK) stored in AWS Key Management Service. +- `status` (String) Specifies whether Amazon S3 replicates objects created with server-side encryption using an AWS KMS key stored in AWS Key Management Service. @@ -811,8 +859,8 @@ Required: Required: -- `key` (String) -- `value` (String) +- `key` (String) Name of the object key. +- `value` (String) Value of the tag. @@ -830,8 +878,9 @@ Optional: - `error_document` (String) The name of the error document for the website. - `index_document` (String) The name of the index document for the website. -- `redirect_all_requests_to` (Attributes) Specifies the redirect behavior of all requests to a website endpoint of an Amazon S3 bucket. (see [below for nested schema](#nestedatt--website_configuration--redirect_all_requests_to)) -- `routing_rules` (Attributes List) (see [below for nested schema](#nestedatt--website_configuration--routing_rules)) +- `redirect_all_requests_to` (Attributes) The redirect behavior for every request to this bucket's website endpoint. + If you specify this property, you can't specify any other property. (see [below for nested schema](#nestedatt--website_configuration--redirect_all_requests_to)) +- `routing_rules` (Attributes List) Rules that define when a redirect is applied and the redirect behavior. (see [below for nested schema](#nestedatt--website_configuration--routing_rules)) ### Nested Schema for `website_configuration.redirect_all_requests_to` @@ -854,7 +903,7 @@ Required: Optional: -- `routing_rule_condition` (Attributes) A container for describing a condition that must be met for the specified redirect to apply.You must specify at least one of HttpErrorCodeReturnedEquals and KeyPrefixEquals (see [below for nested schema](#nestedatt--website_configuration--routing_rules--routing_rule_condition)) +- `routing_rule_condition` (Attributes) A container for describing a condition that must be met for the specified redirect to apply. For example, 1. If request is for pages in the ``/docs`` folder, redirect to the ``/documents`` folder. 2. If request results in HTTP error 4xx, redirect request to another host where you might process the error. (see [below for nested schema](#nestedatt--website_configuration--routing_rules--routing_rule_condition)) ### Nested Schema for `website_configuration.routing_rules.redirect_rule` @@ -864,8 +913,10 @@ Optional: - `host_name` (String) The host name to use in the redirect request. - `http_redirect_code` (String) The HTTP redirect code to use on the response. Not required if one of the siblings is present. - `protocol` (String) Protocol to use when redirecting requests. The default is the protocol that is used in the original request. -- `replace_key_prefix_with` (String) The object key prefix to use in the redirect request. -- `replace_key_with` (String) The specific object key to use in the redirect request.d +- `replace_key_prefix_with` (String) The object key prefix to use in the redirect request. For example, to redirect requests for all pages with prefix ``docs/`` (objects in the ``docs/`` folder) to ``documents/``, you can set a condition block with ``KeyPrefixEquals`` set to ``docs/`` and in the Redirect set ``ReplaceKeyPrefixWith`` to ``/documents``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyWith`` is not provided. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). +- `replace_key_with` (String) The specific object key to use in the redirect request. For example, redirect request to ``error.html``. Not required if one of the siblings is present. Can be present only if ``ReplaceKeyPrefixWith`` is not provided. + Replacement must be made for object keys containing special characters (such as carriage returns) when using XML requests. For more information, see [XML related object key constraints](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints). @@ -873,8 +924,10 @@ Optional: Optional: -- `http_error_code_returned_equals` (String) The HTTP error code when the redirect is applied. -- `key_prefix_equals` (String) The object key name prefix when the redirect is applied. +- `http_error_code_returned_equals` (String) The HTTP error code when the redirect is applied. In the event of an error, if the error code equals this value, then the specified redirect is applied. + Required when parent element ``Condition`` is specified and sibling ``KeyPrefixEquals`` is not specified. If both are specified, then both must be true for the redirect to be applied. +- `key_prefix_equals` (String) The object key name prefix when the redirect is applied. For example, to redirect requests for ``ExamplePage.html``, the key prefix will be ``ExamplePage.html``. To redirect request for all pages with the prefix ``docs/``, the key prefix will be ``/docs``, which identifies all objects in the docs/ folder. + Required when the parent element ``Condition`` is specified and sibling ``HttpErrorCodeReturnedEquals`` is not specified. If both conditions are specified, both must be true for the redirect to be applied. ## Import diff --git a/docs/resources/s3_bucket_policy.md b/docs/resources/s3_bucket_policy.md index 0cba64e3e4..67990aeeb3 100644 --- a/docs/resources/s3_bucket_policy.md +++ b/docs/resources/s3_bucket_policy.md @@ -2,12 +2,22 @@ page_title: "awscc_s3_bucket_policy Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::S3::BucketPolicy + Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the PutBucketPolicy permissions on the specified bucket and belong to the bucket owner's account in order to use this operation. + If you don't have PutBucketPolicy permissions, Amazon S3 returns a 403 Access Denied error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a 405 Method Not Allowed error. + As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. + For more information, see Bucket policy examples https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html. + The following operations are related to PutBucketPolicy: + + [Create --- # awscc_s3_bucket_policy (Resource) -Resource Type definition for AWS::S3::BucketPolicy +Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are using an identity other than the root user of the AWS-account that owns the bucket, the calling identity must have the ``PutBucketPolicy`` permissions on the specified bucket and belong to the bucket owner's account in order to use this operation. + If you don't have ``PutBucketPolicy`` permissions, Amazon S3 returns a ``403 Access Denied`` error. If you have the correct permissions, but you're not using an identity that belongs to the bucket owner's account, Amazon S3 returns a ``405 Method Not Allowed`` error. + As a security precaution, the root user of the AWS-account that owns a bucket can always use this operation, even if the policy explicitly denies the root user the ability to perform this action. + For more information, see [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html). + The following operations are related to ``PutBucketPolicy``: + + [Create ## Example Usage @@ -77,7 +87,7 @@ resource "awscc_s3_bucket" "example" { ### Required - `bucket` (String) The name of the Amazon S3 bucket to which the policy applies. -- `policy_document` (String) A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. +- `policy_document` (String) A policy document containing permissions to add to the specified bucket. In IAM, you must provide policy documents in JSON format. However, in CloudFormation you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to IAM. For more information, see the AWS::IAM::Policy [PolicyDocument](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html#cfn-iam-policy-policydocument) resource description in this guide and [Access Policy Language Overview](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-policy-language-overview.html) in the *Amazon S3 User Guide*. ### Read-Only diff --git a/docs/resources/sagemaker_feature_group.md b/docs/resources/sagemaker_feature_group.md index a4700232c0..744b2b7f5c 100644 --- a/docs/resources/sagemaker_feature_group.md +++ b/docs/resources/sagemaker_feature_group.md @@ -90,6 +90,7 @@ Optional: - `enable_online_store` (Boolean) - `security_config` (Attributes) (see [below for nested schema](#nestedatt--online_store_config--security_config)) - `storage_type` (String) +- `ttl_duration` (Attributes) TTL configuration of the feature group (see [below for nested schema](#nestedatt--online_store_config--ttl_duration)) ### Nested Schema for `online_store_config.security_config` @@ -99,6 +100,15 @@ Optional: - `kms_key_id` (String) + +### Nested Schema for `online_store_config.ttl_duration` + +Optional: + +- `unit` (String) Unit of ttl configuration +- `value` (Number) Value of ttl configuration + + ### Nested Schema for `tags` diff --git a/docs/resources/secretsmanager_secret.md b/docs/resources/secretsmanager_secret.md index 39148e8b99..30adae71cd 100644 --- a/docs/resources/secretsmanager_secret.md +++ b/docs/resources/secretsmanager_secret.md @@ -2,12 +2,20 @@ page_title: "awscc_secretsmanager_secret Resource - terraform-provider-awscc" subcategory: "" description: |- - Resource Type definition for AWS::SecretsManager::Secret + Creates a new secret. A secret can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. + For RDS master user credentials, see AWS::RDS::DBCluster MasterUserSecret https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html. + To retrieve a secret in a CFNshort template, use a dynamic reference. For more information, see Retrieve a secret in an resource https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html. + A common scenario is to first create a secret with GenerateSecretString, which generates a password, and then use a dynamic reference to retrieve the username and password from the secret to use as credentials for a new database. See the example Creating a Redshift cluster and a secret for the admin credentials. + For information about creating a secret in the c --- # awscc_secretsmanager_secret (Resource) -Resource Type definition for AWS::SecretsManager::Secret +Creates a new secret. A *secret* can be a password, a set of credentials such as a user name and password, an OAuth token, or other secret information that you store in an encrypted form in Secrets Manager. + For RDS master user credentials, see [AWS::RDS::DBCluster MasterUserSecret](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-dbcluster-masterusersecret.html). + To retrieve a secret in a CFNshort template, use a *dynamic reference*. For more information, see [Retrieve a secret in an resource](https://docs.aws.amazon.com/secretsmanager/latest/userguide/cfn-example_reference-secret.html). + A common scenario is to first create a secret with ``GenerateSecretString``, which generates a password, and then use a dynamic reference to retrieve the username and password from the secret to use as credentials for a new database. See the example *Creating a Redshift cluster and a secret for the admin credentials*. + For information about creating a secret in the c ## Example Usage @@ -42,33 +50,43 @@ resource "awscc_secretsmanager_secret" "example_replica" { ### Optional -- `description` (String) (Optional) Specifies a user-provided description of the secret. -- `generate_secret_string` (Attributes) (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. (see [below for nested schema](#nestedatt--generate_secret_string)) -- `kms_key_id` (String) (Optional) Specifies the ARN, Key ID, or alias of the AWS KMS customer master key (CMK) used to encrypt the SecretString. -- `name` (String) The friendly name of the secret. You can use forward slashes in the name to represent a path hierarchy. -- `replica_regions` (Attributes List) (Optional) A list of ReplicaRegion objects. The ReplicaRegion type consists of a Region (required) and the KmsKeyId which can be an ARN, Key ID, or Alias. (see [below for nested schema](#nestedatt--replica_regions)) -- `secret_string` (String) (Optional) Specifies text data that you want to encrypt and store in this new version of the secret. -- `tags` (Attributes List) The list of user-defined tags associated with the secret. Use tags to manage your AWS resources. For additional information about tags, see TagResource. (see [below for nested schema](#nestedatt--tags)) +- `description` (String) The description of the secret. +- `generate_secret_string` (Attributes) A structure that specifies how to generate a password to encrypt and store in the secret. To include a specific string in the secret, use ``SecretString`` instead. If you omit both ``GenerateSecretString`` and ``SecretString``, you create an empty secret. When you make a change to this property, a new secret version is created. + We recommend that you specify the maximum length and include every character type that the system you are generating a password for can support. (see [below for nested schema](#nestedatt--generate_secret_string)) +- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key that Secrets Manager uses to encrypt the secret value in the secret. An alias is always prefixed by ``alias/``, for example ``alias/aws/secretsmanager``. For more information, see [About aliases](https://docs.aws.amazon.com/kms/latest/developerguide/alias-about.html). + To use a KMS key in a different account, use the key ARN or the alias ARN. + If you don't specify this value, then Secrets Manager uses the key ``aws/secretsmanager``. If that key doesn't yet exist, then Secrets Manager creates it for you automatically the first time it encrypts the secret value. + If the secret is in a different AWS account from the credentials calling the API, then you can't use ``aws/secretsmanager`` to encrypt the secret, and you must create and use a customer managed KMS key. +- `name` (String) The name of the new secret. + The secret name can contain ASCII letters, numbers, and the following characters: /_+=.@- + Do not end your secret name with a hyphen followed by six characters. If you do so, you risk confusion and unexpected results when searching for a secret by partial ARN. Secrets Manager automatically adds a hyphen and six random characters after the secret name at the end of the ARN. +- `replica_regions` (Attributes List) A custom type that specifies a ``Region`` and the ``KmsKeyId`` for a replica secret. (see [below for nested schema](#nestedatt--replica_regions)) +- `secret_string` (String) The text to encrypt and store in the secret. We recommend you use a JSON structure of key/value pairs for your secret value. To generate a random password, use ``GenerateSecretString`` instead. If you omit both ``GenerateSecretString`` and ``SecretString``, you create an empty secret. When you make a change to this property, a new secret version is created. +- `tags` (Attributes List) A list of tags to attach to the secret. Each tag is a key and value pair of strings in a JSON text string, for example: + ``[{"Key":"CostCenter","Value":"12345"},{"Key":"environment","Value":"production"}]`` + Secrets Manager tag key names are case sensitive. A tag with the key "ABC" is a different tag from one with key "abc". + Stack-level tags, tags you apply to the CloudFormation stack, are also attached to the secret. + If you check tags in permissions policies as part of your security strategy, then adding or removing a tag can change permissions. If the completion of this operation would result in you losing your permissions for this secret, then Secrets Manager blocks the operation and returns an ``Access Denied`` error. For more information, see [Control access to secrets using tags](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#tag-secrets-abac) and [Limit access to identities with tags that match secrets' tags](https://docs.aws.amazo (see [below for nested schema](#nestedatt--tags)) ### Read-Only -- `id` (String) secret Id, the Arn of the resource. +- `id` (String) The ID of this resource. ### Nested Schema for `generate_secret_string` Optional: -- `exclude_characters` (String) A string that excludes characters in the generated password. By default, all characters from the included sets can be used. The string can be a minimum length of 0 characters and a maximum length of 7168 characters. -- `exclude_lowercase` (Boolean) Specifies the generated password should not include lowercase letters. By default, ecrets Manager disables this parameter, and the generated password can include lowercase False, and the generated password can include lowercase letters. -- `exclude_numbers` (Boolean) Specifies that the generated password should exclude digits. By default, Secrets Manager does not enable the parameter, False, and the generated password can include digits. -- `exclude_punctuation` (Boolean) Specifies that the generated password should not include punctuation characters. The default if you do not include this switch parameter is that punctuation characters can be included. -- `exclude_uppercase` (Boolean) Specifies that the generated password should not include uppercase letters. The default behavior is False, and the generated password can include uppercase letters. -- `generate_string_key` (String) The JSON key name used to add the generated password to the JSON structure specified by the SecretStringTemplate parameter. If you specify this parameter, then you must also specify SecretStringTemplate. -- `include_space` (Boolean) Specifies that the generated password can include the space character. By default, Secrets Manager disables this parameter, and the generated password doesn't include space -- `password_length` (Number) The desired length of the generated password. The default value if you do not include this parameter is 32 characters. -- `require_each_included_type` (Boolean) Specifies whether the generated password must include at least one of every allowed character type. By default, Secrets Manager enables this parameter, and the generated password includes at least one of every character type. -- `secret_string_template` (String) A properly structured JSON string that the generated password can be added to. If you specify this parameter, then you must also specify GenerateStringKey. +- `exclude_characters` (String) A string of the characters that you don't want in the password. +- `exclude_lowercase` (Boolean) Specifies whether to exclude lowercase letters from the password. If you don't include this switch, the password can contain lowercase letters. +- `exclude_numbers` (Boolean) Specifies whether to exclude numbers from the password. If you don't include this switch, the password can contain numbers. +- `exclude_punctuation` (Boolean) Specifies whether to exclude the following punctuation characters from the password: ``! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~``. If you don't include this switch, the password can contain punctuation. +- `exclude_uppercase` (Boolean) Specifies whether to exclude uppercase letters from the password. If you don't include this switch, the password can contain uppercase letters. +- `generate_string_key` (String) The JSON key name for the key/value pair, where the value is the generated password. This pair is added to the JSON structure specified by the ``SecretStringTemplate`` parameter. If you specify this parameter, then you must also specify ``SecretStringTemplate``. +- `include_space` (Boolean) Specifies whether to include the space character. If you include this switch, the password can contain space characters. +- `password_length` (Number) The length of the password. If you don't include this parameter, the default length is 32 characters. +- `require_each_included_type` (Boolean) Specifies whether to include at least one upper and lowercase letter, one number, and one punctuation. If you don't include this switch, the password contains at least one of every character type. +- `secret_string_template` (String) A template that the generated string must match. When you make a change to this property, a new secret version is created. @@ -76,11 +94,11 @@ Optional: Required: -- `region` (String) (Optional) A string that represents a Region, for example "us-east-1". +- `region` (String) A string that represents a ``Region``, for example "us-east-1". Optional: -- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses aws/secretsmanager. +- `kms_key_id` (String) The ARN, key ID, or alias of the KMS key to encrypt the secret. If you don't include this field, Secrets Manager uses ``aws/secretsmanager``. @@ -88,8 +106,8 @@ Optional: Required: -- `key` (String) The value for the tag. You can specify a value that's 1 to 256 characters in length. -- `value` (String) The key name of the tag. You can specify a value that's 1 to 128 Unicode characters in length and can't be prefixed with aws. +- `key` (String) The key identifier, or name, of the tag. +- `value` (String) The string value associated with the key of the tag. ## Import diff --git a/docs/resources/securityhub_standard.md b/docs/resources/securityhub_standard.md index 7549e77d4a..e28e9e1ded 100644 --- a/docs/resources/securityhub_standard.md +++ b/docs/resources/securityhub_standard.md @@ -2,12 +2,16 @@ page_title: "awscc_securityhub_standard Resource - terraform-provider-awscc" subcategory: "" description: |- - The AWS::SecurityHub::Standard resource represents the implementation of an individual AWS Security Hub Standard in your account. It requires you have SecurityHub enabled before you can enable the Standard. + The AWS::SecurityHub::Standard resource specifies the enablement of a security standard. The standard is identified by the StandardsArn property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the DescribeStandards https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html API operation. + You must create a separate AWS::SecurityHub::Standard resource for each standard that you want to enable. + For more information about ASH standards, see standards reference https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html in the User Guide. --- # awscc_securityhub_standard (Resource) -The AWS::SecurityHub::Standard resource represents the implementation of an individual AWS Security Hub Standard in your account. It requires you have SecurityHub enabled before you can enable the Standard. +The ``AWS::SecurityHub::Standard`` resource specifies the enablement of a security standard. The standard is identified by the ``StandardsArn`` property. To view a list of ASH standards and their Amazon Resource Names (ARNs), use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation. + You must create a separate ``AWS::SecurityHub::Standard`` resource for each standard that you want to enable. + For more information about ASH standards, see [standards reference](https://docs.aws.amazon.com/securityhub/latest/userguide/standards-reference.html) in the *User Guide*. ## Example Usage @@ -122,27 +126,28 @@ resource "awscc_securityhub_standard" "nist" { ### Required -- `standards_arn` (String) The ARN of the Standard being enabled +- `standards_arn` (String) The ARN of the standard that you want to enable. To view a list of available ASH standards and their ARNs, use the [DescribeStandards](https://docs.aws.amazon.com/securityhub/1.0/APIReference/API_DescribeStandards.html) API operation. ### Optional -- `disabled_standards_controls` (Attributes List) StandardsControls to disable from this Standard. (see [below for nested schema](#nestedatt--disabled_standards_controls)) +- `disabled_standards_controls` (Attributes List) Specifies which controls are to be disabled in a standard. + *Maximum*: ``100`` (see [below for nested schema](#nestedatt--disabled_standards_controls)) ### Read-Only - `id` (String) Uniquely identifies the resource. -- `standards_subscription_arn` (String) The ARN of the StandardsSubscription for the account ID, region, and Standard. +- `standards_subscription_arn` (String) ### Nested Schema for `disabled_standards_controls` Required: -- `standards_control_arn` (String) the Arn for the standard control. +- `standards_control_arn` (String) The Amazon Resource Name (ARN) of the control. Optional: -- `reason` (String) the reason the standard control is disabled +- `reason` (String) A user-defined reason for changing a control's enablement status in a specified standard. If you are disabling a control, then this property is required. ## Import diff --git a/docs/resources/wafv2_logging_configuration.md b/docs/resources/wafv2_logging_configuration.md index ff58bc36c1..7b1d8c71a7 100644 --- a/docs/resources/wafv2_logging_configuration.md +++ b/docs/resources/wafv2_logging_configuration.md @@ -175,34 +175,11 @@ Required: Optional: -- `json_body` (Attributes) Inspect the request body as JSON. The request body immediately follows the request headers. This is the part of a request that contains any additional data that you want to send to your web server as the HTTP request body, such as data from a form. (see [below for nested schema](#nestedatt--redacted_fields--json_body)) - `method` (String) Inspect the HTTP method. The method indicates the type of operation that the request is asking the origin to perform. - `query_string` (String) Inspect the query string. This is the part of a URL that appears after a ? character, if any. - `single_header` (Attributes) Inspect a single header. Provide the name of the header to inspect, for example, User-Agent or Referer. This setting isn't case sensitive. (see [below for nested schema](#nestedatt--redacted_fields--single_header)) - `uri_path` (String) Inspect the request URI path. This is the part of a web request that identifies a resource, for example, /images/daily-ad.jpg. - -### Nested Schema for `redacted_fields.json_body` - -Required: - -- `match_pattern` (Attributes) The patterns to look for in the JSON body. AWS WAF inspects the results of these pattern matches against the rule inspection criteria. (see [below for nested schema](#nestedatt--redacted_fields--json_body--match_pattern)) -- `match_scope` (String) The parts of the JSON to match against using the MatchPattern. If you specify All, AWS WAF matches against keys and values. - -Optional: - -- `invalid_fallback_behavior` (String) What AWS WAF should do if it fails to completely parse the JSON body. - - -### Nested Schema for `redacted_fields.json_body.match_pattern` - -Optional: - -- `all` (String) Match all of the elements. See also MatchScope in JsonBody. You must specify either this setting or the IncludedPaths setting, but not both. -- `included_paths` (List of String) Match only the specified include paths. See also MatchScope in JsonBody. - - - ### Nested Schema for `redacted_fields.single_header` diff --git a/examples/resources/awscc_cognito_user_pool_risk_configuration_attachment/import.sh b/examples/resources/awscc_cognito_user_pool_risk_configuration_attachment/import.sh new file mode 100644 index 0000000000..37eeb4287b --- /dev/null +++ b/examples/resources/awscc_cognito_user_pool_risk_configuration_attachment/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_cognito_user_pool_risk_configuration_attachment.example \ No newline at end of file diff --git a/examples/resources/awscc_ec2_security_group_ingress/import.sh b/examples/resources/awscc_ec2_security_group_ingress/import.sh new file mode 100644 index 0000000000..7ee4cfe6fe --- /dev/null +++ b/examples/resources/awscc_ec2_security_group_ingress/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_security_group_ingress.example \ No newline at end of file diff --git a/examples/resources/awscc_guardduty_master/import.sh b/examples/resources/awscc_guardduty_master/import.sh new file mode 100644 index 0000000000..823ce0d16b --- /dev/null +++ b/examples/resources/awscc_guardduty_master/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_guardduty_master.example \ No newline at end of file diff --git a/examples/resources/awscc_guardduty_member/import.sh b/examples/resources/awscc_guardduty_member/import.sh new file mode 100644 index 0000000000..b14089842a --- /dev/null +++ b/examples/resources/awscc_guardduty_member/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_guardduty_member.example \ No newline at end of file