diff --git a/CHANGELOG.md b/CHANGELOG.md index 94cf76c260..f276079f07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,23 @@ ## 1.20.0 (Unreleased) + +* **New Data Source:** `awscc_appsync_channel_namespace` +* **New Data Source:** `awscc_bedrock_application_inference_profile` +* **New Data Source:** `awscc_bedrock_application_inference_profiles` +* **New Data Source:** `awscc_ec2_security_group_vpc_association` +* **New Data Source:** `awscc_ec2_security_group_vpc_associations` +* **New Data Source:** `awscc_rds_db_shard_group` +* **New Data Source:** `awscc_rds_db_shard_groups` +* **New Data Source:** `awscc_wisdom_ai_agent` +* **New Data Source:** `awscc_wisdom_ai_agent_version` +* **New Data Source:** `awscc_wisdom_ai_prompt_version` +* **New Resource:** `awscc_appsync_channel_namespace` +* **New Resource:** `awscc_bedrock_application_inference_profile` +* **New Resource:** `awscc_ec2_security_group_vpc_association` +* **New Resource:** `awscc_rds_db_shard_group` +* **New Resource:** `awscc_wisdom_ai_agent` +* **New Resource:** `awscc_wisdom_ai_agent_version` +* **New Resource:** `awscc_wisdom_ai_prompt_version` + ## 1.19.0 (October 31, 2024) FEATURES: diff --git a/docs/data-sources/apigateway_account.md b/docs/data-sources/apigateway_account.md index 77b4ab0d19..bed30302ee 100644 --- a/docs/data-sources/apigateway_account.md +++ b/docs/data-sources/apigateway_account.md @@ -22,4 +22,4 @@ Data Source schema for AWS::ApiGateway::Account ### Read-Only - `account_id` (String) -- `cloudwatch_role_arn` (String) The ARN of an Amazon CloudWatch role for the current Account. +- `cloudwatch_role_arn` (String) diff --git a/docs/data-sources/apigateway_api_key.md b/docs/data-sources/apigateway_api_key.md index ba80a8471e..e0c42a7d0e 100644 --- a/docs/data-sources/apigateway_api_key.md +++ b/docs/data-sources/apigateway_api_key.md @@ -22,23 +22,23 @@ Data Source schema for AWS::ApiGateway::ApiKey ### Read-Only - `api_key_id` (String) -- `customer_id` (String) An MKT customer identifier, when integrating with the AWS SaaS Marketplace. -- `description` (String) The description of the ApiKey. -- `enabled` (Boolean) Specifies whether the ApiKey can be used by callers. -- `generate_distinct_id` (Boolean) Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. +- `customer_id` (String) +- `description` (String) +- `enabled` (Boolean) +- `generate_distinct_id` (Boolean) - `name` (String) A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key 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. -- `stage_keys` (Attributes List) DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. (see [below for nested schema](#nestedatt--stage_keys)) -- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) -- `value` (String) Specifies a value of the API key. +- `stage_keys` (Attributes List) (see [below for nested schema](#nestedatt--stage_keys)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `value` (String) ### Nested Schema for `stage_keys` Read-Only: -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `stage_name` (String) The stage name associated with the stage key. +- `rest_api_id` (String) +- `stage_name` (String) diff --git a/docs/data-sources/apigateway_authorizer.md b/docs/data-sources/apigateway_authorizer.md index 08b44d0c76..34b4d9dfc9 100644 --- a/docs/data-sources/apigateway_authorizer.md +++ b/docs/data-sources/apigateway_authorizer.md @@ -21,14 +21,14 @@ Data Source schema for AWS::ApiGateway::Authorizer ### Read-Only -- `auth_type` (String) Optional customer-defined field, used in OpenAPI imports and exports without functional impact. -- `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. +- `auth_type` (String) +- `authorizer_credentials` (String) - `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_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. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `type` (String) The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool. +- `authorizer_result_ttl_in_seconds` (Number) +- `authorizer_uri` (String) +- `identity_source` (String) +- `identity_validation_expression` (String) +- `name` (String) +- `provider_ar_ns` (Set of String) +- `rest_api_id` (String) +- `type` (String) diff --git a/docs/data-sources/apigateway_base_path_mapping.md b/docs/data-sources/apigateway_base_path_mapping.md index 0c04d92823..5112758ab7 100644 --- a/docs/data-sources/apigateway_base_path_mapping.md +++ b/docs/data-sources/apigateway_base_path_mapping.md @@ -21,7 +21,7 @@ Data Source schema for AWS::ApiGateway::BasePathMapping ### Read-Only -- `base_path` (String) The base path name that callers of the API must provide as part of the URL after the domain name. -- `domain_name` (String) The domain name of the BasePathMapping resource to be described. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `stage` (String) The name of the associated stage. +- `base_path` (String) +- `domain_name` (String) +- `rest_api_id` (String) +- `stage` (String) diff --git a/docs/data-sources/apigateway_client_certificate.md b/docs/data-sources/apigateway_client_certificate.md index 0497d12de6..e42aae78aa 100644 --- a/docs/data-sources/apigateway_client_certificate.md +++ b/docs/data-sources/apigateway_client_certificate.md @@ -22,8 +22,8 @@ Data Source schema for AWS::ApiGateway::ClientCertificate ### Read-Only - `client_certificate_id` (String) -- `description` (String) The description of the client certificate. -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) +- `description` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `tags` diff --git a/docs/data-sources/apigateway_deployment.md b/docs/data-sources/apigateway_deployment.md index fc07de25da..fd572b4173 100644 --- a/docs/data-sources/apigateway_deployment.md +++ b/docs/data-sources/apigateway_deployment.md @@ -21,21 +21,21 @@ Data Source schema for AWS::ApiGateway::Deployment ### Read-Only -- `deployment_canary_settings` (Attributes) The input configuration for a canary deployment. (see [below for nested schema](#nestedatt--deployment_canary_settings)) +- `deployment_canary_settings` (Attributes) The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment. (see [below for nested schema](#nestedatt--deployment_canary_settings)) - `deployment_id` (String) -- `description` (String) The description for the Deployment resource to create. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `description` (String) +- `rest_api_id` (String) - `stage_description` (Attributes) The description of the Stage resource for the Deployment resource to create. To specify a stage description, you must also provide a stage name. (see [below for nested schema](#nestedatt--stage_description)) -- `stage_name` (String) The name of the Stage resource for the Deployment resource to create. +- `stage_name` (String) ### Nested Schema for `deployment_canary_settings` Read-Only: -- `percent_traffic` (Number) The percentage (0.0-100.0) of traffic routed to the canary deployment. -- `stage_variable_overrides` (Map of String) A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary release deployment uses the stage cache or not. +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -44,7 +44,7 @@ Read-Only: Read-Only: - `access_log_setting` (Attributes) Specifies settings for logging access in this stage. (see [below for nested schema](#nestedatt--stage_description--access_log_setting)) -- `cache_cluster_enabled` (Boolean) Specifies whether a cache cluster is enabled for the stage. +- `cache_cluster_enabled` (Boolean) - `cache_cluster_size` (String) The size of the stage's cache cluster. For more information, see [cacheClusterSize](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html#apigw-CreateStage-request-cacheClusterSize) in the *API Gateway API Reference*. - `cache_data_encrypted` (Boolean) Indicates whether the cached responses are encrypted. - `cache_ttl_in_seconds` (Number) The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses. @@ -69,8 +69,8 @@ Read-Only: Read-Only: -- `destination_arn` (String) The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``. -- `format` (String) A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``. +- `destination_arn` (String) +- `format` (String) @@ -78,9 +78,9 @@ Read-Only: Read-Only: -- `percent_traffic` (Number) The percent (0-100) of traffic diverted to a canary deployment. -- `stage_variable_overrides` (Map of String) Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary deployment uses the stage cache or not. +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -88,16 +88,16 @@ Read-Only: Read-Only: -- `cache_data_encrypted` (Boolean) Specifies whether the cached responses are encrypted. -- `cache_ttl_in_seconds` (Number) Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. -- `caching_enabled` (Boolean) Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached. -- `data_trace_enabled` (Boolean) Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. +- `cache_data_encrypted` (Boolean) +- `cache_ttl_in_seconds` (Number) +- `caching_enabled` (Boolean) +- `data_trace_enabled` (Boolean) - `http_method` (String) The HTTP method. -- `logging_level` (String) Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events. -- `metrics_enabled` (Boolean) Specifies whether Amazon CloudWatch metrics are enabled for this method. +- `logging_level` (String) +- `metrics_enabled` (Boolean) - `resource_path` (String) The resource path for this method. Forward slashes (``/``) are encoded as ``~1`` and the initial slash must include a forward slash. For example, the path value ``/resource/subresource`` must be encoded as ``/~1resource~1subresource``. To specify the root path, use only a slash (``/``). -- `throttling_burst_limit` (Number) Specifies the throttling burst limit. -- `throttling_rate_limit` (Number) Specifies the throttling rate limit. +- `throttling_burst_limit` (Number) +- `throttling_rate_limit` (Number) diff --git a/docs/data-sources/apigateway_documentation_part.md b/docs/data-sources/apigateway_documentation_part.md index b209a17952..c027b01f6c 100644 --- a/docs/data-sources/apigateway_documentation_part.md +++ b/docs/data-sources/apigateway_documentation_part.md @@ -22,17 +22,18 @@ Data Source schema for AWS::ApiGateway::DocumentationPart ### Read-Only - `documentation_part_id` (String) -- `location` (Attributes) The location of the targeted API entity of the to-be-created documentation part. (see [below for nested schema](#nestedatt--location)) -- `properties` (String) The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `location` (Attributes) The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource. + For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*. (see [below for nested schema](#nestedatt--location)) +- `properties` (String) +- `rest_api_id` (String) ### Nested Schema for `location` Read-Only: -- `method` (String) The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly. -- `name` (String) The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type. -- `path` (String) The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix. -- `status_code` (String) The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly. -- `type` (String) The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type. +- `method` (String) +- `name` (String) +- `path` (String) +- `status_code` (String) +- `type` (String) diff --git a/docs/data-sources/apigateway_documentation_version.md b/docs/data-sources/apigateway_documentation_version.md index f8f0bc8771..485dec9fa6 100644 --- a/docs/data-sources/apigateway_documentation_version.md +++ b/docs/data-sources/apigateway_documentation_version.md @@ -21,6 +21,6 @@ Data Source schema for AWS::ApiGateway::DocumentationVersion ### Read-Only -- `description` (String) A description about the new documentation snapshot. -- `documentation_version` (String) The version identifier of the to-be-updated documentation version. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `description` (String) +- `documentation_version` (String) +- `rest_api_id` (String) diff --git a/docs/data-sources/apigateway_gateway_response.md b/docs/data-sources/apigateway_gateway_response.md index 5a7cf4d979..7abe5ec96f 100644 --- a/docs/data-sources/apigateway_gateway_response.md +++ b/docs/data-sources/apigateway_gateway_response.md @@ -22,8 +22,8 @@ Data Source schema for AWS::ApiGateway::GatewayResponse ### Read-Only - `gateway_response_id` (String) -- `response_parameters` (Map of String) Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. -- `response_templates` (Map of String) Response templates of the GatewayResponse as a string-to-string map of key-value pairs. -- `response_type` (String) The response type of the associated GatewayResponse. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `status_code` (String) The HTTP status code for this GatewayResponse. +- `response_parameters` (Map of String) +- `response_templates` (Map of String) +- `response_type` (String) +- `rest_api_id` (String) +- `status_code` (String) diff --git a/docs/data-sources/apigateway_method.md b/docs/data-sources/apigateway_method.md index 1fccf6c28a..80c52540eb 100644 --- a/docs/data-sources/apigateway_method.md +++ b/docs/data-sources/apigateway_method.md @@ -21,55 +21,51 @@ Data Source schema for AWS::ApiGateway::Method ### Read-Only -- `api_key_required` (Boolean) A boolean flag specifying whether a valid ApiKey is required to invoke this method. -- `authorization_scopes` (List of String) A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes. +- `api_key_required` (Boolean) +- `authorization_scopes` (List of String) - `authorization_type` (String) The method's authorization type. This parameter is required. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) in the *API Gateway API Reference*. If you specify the ``AuthorizerId`` property, specify ``CUSTOM`` or ``COGNITO_USER_POOLS`` for this property. -- `authorizer_id` (String) The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``. -- `http_method` (String) The method's HTTP verb. -- `integration` (Attributes) Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration. (see [below for nested schema](#nestedatt--integration)) -- `method_responses` (Attributes List) Gets a method response associated with a given HTTP status code. (see [below for nested schema](#nestedatt--method_responses)) -- `operation_name` (String) A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example. -- `request_models` (Map of String) A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). -- `request_parameters` (Map of Boolean) A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. -- `request_validator_id` (String) The identifier of a RequestValidator for request validation. -- `resource_id` (String) The Resource identifier for the MethodResponse resource. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `authorizer_id` (String) +- `http_method` (String) +- `integration` (Attributes) ``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls. (see [below for nested schema](#nestedatt--integration)) +- `method_responses` (Attributes List) (see [below for nested schema](#nestedatt--method_responses)) +- `operation_name` (String) +- `request_models` (Map of String) +- `request_parameters` (Map of Boolean) +- `request_validator_id` (String) +- `resource_id` (String) +- `rest_api_id` (String) ### Nested Schema for `integration` Read-Only: -- `cache_key_parameters` (List of String) A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``. -- `cache_namespace` (String) Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources. -- `connection_id` (String) The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise. -- `connection_type` (String) The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``. -- `content_handling` (String) Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors: - If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through. -- `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. -- `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}`` +- `cache_key_parameters` (List of String) +- `cache_namespace` (String) +- `connection_id` (String) +- `connection_type` (String) +- `content_handling` (String) +- `credentials` (String) +- `integration_http_method` (String) +- `integration_responses` (Attributes List) (see [below for nested schema](#nestedatt--integration--integration_responses)) +- `passthrough_behavior` (String) +- `request_parameters` (Map of String) +- `request_templates` (Map of String) +- `timeout_in_millis` (Number) +- `type` (String) +- `uri` (String) ### Nested Schema for `integration.integration_responses` Read-Only: -- `content_handling` (String) Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors: - If this property is not defined, the response payload will be passed through from the integration response to the method response without modification. -- `response_parameters` (Map of String) A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix. -- `response_templates` (Map of String) Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. -- `selection_pattern` (String) Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched. -- `status_code` (String) Specifies the status code that is used to map the integration response to an existing MethodResponse. +- `content_handling` (String) +- `response_parameters` (Map of String) +- `response_templates` (Map of String) +- `selection_pattern` (String) +- `status_code` (String) @@ -78,6 +74,6 @@ Read-Only: Read-Only: -- `response_models` (Map of String) Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value. -- `response_parameters` (Map of Boolean) A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.) -- `status_code` (String) The method response's status code. +- `response_models` (Map of String) +- `response_parameters` (Map of Boolean) +- `status_code` (String) diff --git a/docs/data-sources/apigateway_model.md b/docs/data-sources/apigateway_model.md index 0d15e2cfaa..09d2af5629 100644 --- a/docs/data-sources/apigateway_model.md +++ b/docs/data-sources/apigateway_model.md @@ -21,9 +21,9 @@ Data Source schema for AWS::ApiGateway::Model ### Read-Only -- `content_type` (String) The content-type for the model. -- `description` (String) The description of the model. +- `content_type` (String) +- `description` (String) - `name` (String) A name for the model. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the model 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. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `schema` (String) The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail. +- `rest_api_id` (String) +- `schema` (String) diff --git a/docs/data-sources/apigateway_request_validator.md b/docs/data-sources/apigateway_request_validator.md index 1f3bed4e65..6a4b7af08e 100644 --- a/docs/data-sources/apigateway_request_validator.md +++ b/docs/data-sources/apigateway_request_validator.md @@ -21,8 +21,8 @@ Data Source schema for AWS::ApiGateway::RequestValidator ### Read-Only -- `name` (String) The name of this RequestValidator +- `name` (String) - `request_validator_id` (String) -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `validate_request_body` (Boolean) A Boolean flag to indicate whether to validate a request body according to the configured Model schema. -- `validate_request_parameters` (Boolean) A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``). +- `rest_api_id` (String) +- `validate_request_body` (Boolean) +- `validate_request_parameters` (Boolean) diff --git a/docs/data-sources/apigateway_resource.md b/docs/data-sources/apigateway_resource.md index f092b58cb7..97efdae79e 100644 --- a/docs/data-sources/apigateway_resource.md +++ b/docs/data-sources/apigateway_resource.md @@ -21,7 +21,7 @@ Data Source schema for AWS::ApiGateway::Resource ### Read-Only -- `parent_id` (String) The parent resource's identifier. -- `path_part` (String) The last path segment for this resource. +- `parent_id` (String) +- `path_part` (String) - `resource_id` (String) -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `rest_api_id` (String) diff --git a/docs/data-sources/apigateway_rest_api.md b/docs/data-sources/apigateway_rest_api.md index c6416459a9..ed81fe158c 100644 --- a/docs/data-sources/apigateway_rest_api.md +++ b/docs/data-sources/apigateway_rest_api.md @@ -21,16 +21,16 @@ Data Source schema for AWS::ApiGateway::RestApi ### Read-Only -- `api_key_source_type` (String) The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer. -- `binary_media_types` (List of String) The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads. +- `api_key_source_type` (String) +- `binary_media_types` (List of String) - `body` (String) An OpenAPI specification that defines a set of RESTful APIs in JSON format. For YAML templates, you can also provide the specification in YAML format. - `body_s3_location` (Attributes) The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format. (see [below for nested schema](#nestedatt--body_s3_location)) -- `clone_from` (String) The ID of the RestApi that you want to clone from. -- `description` (String) The description of the RestApi. -- `disable_execute_api_endpoint` (Boolean) Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint +- `clone_from` (String) +- `description` (String) +- `disable_execute_api_endpoint` (Boolean) - `endpoint_configuration` (Attributes) A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property. (see [below for nested schema](#nestedatt--endpoint_configuration)) -- `fail_on_warnings` (Boolean) A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``. -- `minimum_compression_size` (Number) A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size. +- `fail_on_warnings` (Boolean) +- `minimum_compression_size` (Number) - `mode` (String) This property applies only when you use OpenAPI to define your REST API. The ``Mode`` determines how API Gateway handles resource updates. Valid values are ``overwrite`` or ``merge``. For ``overwrite``, the new API definition replaces the existing one. The existing API identifier remains unchanged. @@ -38,11 +38,11 @@ Data Source schema for AWS::ApiGateway::RestApi If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is ``overwrite``. For REST APIs created after March 29, 2021, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API. Use the default mode to define top-level ``RestApi`` properties in addition to using OpenAPI. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties. - `name` (String) The name of the RestApi. A name is required if the REST API is not based on an OpenAPI specification. -- `parameters` (String) Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``. +- `parameters` (String) - `policy` (String) A policy document that contains the permissions for the ``RestApi`` resource. To set the ARN for the policy, use the ``!Join`` intrinsic function with ``""`` as delimiter and values of ``"execute-api:/"`` and ``"*"``. - `rest_api_id` (String) - `root_resource_id` (String) -- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `body_s3_location` @@ -60,8 +60,8 @@ Read-Only: Read-Only: -- `types` (List of String) A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``"EDGE"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``. -- `vpc_endpoint_ids` (List of String) A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type. +- `types` (List of String) +- `vpc_endpoint_ids` (List of String) diff --git a/docs/data-sources/apigateway_stage.md b/docs/data-sources/apigateway_stage.md index 6b8f240554..99dd3f1c82 100644 --- a/docs/data-sources/apigateway_stage.md +++ b/docs/data-sources/apigateway_stage.md @@ -21,19 +21,20 @@ Data Source schema for AWS::ApiGateway::Stage ### Read-Only -- `access_log_setting` (Attributes) Access log settings, including the access log format and access log destination ARN. (see [below for nested schema](#nestedatt--access_log_setting)) -- `cache_cluster_enabled` (Boolean) Specifies whether a cache cluster is enabled for the stage. -- `cache_cluster_size` (String) The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html). -- `canary_setting` (Attributes) Settings for the canary deployment in this stage. (see [below for nested schema](#nestedatt--canary_setting)) -- `client_certificate_id` (String) The identifier of a client certificate for an API stage. -- `deployment_id` (String) The identifier of the Deployment that the stage points to. -- `description` (String) The stage's description. -- `documentation_version` (String) The version of the associated API documentation. -- `method_settings` (Attributes Set) A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\*/\*`` for overriding all methods in the stage. (see [below for nested schema](#nestedatt--method_settings)) -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `stage_name` (String) The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) -- `tracing_enabled` (Boolean) Specifies whether active tracing with X-ray is enabled for the Stage. +- `access_log_setting` (Attributes) The ``AccessLogSetting`` property type specifies settings for logging access in this stage. + ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource. (see [below for nested schema](#nestedatt--access_log_setting)) +- `cache_cluster_enabled` (Boolean) +- `cache_cluster_size` (String) +- `canary_setting` (Attributes) (see [below for nested schema](#nestedatt--canary_setting)) +- `client_certificate_id` (String) +- `deployment_id` (String) +- `description` (String) +- `documentation_version` (String) +- `method_settings` (Attributes Set) (see [below for nested schema](#nestedatt--method_settings)) +- `rest_api_id` (String) +- `stage_name` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `tracing_enabled` (Boolean) - `variables` (Map of String) A map (string-to-string map) that defines the stage variables, where the variable name is the key and the variable value is the value. Variable names are limited to alphanumeric characters. Values must match the following regular expression: ``[A-Za-z0-9-._~:/?#&=,]+``. @@ -50,10 +51,10 @@ Read-Only: Read-Only: -- `deployment_id` (String) The ID of the canary deployment. -- `percent_traffic` (Number) The percent (0-100) of traffic diverted to a canary deployment. -- `stage_variable_overrides` (Map of String) Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary deployment uses the stage cache or not. +- `deployment_id` (String) +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -61,16 +62,16 @@ Read-Only: Read-Only: -- `cache_data_encrypted` (Boolean) Specifies whether the cached responses are encrypted. -- `cache_ttl_in_seconds` (Number) Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. -- `caching_enabled` (Boolean) Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached. -- `data_trace_enabled` (Boolean) Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. +- `cache_data_encrypted` (Boolean) +- `cache_ttl_in_seconds` (Number) +- `caching_enabled` (Boolean) +- `data_trace_enabled` (Boolean) - `http_method` (String) The HTTP method. To apply settings to multiple resources and methods, specify an asterisk (``*``) for the ``HttpMethod`` and ``/*`` for the ``ResourcePath``. This parameter is required when you specify a ``MethodSetting``. -- `logging_level` (String) Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events. -- `metrics_enabled` (Boolean) Specifies whether Amazon CloudWatch metrics are enabled for this method. +- `logging_level` (String) +- `metrics_enabled` (Boolean) - `resource_path` (String) The resource path for this method. Forward slashes (``/``) are encoded as ``~1`` and the initial slash must include a forward slash. For example, the path value ``/resource/subresource`` must be encoded as ``/~1resource~1subresource``. To specify the root path, use only a slash (``/``). To apply settings to multiple resources and methods, specify an asterisk (``*``) for the ``HttpMethod`` and ``/*`` for the ``ResourcePath``. This parameter is required when you specify a ``MethodSetting``. -- `throttling_burst_limit` (Number) Specifies the throttling burst limit. -- `throttling_rate_limit` (Number) Specifies the throttling rate limit. +- `throttling_burst_limit` (Number) +- `throttling_rate_limit` (Number) diff --git a/docs/data-sources/apigateway_usage_plan.md b/docs/data-sources/apigateway_usage_plan.md index 124024e17f..26d9e93916 100644 --- a/docs/data-sources/apigateway_usage_plan.md +++ b/docs/data-sources/apigateway_usage_plan.md @@ -21,30 +21,31 @@ Data Source schema for AWS::ApiGateway::UsagePlan ### Read-Only -- `api_stages` (Attributes List) The associated API stages of a usage plan. (see [below for nested schema](#nestedatt--api_stages)) -- `description` (String) The description of a usage plan. -- `quota` (Attributes) The target maximum number of permitted requests per a given unit time interval. (see [below for nested schema](#nestedatt--quota)) -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) -- `throttle` (Attributes) A map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--throttle)) +- `api_stages` (Attributes List) (see [below for nested schema](#nestedatt--api_stages)) +- `description` (String) +- `quota` (Attributes) ``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs. + In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. (see [below for nested schema](#nestedatt--quota)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `throttle` (Attributes) ``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs. (see [below for nested schema](#nestedatt--throttle)) - `usage_plan_id` (String) -- `usage_plan_name` (String) The name of a usage plan. +- `usage_plan_name` (String) ### Nested Schema for `api_stages` Read-Only: -- `api_id` (String) API Id of the associated API stage in a usage plan. -- `stage` (String) API stage name of the associated API stage in a usage plan. -- `throttle` (Attributes Map) Map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--api_stages--throttle)) +- `api_id` (String) +- `stage` (String) +- `throttle` (Attributes Map) (see [below for nested schema](#nestedatt--api_stages--throttle)) ### Nested Schema for `api_stages.throttle` Read-Only: -- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. -- `rate_limit` (Number) The API target request rate limit. +- `burst_limit` (Number) +- `rate_limit` (Number) @@ -53,9 +54,9 @@ Read-Only: Read-Only: -- `limit` (Number) The target maximum number of requests that can be made in a given time period. -- `offset` (Number) The number of requests subtracted from the given limit in the initial time period. -- `period` (String) The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". +- `limit` (Number) +- `offset` (Number) +- `period` (String) @@ -72,5 +73,5 @@ Read-Only: Read-Only: -- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. -- `rate_limit` (Number) The API target request rate limit. +- `burst_limit` (Number) +- `rate_limit` (Number) diff --git a/docs/data-sources/apigateway_usage_plan_key.md b/docs/data-sources/apigateway_usage_plan_key.md index ac1226b435..d8e32dca38 100644 --- a/docs/data-sources/apigateway_usage_plan_key.md +++ b/docs/data-sources/apigateway_usage_plan_key.md @@ -22,6 +22,6 @@ Data Source schema for AWS::ApiGateway::UsagePlanKey ### Read-Only - `key_id` (String) The Id of the UsagePlanKey resource. -- `key_type` (String) The type of a UsagePlanKey resource for a plan customer. +- `key_type` (String) - `usage_plan_id` (String) The Id of the UsagePlan resource representing the usage plan containing the UsagePlanKey resource representing a plan customer. - `usage_plan_key_id` (String) diff --git a/docs/data-sources/appsync_api.md b/docs/data-sources/appsync_api.md index 430e273e12..3409901d4a 100644 --- a/docs/data-sources/appsync_api.md +++ b/docs/data-sources/appsync_api.md @@ -23,12 +23,21 @@ Data Source schema for AWS::AppSync::Api - `api_arn` (String) The Amazon Resource Name (ARN) of the AppSync Api - `api_id` (String) The unique identifier for the AppSync Api generated by the service -- `dns` (Map of String) A map of DNS names for the AppSync API. +- `dns` (Attributes) A map of DNS names for the AppSync API. (see [below for nested schema](#nestedatt--dns)) - `event_config` (Attributes) The configuration for an Event Api (see [below for nested schema](#nestedatt--event_config)) - `name` (String) The name of the AppSync API. - `owner_contact` (String) The owner contact information for an API resource. - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this AppSync API. (see [below for nested schema](#nestedatt--tags)) + +### Nested Schema for `dns` + +Read-Only: + +- `http` (String) +- `realtime` (String) + + ### Nested Schema for `event_config` diff --git a/docs/data-sources/appsync_channel_namespace.md b/docs/data-sources/appsync_channel_namespace.md new file mode 100644 index 0000000000..39b02ab782 --- /dev/null +++ b/docs/data-sources/appsync_channel_namespace.md @@ -0,0 +1,55 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appsync_channel_namespace Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::AppSync::ChannelNamespace +--- + +# awscc_appsync_channel_namespace (Data Source) + +Data Source schema for AWS::AppSync::ChannelNamespace + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `api_id` (String) AppSync Api Id that this Channel Namespace belongs to. +- `channel_namespace_arn` (String) The Amazon Resource Name (ARN) for the Channel Namespace. +- `code_handlers` (String) String of APPSYNC_JS code to be used by the handlers. +- `code_s3_location` (String) The Amazon S3 endpoint where the code is located. +- `name` (String) Namespace indentifier. +- `publish_auth_modes` (Attributes List) List of AuthModes supported for Publish operations. (see [below for nested schema](#nestedatt--publish_auth_modes)) +- `subscribe_auth_modes` (Attributes List) List of AuthModes supported for Subscribe operations. (see [below for nested schema](#nestedatt--subscribe_auth_modes)) +- `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this AppSync API. (see [below for nested schema](#nestedatt--tags)) + + +### Nested Schema for `publish_auth_modes` + +Read-Only: + +- `auth_type` (String) Security configuration for your AppSync API. + + + +### Nested Schema for `subscribe_auth_modes` + +Read-Only: + +- `auth_type` (String) Security configuration for your AppSync API. + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. +- `value` (String) A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. diff --git a/docs/data-sources/autoscaling_auto_scaling_group.md b/docs/data-sources/autoscaling_auto_scaling_group.md index 6be5ddca66..98a018b52e 100644 --- a/docs/data-sources/autoscaling_auto_scaling_group.md +++ b/docs/data-sources/autoscaling_auto_scaling_group.md @@ -24,6 +24,7 @@ Data Source schema for AWS::AutoScaling::AutoScalingGroup - `auto_scaling_group_name` (String) The name of the Auto Scaling group. This name must be unique per Region per account. The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters. You cannot use a colon (:) in the name. +- `availability_zone_distribution` (Attributes) (see [below for nested schema](#nestedatt--availability_zone_distribution)) - `availability_zones` (List of String) A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. - `capacity_rebalance` (Boolean) Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - `context` (String) Reserved. @@ -74,12 +75,20 @@ Data Source schema for AWS::AutoScaling::AutoScalingGroup - `target_group_ar_ns` (List of String) The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*. - `termination_policies` (List of String) A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see [Configure termination policies for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) in the *Amazon EC2 Auto Scaling User Guide*. Valid values: ``Default`` | ``AllocationStrategy`` | ``ClosestToNextInstanceHour`` | ``NewestInstance`` | ``OldestInstance`` | ``OldestLaunchConfiguration`` | ``OldestLaunchTemplate`` | ``arn:aws:lambda:region:account-id:function:my-function:my-alias`` -- `traffic_sources` (Attributes Set) (see [below for nested schema](#nestedatt--traffic_sources)) +- `traffic_sources` (Attributes Set) The traffic sources associated with this Auto Scaling group. (see [below for nested schema](#nestedatt--traffic_sources)) - `vpc_zone_identifier` (List of String) A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html). When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html). Required to launch instances into a nondefault VPC. If you specify ``VPCZoneIdentifier`` with ``AvailabilityZones``, the subnets that you specify for this property must reside in those Availability Zones. + +### Nested Schema for `availability_zone_distribution` + +Read-Only: + +- `capacity_distribution_strategy` (String) + + ### Nested Schema for `instance_maintenance_policy` @@ -463,5 +472,19 @@ Read-Only: Read-Only: -- `identifier` (String) -- `type` (String) +- `identifier` (String) Identifies the traffic source. + For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region. + For example: + + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` + + Classic Load Balancer name: ``my-classic-load-balancer`` + + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` + + To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations. + To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation. +- `type` (String) Provides additional context for the value of ``Identifier``. + The following lists the valid values: + + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer. + + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. + + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group. + + Required if the identifier is the name of a Classic Load Balancer. diff --git a/docs/data-sources/bedrock_application_inference_profile.md b/docs/data-sources/bedrock_application_inference_profile.md new file mode 100644 index 0000000000..2cd0840310 --- /dev/null +++ b/docs/data-sources/bedrock_application_inference_profile.md @@ -0,0 +1,60 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_application_inference_profile Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Bedrock::ApplicationInferenceProfile +--- + +# awscc_bedrock_application_inference_profile (Data Source) + +Data Source schema for AWS::Bedrock::ApplicationInferenceProfile + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `created_at` (String) Time Stamp +- `description` (String) Description of the inference profile +- `inference_profile_arn` (String) +- `inference_profile_id` (String) +- `inference_profile_identifier` (String) Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs. +- `inference_profile_name` (String) +- `model_source` (Attributes) Various ways to encode a list of models in a CreateInferenceProfile request (see [below for nested schema](#nestedatt--model_source)) +- `models` (Attributes List) List of model configuration (see [below for nested schema](#nestedatt--models)) +- `status` (String) Status of the Inference Profile +- `tags` (Attributes List) List of Tags (see [below for nested schema](#nestedatt--tags)) +- `type` (String) Type of the Inference Profile +- `updated_at` (String) Time Stamp + + +### Nested Schema for `model_source` + +Read-Only: + +- `copy_from` (String) Source arns for a custom inference profile to copy its regional load balancing config from. This +can either be a foundation model or predefined inference profile ARN. + + + +### Nested Schema for `models` + +Read-Only: + +- `model_arn` (String) ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs + + + +### Nested Schema for `tags` + +Read-Only: + +- `key` (String) Tag Key +- `value` (String) Tag Value diff --git a/docs/data-sources/bedrock_application_inference_profiles.md b/docs/data-sources/bedrock_application_inference_profiles.md new file mode 100644 index 0000000000..c44348d497 --- /dev/null +++ b/docs/data-sources/bedrock_application_inference_profiles.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_application_inference_profiles Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::Bedrock::ApplicationInferenceProfile +--- + +# awscc_bedrock_application_inference_profiles (Data Source) + +Plural Data Source schema for AWS::Bedrock::ApplicationInferenceProfile + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/bedrock_prompt_version.md b/docs/data-sources/bedrock_prompt_version.md index 9b8125d454..348f17914d 100644 --- a/docs/data-sources/bedrock_prompt_version.md +++ b/docs/data-sources/bedrock_prompt_version.md @@ -40,7 +40,7 @@ Data Source schema for AWS::Bedrock::PromptVersion Read-Only: - `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) -- `model_id` (String) ARN or name of a Bedrock model. +- `model_id` (String) ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models. - `name` (String) Name for a variant. - `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) - `template_type` (String) Prompt template type @@ -60,7 +60,6 @@ Read-Only: - `max_tokens` (Number) Maximum length of output - `stop_sequences` (List of String) List of stop sequences - `temperature` (Number) Controls randomness, higher values increase diversity -- `top_k` (Number) Sample from the k most likely next tokens - `top_p` (Number) Cumulative probability cutoff for token selection diff --git a/docs/data-sources/cleanrooms_collaboration.md b/docs/data-sources/cleanrooms_collaboration.md index d3315ec1cf..90fc5bc5c0 100644 --- a/docs/data-sources/cleanrooms_collaboration.md +++ b/docs/data-sources/cleanrooms_collaboration.md @@ -21,6 +21,7 @@ Data Source schema for AWS::CleanRooms::Collaboration ### Read-Only +- `analytics_engine` (String) - `arn` (String) - `collaboration_identifier` (String) - `creator_display_name` (String) diff --git a/docs/data-sources/cleanrooms_membership.md b/docs/data-sources/cleanrooms_membership.md index 139f9b38bc..03bb9bf419 100644 --- a/docs/data-sources/cleanrooms_membership.md +++ b/docs/data-sources/cleanrooms_membership.md @@ -54,6 +54,7 @@ Read-Only: - `bucket` (String) - `key_prefix` (String) - `result_format` (String) +- `single_file_output` (Boolean) diff --git a/docs/data-sources/datasync_task.md b/docs/data-sources/datasync_task.md index b447d79dcd..cc3e5159ac 100644 --- a/docs/data-sources/datasync_task.md +++ b/docs/data-sources/datasync_task.md @@ -35,6 +35,7 @@ Data Source schema for AWS::DataSync::Task - `status` (String) The status of the task that was described. - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) - `task_arn` (String) The ARN of the task. +- `task_mode` (String) Specifies the task mode for the task. - `task_report_config` (Attributes) Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer. (see [below for nested schema](#nestedatt--task_report_config)) diff --git a/docs/data-sources/ec2_launch_template.md b/docs/data-sources/ec2_launch_template.md index f34ad3163b..e5171eeb86 100644 --- a/docs/data-sources/ec2_launch_template.md +++ b/docs/data-sources/ec2_launch_template.md @@ -27,7 +27,7 @@ Data Source schema for AWS::EC2::LaunchTemplate - `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. 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) + To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) - `version_description` (String) A description for the first version of the launch template. @@ -44,7 +44,8 @@ Read-Only: - `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. +- `elastic_inference_accelerators` (Attributes List) Amazon Elastic Inference is no longer available. + 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*. @@ -71,7 +72,7 @@ Read-Only: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. - For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) + For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) - `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. @@ -91,8 +92,7 @@ Read-Only: If you specify a network interface, you must specify any security groups as part of the network interface instead. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. -- `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). +- `tag_specifications` (Attributes List) The tags to apply to resources that are created during instance launch. 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 Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 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*. @@ -122,7 +122,7 @@ Read-Only: 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. +- `kms_key_id` (String) Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS 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. Valid Range: Minimum value of 125. Maximum value of 1000. @@ -282,7 +282,6 @@ Read-Only: - `accelerator_types` (List of String) The accelerator types that must be on the instance type. + 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. @@ -503,9 +502,10 @@ Read-Only: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `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. 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 EC2 User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. - Valid values: ``interface`` | ``efa`` + If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses. + Valid values: ``interface`` | ``efa`` | ``efa-only`` - `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. diff --git a/docs/data-sources/ec2_security_group_vpc_association.md b/docs/data-sources/ec2_security_group_vpc_association.md new file mode 100644 index 0000000000..89741dd993 --- /dev/null +++ b/docs/data-sources/ec2_security_group_vpc_association.md @@ -0,0 +1,28 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_vpc_association Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::EC2::SecurityGroupVpcAssociation +--- + +# awscc_ec2_security_group_vpc_association (Data Source) + +Data Source schema for AWS::EC2::SecurityGroupVpcAssociation + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `group_id` (String) The group ID of the specified security group. +- `state` (String) The state of the security group vpc association. +- `state_reason` (String) The reason for the state of the security group vpc association. +- `vpc_id` (String) The ID of the VPC in the security group vpc association. +- `vpc_owner_id` (String) The owner of the VPC in the security group vpc association. diff --git a/docs/data-sources/ec2_security_group_vpc_associations.md b/docs/data-sources/ec2_security_group_vpc_associations.md new file mode 100644 index 0000000000..88defb44c6 --- /dev/null +++ b/docs/data-sources/ec2_security_group_vpc_associations.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_vpc_associations Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::EC2::SecurityGroupVpcAssociation +--- + +# awscc_ec2_security_group_vpc_associations (Data Source) + +Plural Data Source schema for AWS::EC2::SecurityGroupVpcAssociation + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ecs_service.md b/docs/data-sources/ecs_service.md index 8b1b231393..bdde4a2c1d 100644 --- a/docs/data-sources/ecs_service.md +++ b/docs/data-sources/ecs_service.md @@ -25,7 +25,7 @@ Data Source schema for AWS::ECS::Service If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. -- `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) +- `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods. (see [below for nested schema](#nestedatt--deployment_configuration)) - `deployment_controller` (Attributes) The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used. (see [below for nested schema](#nestedatt--deployment_controller)) - `desired_count` (Number) The number of instantiations of the specified task definition to place and keep running in your service. For new services, if a desired count is not specified, a default value of ``1`` is used. When using the ``DAEMON`` scheduling strategy, the desired count is not required. @@ -152,7 +152,7 @@ Read-Only: - `container_name` (String) The name of the container (as it appears in a container definition) to associate with the load balancer. You need to specify the container name when configuring the target group for an Amazon ECS load balancer. - `container_port` (Number) The port on the container to associate with the load balancer. This port must correspond to a ``containerPort`` in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the ``hostPort`` of the port mapping. -- `load_balancer_name` (String) The name of the load balancer to associate with the Amazon ECS service or task set. +- `load_balancer_name` (String) The name of the load balancer to associate with the service or task set. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted. - `target_group_arn` (String) The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set. A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. @@ -350,8 +350,9 @@ Read-Only: Read-Only: - `encrypted` (Boolean) Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on by default. This parameter maps 1:1 with the ``Encrypted`` parameter of the [CreateVolume API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) in the *Amazon EC2 API Reference*. -- `filesystem_type` (String) The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start. - The available filesystem types are
 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default. +- `filesystem_type` (String) The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start. + The available Linux filesystem types are
 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default. + The available Windows filesystem types are ``NTFS``. - `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 diff --git a/docs/data-sources/lambda_function.md b/docs/data-sources/lambda_function.md index f74aa0ff1b..09e39b43a7 100644 --- a/docs/data-sources/lambda_function.md +++ b/docs/data-sources/lambda_function.md @@ -23,7 +23,10 @@ Data Source schema for AWS::Lambda::Function - `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` (Attributes) The code for the function. You can define your function code in multiple ways: + + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties. + + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions. + + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property. (see [below for nested schema](#nestedatt--code)) - `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. @@ -35,12 +38,14 @@ Data Source schema for AWS::Lambda::Function 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. +- `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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM 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. -- `recursive_loop` (String) The function recursion configuration. +- `recursive_loop` (String) The status of your function's recursive loop detection configuration. + When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action. + When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you. - `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](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html). Runtime is required if the deployment package is a .zip file archive. Specifying a runtime results in an error if you're deploying a function using a container image. @@ -49,7 +54,8 @@ Data Source schema for AWS::Lambda::Function - `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)) +- `tags` (Attributes Set) A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function. + You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update. (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)) @@ -83,6 +89,7 @@ Read-Only: Read-Only: - `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). + If the value of the environment variable is a time or a duration, enclose the value in quotes. @@ -160,8 +167,8 @@ Read-Only: Read-Only: -- `key` (String) -- `value` (String) +- `key` (String) The key for this tag. +- `value` (String) The value for this tag. diff --git a/docs/data-sources/lambda_version.md b/docs/data-sources/lambda_version.md index 647d77f7a4..c293757d86 100644 --- a/docs/data-sources/lambda_version.md +++ b/docs/data-sources/lambda_version.md @@ -25,7 +25,6 @@ Data Source schema for AWS::Lambda::Version - `description` (String) A description for the version to override the description in the function configuration. Updates are not supported for this property. - `function_arn` (String) The ARN of the version. - `function_name` (String) The name of the Lambda function. -- `policy` (String) The resource policy of your function - `provisioned_concurrency_config` (Attributes) Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property. (see [below for nested schema](#nestedatt--provisioned_concurrency_config)) - `runtime_policy` (Attributes) Specifies the runtime management configuration of a function. Displays runtimeVersionArn only for Manual. (see [below for nested schema](#nestedatt--runtime_policy)) - `version` (String) The version number. diff --git a/docs/data-sources/logs_delivery.md b/docs/data-sources/logs_delivery.md index 298fc6dc32..367e342c23 100644 --- a/docs/data-sources/logs_delivery.md +++ b/docs/data-sources/logs_delivery.md @@ -26,6 +26,10 @@ Data Source schema for AWS::Logs::Delivery - `delivery_destination_type` (String) Displays whether the delivery destination associated with this delivery is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose. - `delivery_id` (String) The unique ID that identifies this delivery in your account. - `delivery_source_name` (String) The name of the delivery source that is associated with this delivery. +- `field_delimiter` (String) The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format. +- `record_fields` (List of String) The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list. +- `s3_enable_hive_compatible_path` (Boolean) This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive. +- `s3_suffix_path` (String) This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source. - `tags` (Attributes Set) The tags that have been assigned to this delivery. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/logs_delivery_destination.md b/docs/data-sources/logs_delivery_destination.md index 824a5612ac..d151334bdb 100644 --- a/docs/data-sources/logs_delivery_destination.md +++ b/docs/data-sources/logs_delivery_destination.md @@ -30,6 +30,7 @@ Length Constraints: Maximum length of 51200 - `delivery_destination_type` (String) Displays whether this delivery destination is CloudWatch Logs, Amazon S3, or Kinesis Data Firehose. - `destination_resource_arn` (String) The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose. - `name` (String) The name of this delivery destination. +- `output_format` (String) The format of the logs that are sent to this delivery destination. - `tags` (Attributes Set) The tags that have been assigned to this delivery destination. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/data-sources/nimblestudio_launch_profile.md b/docs/data-sources/nimblestudio_launch_profile.md index 2aafcc1f38..dd491c031d 100644 --- a/docs/data-sources/nimblestudio_launch_profile.md +++ b/docs/data-sources/nimblestudio_launch_profile.md @@ -21,17 +21,14 @@ Data Source schema for AWS::NimbleStudio::LaunchProfile ### Read-Only -- `description` (String)
The description.
-- `ec_2_subnet_ids` (List of String)Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. - These subnets must support the specified instance types.
+- `description` (String) +- `ec_2_subnet_ids` (List of String) - `launch_profile_id` (String) -- `launch_profile_protocol_versions` (List of String)The version number of the protocol that is used by the launch profile. The only valid - version is "2021-03-31".
-- `name` (String)The name for the launch profile.
-- `stream_configuration` (Attributes)A configuration for a streaming session.
(see [below for nested schema](#nestedatt--stream_configuration)) -- `studio_component_ids` (List of String)Unique identifiers for a collection of studio components that can be used with this - launch profile.
-- `studio_id` (String)The studio ID.
+- `launch_profile_protocol_versions` (List of String) +- `name` (String) +- `stream_configuration` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration)) +- `studio_component_ids` (List of String) +- `studio_id` (String) - `tags` (Map of String) @@ -41,46 +38,21 @@ Read-Only: - `automatic_termination_mode` (String) - `clipboard_mode` (String) -- `ec_2_instance_types` (List of String)The EC2 instance types that users can select from when launching a streaming session - with this launch profile.
-- `max_session_length_in_minutes` (Number)The length of time, in minutes, that a streaming session can be active before it is - stopped or terminated. After this point, Nimble Studio automatically terminates or - stops the session. The default length of time is 690 minutes, and the maximum length of - time is 30 days.
-- `max_stopped_session_length_in_minutes` (Number)Integer that determines if you can start and stop your sessions and how long a session
- can stay in the STOPPED
state. The default value is 0. The maximum value is
- 5760.
This field is allowed only when sessionPersistenceMode
is
- ACTIVATED
and automaticTerminationMode
is
- ACTIVATED
.
If the value is set to 0, your sessions can?t be STOPPED
. If you then
- call StopStreamingSession
, the session fails. If the time that a session
- stays in the READY
state exceeds the maxSessionLengthInMinutes
- value, the session will automatically be terminated (instead of
- STOPPED
).
If the value is set to a positive number, the session can be stopped. You can call
- StopStreamingSession
to stop sessions in the READY
state.
- If the time that a session stays in the READY
state exceeds the
- maxSessionLengthInMinutes
value, the session will automatically be
- stopped (instead of terminated).
Configures how streaming sessions are backed up when launched from this launch - profile.
(see [below for nested schema](#nestedatt--stream_configuration--session_backup)) +- `ec_2_instance_types` (List of String) +- `max_session_length_in_minutes` (Number) +- `max_stopped_session_length_in_minutes` (Number) +- `session_backup` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration--session_backup)) - `session_persistence_mode` (String) -- `session_storage` (Attributes)The configuration for a streaming session?s upload storage.
(see [below for nested schema](#nestedatt--stream_configuration--session_storage)) -- `streaming_image_ids` (List of String)The streaming images that users can select from when launching a streaming session - with this launch profile.
-- `volume_configuration` (Attributes)Custom volume configuration for the root volumes that are attached to streaming - sessions.
-This parameter is only allowed when sessionPersistenceMode
is
- ACTIVATED
.
The maximum number of backups that each streaming session created from this launch - profile can have.
+- `max_backups_to_retain` (Number) - `mode` (String) @@ -89,18 +61,16 @@ Read-Only: Read-Only: -- `mode` (List of String)Allows artists to upload files to their workstations. The only valid option is
- UPLOAD
.
The upload storage root location (folder) on streaming workstations where files are - uploaded.
(see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) +- `mode` (List of String) +- `root` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) ### Nested Schema for `stream_configuration.session_storage.root` Read-Only: -- `linux` (String)The folder path in Linux workstations where files are uploaded.
-- `windows` (String)The folder path in Windows workstations where files are uploaded.
+- `linux` (String) +- `windows` (String) @@ -109,9 +79,6 @@ Read-Only: Read-Only: -- `iops` (Number)The number of I/O operations per second for the root volume that is attached to - streaming session.
-- `size` (Number)The size of the root volume that is attached to the streaming session. The root volume - size is measured in GiBs.
-- `throughput` (Number)The throughput to provision for the root volume that is attached to the streaming - session. The throughput is measured in MiB/s.
+- `iops` (Number) +- `size` (Number) +- `throughput` (Number) diff --git a/docs/data-sources/nimblestudio_streaming_image.md b/docs/data-sources/nimblestudio_streaming_image.md index 7d7c33d0f9..d2dc385aaa 100644 --- a/docs/data-sources/nimblestudio_streaming_image.md +++ b/docs/data-sources/nimblestudio_streaming_image.md @@ -21,15 +21,17 @@ Data Source schema for AWS::NimbleStudio::StreamingImage ### Read-Only -- `description` (String)A human-readable description of the streaming image.
-- `ec_2_image_id` (String)The ID of an EC2 machine image with which to create this streaming image.
-- `encryption_configuration` (Attributes)TODO
(see [below for nested schema](#nestedatt--encryption_configuration)) -- `eula_ids` (List of String)The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.
-- `name` (String)A friendly name for a streaming image resource.
-- `owner` (String)The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.
-- `platform` (String)The platform of the streaming image, either WINDOWS or LINUX.
+- `description` (String) +- `ec_2_image_id` (String) +- `encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--encryption_configuration)) +- `encryption_configuration_key_arn` (String) +- `encryption_configuration_key_type` (String) +- `eula_ids` (List of String) +- `name` (String) +- `owner` (String) +- `platform` (String) - `streaming_image_id` (String) -- `studio_id` (String)The studioId.
+- `studio_id` (String) - `tags` (Map of String) @@ -37,5 +39,5 @@ Data Source schema for AWS::NimbleStudio::StreamingImage Read-Only: -- `key_arn` (String)The ARN for a KMS key that is used to encrypt studio data.
-- `key_type` (String) +- `key_arn` (String) +- `key_type` (String) diff --git a/docs/data-sources/nimblestudio_studio.md b/docs/data-sources/nimblestudio_studio.md index 5fb992e183..acf0d64cdb 100644 --- a/docs/data-sources/nimblestudio_studio.md +++ b/docs/data-sources/nimblestudio_studio.md @@ -21,21 +21,21 @@ Data Source schema for AWS::NimbleStudio::Studio ### Read-Only -- `admin_role_arn` (String)The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.
-- `display_name` (String)A friendly name for the studio.
-- `home_region` (String)The Amazon Web Services Region where the studio resource is located.
-- `sso_client_id` (String)The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.
-- `studio_encryption_configuration` (Attributes)Configuration of the encryption method that is used for the studio.
(see [below for nested schema](#nestedatt--studio_encryption_configuration)) +- `admin_role_arn` (String) +- `display_name` (String) +- `home_region` (String) +- `sso_client_id` (String) +- `studio_encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--studio_encryption_configuration)) - `studio_id` (String) -- `studio_name` (String)The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.
-- `studio_url` (String)The address of the web page for the studio.
+- `studio_name` (String) +- `studio_url` (String) - `tags` (Map of String) -- `user_role_arn` (String)The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.
+- `user_role_arn` (String) ### Nested Schema for `studio_encryption_configuration` Read-Only: -- `key_arn` (String)The ARN for a KMS key that is used to encrypt studio data.
-- `key_type` (String)The type of KMS key that is used to encrypt studio data.
+- `key_arn` (String) +- `key_type` (String) diff --git a/docs/data-sources/nimblestudio_studio_component.md b/docs/data-sources/nimblestudio_studio_component.md index cd908c14cd..572360d269 100644 --- a/docs/data-sources/nimblestudio_studio_component.md +++ b/docs/data-sources/nimblestudio_studio_component.md @@ -21,16 +21,14 @@ Data Source schema for AWS::NimbleStudio::StudioComponent ### Read-Only -- `configuration` (Attributes)The configuration of the studio component, based on component type.
(see [below for nested schema](#nestedatt--configuration)) -- `description` (String)The description.
-- `ec_2_security_group_ids` (List of String)The EC2 security groups that control access to the studio component.
-- `initialization_scripts` (Attributes List)Initialization scripts for studio components.
(see [below for nested schema](#nestedatt--initialization_scripts)) -- `name` (String)The name for the studio component.
-- `runtime_role_arn` (String) -- `script_parameters` (Attributes List)Parameters for the studio component scripts.
(see [below for nested schema](#nestedatt--script_parameters)) -- `secure_initialization_role_arn` (String) +- `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) +- `description` (String) +- `ec_2_security_group_ids` (List of String) +- `initialization_scripts` (Attributes List) (see [below for nested schema](#nestedatt--initialization_scripts)) +- `name` (String) +- `script_parameters` (Attributes List) (see [below for nested schema](#nestedatt--script_parameters)) - `studio_component_id` (String) -- `studio_id` (String)The studio ID.
+- `studio_id` (String) - `subtype` (String) - `tags` (Map of String) - `type` (String) @@ -40,32 +38,27 @@ Data Source schema for AWS::NimbleStudio::StudioComponent Read-Only: -- `active_directory_configuration` (Attributes)The configuration for a Microsoft Active Directory (Microsoft AD) studio - resource.
(see [below for nested schema](#nestedatt--configuration--active_directory_configuration)) -- `compute_farm_configuration` (Attributes)The configuration for a render farm that is associated with a studio resource.
(see [below for nested schema](#nestedatt--configuration--compute_farm_configuration)) -- `license_service_configuration` (Attributes)The configuration for a license service that is associated with a studio - resource.
(see [below for nested schema](#nestedatt--configuration--license_service_configuration)) -- `shared_file_system_configuration` (Attributes)The configuration for a shared file storage system that is associated with a studio - resource.
(see [below for nested schema](#nestedatt--configuration--shared_file_system_configuration)) +- `active_directory_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--active_directory_configuration)) +- `compute_farm_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--compute_farm_configuration)) +- `license_service_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--license_service_configuration)) +- `shared_file_system_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--shared_file_system_configuration)) ### Nested Schema for `configuration.active_directory_configuration` Read-Only: -- `computer_attributes` (Attributes List)A collection of custom attributes for an Active Directory computer.
(see [below for nested schema](#nestedatt--configuration--active_directory_configuration--computer_attributes)) -- `directory_id` (String)The directory ID of the Directory Service for Microsoft Active Directory to access - using this studio component.
-- `organizational_unit_distinguished_name` (String)The distinguished name (DN) and organizational unit (OU) of an Active Directory - computer.
+- `computer_attributes` (Attributes List) (see [below for nested schema](#nestedatt--configuration--active_directory_configuration--computer_attributes)) +- `directory_id` (String) +- `organizational_unit_distinguished_name` (String) ### Nested Schema for `configuration.active_directory_configuration.computer_attributes` Read-Only: -- `name` (String)The name for the LDAP attribute.
-- `value` (String)The value for the LDAP attribute.
+- `name` (String) +- `value` (String) @@ -74,10 +67,8 @@ Read-Only: Read-Only: -- `active_directory_user` (String)The name of an Active Directory user that is used on ComputeFarm worker - instances.
-- `endpoint` (String)The endpoint of the ComputeFarm that is accessed by the studio component - resource.
+- `active_directory_user` (String) +- `endpoint` (String) @@ -85,8 +76,7 @@ Read-Only: Read-Only: -- `endpoint` (String)The endpoint of the license service that is accessed by the studio component - resource.
+- `endpoint` (String) @@ -94,12 +84,11 @@ Read-Only: Read-Only: -- `endpoint` (String)The endpoint of the shared file system that is accessed by the studio component - resource.
-- `file_system_id` (String)The unique identifier for a file system.
-- `linux_mount_point` (String)The mount location for a shared file system on a Linux virtual workstation.
-- `share_name` (String)The name of the file share.
-- `windows_mount_drive` (String)The mount location for a shared file system on a Windows virtual workstation.
+- `endpoint` (String) +- `file_system_id` (String) +- `linux_mount_point` (String) +- `share_name` (String) +- `windows_mount_drive` (String) @@ -108,11 +97,10 @@ Read-Only: Read-Only: -- `launch_profile_protocol_version` (String)The version number of the protocol that is used by the launch profile. The only valid - version is "2021-03-31".
+- `launch_profile_protocol_version` (String) - `platform` (String) - `run_context` (String) -- `script` (String)The initialization script.
+- `script` (String) @@ -120,5 +108,5 @@ Read-Only: Read-Only: -- `key` (String)A script parameter key.
-- `value` (String)A script parameter value.
+- `key` (String) +- `value` (String) diff --git a/docs/data-sources/rds_db_cluster.md b/docs/data-sources/rds_db_cluster.md index f88a851688..4add00998b 100644 --- a/docs/data-sources/rds_db_cluster.md +++ b/docs/data-sources/rds_db_cluster.md @@ -41,6 +41,7 @@ Data Source schema for AWS::RDS::DBCluster + Must be a value from 1 to 35 Valid for: Aurora DB clusters and Multi-AZ DB clusters +- `cluster_scalability_type` (String) - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. @@ -240,11 +241,11 @@ Data Source schema for AWS::RDS::DBCluster Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies: - + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private. + + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private. + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public. If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies: - + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private. + + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private. + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public. - `read_endpoint` (Attributes) This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a response element in the following actions: + ``CreateDBInstance`` diff --git a/docs/data-sources/rds_db_shard_group.md b/docs/data-sources/rds_db_shard_group.md new file mode 100644 index 0000000000..2a500f0fc1 --- /dev/null +++ b/docs/data-sources/rds_db_shard_group.md @@ -0,0 +1,40 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_rds_db_shard_group Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::RDS::DBShardGroup +--- + +# awscc_rds_db_shard_group (Data Source) + +Data Source schema for AWS::RDS::DBShardGroup + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `compute_redundancy` (Number) Specifies whether to create standby instances for the DB shard group. +- `db_cluster_identifier` (String) The name of the primary DB cluster for the DB shard group. +- `db_shard_group_identifier` (String) The name of the DB shard group. +- `db_shard_group_resource_id` (String) The Amazon Web Services Region-unique, immutable identifier for the DB shard group. +- `endpoint` (String) The connection endpoint for the DB shard group. +- `max_acu` (Number) The maximum capacity of the DB shard group in Aurora capacity units (ACUs). +- `min_acu` (Number) The minimum capacity of the DB shard group in Aurora capacity units (ACUs). +- `publicly_accessible` (Boolean) Indicates whether the DB shard group is publicly accessible. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (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 -. diff --git a/docs/data-sources/rds_db_shard_groups.md b/docs/data-sources/rds_db_shard_groups.md new file mode 100644 index 0000000000..8489da3acb --- /dev/null +++ b/docs/data-sources/rds_db_shard_groups.md @@ -0,0 +1,21 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_rds_db_shard_groups Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Plural Data Source schema for AWS::RDS::DBShardGroup +--- + +# awscc_rds_db_shard_groups (Data Source) + +Plural Data Source schema for AWS::RDS::DBShardGroup + + + + +## Schema + +### Read-Only + +- `id` (String) Uniquely identifies the data source. +- `ids` (Set of String) Set of Resource Identifiers. diff --git a/docs/data-sources/ses_configuration_set.md b/docs/data-sources/ses_configuration_set.md index a15373ae33..59429e0393 100644 --- a/docs/data-sources/ses_configuration_set.md +++ b/docs/data-sources/ses_configuration_set.md @@ -34,6 +34,7 @@ Data Source schema for AWS::SES::ConfigurationSet Read-Only: +- `max_delivery_seconds` (Number) Specifies the maximum time until which SES will retry sending emails - `sending_pool_name` (String) The name of the dedicated IP pool to associate with the configuration set. - `tls_policy` (String) Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is Require , messages are only delivered if a TLS connection can be established. If the value is Optional , messages can be delivered in plain text if a TLS connection can't be established. diff --git a/docs/data-sources/wisdom_ai_agent.md b/docs/data-sources/wisdom_ai_agent.md new file mode 100644 index 0000000000..46c205178c --- /dev/null +++ b/docs/data-sources/wisdom_ai_agent.md @@ -0,0 +1,220 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_agent Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Wisdom::AIAgent +--- + +# awscc_wisdom_ai_agent (Data Source) + +Data Source schema for AWS::Wisdom::AIAgent + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `ai_agent_arn` (String) +- `ai_agent_id` (String) +- `assistant_arn` (String) +- `assistant_id` (String) +- `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) +- `description` (String) +- `name` (String) +- `tags` (Map of String) +- `type` (String) + + +### Nested Schema for `configuration` + +Read-Only: + +- `answer_recommendation_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration)) +- `manual_search_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration` + +Read-Only: + +- `answer_generation_ai_prompt_id` (String) +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations)) +- `intent_labeling_generation_ai_prompt_id` (String) +- `query_reformulation_ai_prompt_id` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations` + +Read-Only: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data` + +Read-Only: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Read-Only: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) + + + + + + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration` + +Read-Only: + +- `answer_generation_ai_prompt_id` (String) +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations` + +Read-Only: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data` + +Read-Only: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Read-Only: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Read-Only: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Read-Only: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Read-Only: + +- `key` (String) +- `value` (String) diff --git a/docs/data-sources/wisdom_ai_agent_version.md b/docs/data-sources/wisdom_ai_agent_version.md new file mode 100644 index 0000000000..83d555cf29 --- /dev/null +++ b/docs/data-sources/wisdom_ai_agent_version.md @@ -0,0 +1,30 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_agent_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Wisdom::AIAgentVersion +--- + +# awscc_wisdom_ai_agent_version (Data Source) + +Data Source schema for AWS::Wisdom::AIAgentVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `ai_agent_arn` (String) +- `ai_agent_id` (String) +- `ai_agent_version_id` (String) +- `assistant_arn` (String) +- `assistant_id` (String) +- `modified_time_seconds` (Number) +- `version_number` (Number) diff --git a/docs/data-sources/wisdom_ai_prompt_version.md b/docs/data-sources/wisdom_ai_prompt_version.md new file mode 100644 index 0000000000..18e9508482 --- /dev/null +++ b/docs/data-sources/wisdom_ai_prompt_version.md @@ -0,0 +1,30 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_prompt_version Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Wisdom::AIPromptVersion +--- + +# awscc_wisdom_ai_prompt_version (Data Source) + +Data Source schema for AWS::Wisdom::AIPromptVersion + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `ai_prompt_arn` (String) +- `ai_prompt_id` (String) +- `ai_prompt_version_id` (String) +- `assistant_arn` (String) +- `assistant_id` (String) +- `modified_time_seconds` (Number) +- `version_number` (Number) diff --git a/docs/resources/apigateway_account.md b/docs/resources/apigateway_account.md index d6c8bcecdb..defd9b8c76 100644 --- a/docs/resources/apigateway_account.md +++ b/docs/resources/apigateway_account.md @@ -17,7 +17,7 @@ The ``AWS::ApiGateway::Account`` resource specifies the IAM role that Amazon API ### Optional -- `cloudwatch_role_arn` (String) The ARN of an Amazon CloudWatch role for the current Account. +- `cloudwatch_role_arn` (String) ### Read-Only diff --git a/docs/resources/apigateway_api_key.md b/docs/resources/apigateway_api_key.md index 38a91209b2..355276c8ba 100644 --- a/docs/resources/apigateway_api_key.md +++ b/docs/resources/apigateway_api_key.md @@ -29,15 +29,15 @@ resource "awscc_apigateway_api_key" "example" { ### Optional -- `customer_id` (String) An MKT customer identifier, when integrating with the AWS SaaS Marketplace. -- `description` (String) The description of the ApiKey. -- `enabled` (Boolean) Specifies whether the ApiKey can be used by callers. -- `generate_distinct_id` (Boolean) Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used. +- `customer_id` (String) +- `description` (String) +- `enabled` (Boolean) +- `generate_distinct_id` (Boolean) - `name` (String) A name for the API key. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the API key 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. -- `stage_keys` (Attributes List) DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key. (see [below for nested schema](#nestedatt--stage_keys)) -- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) -- `value` (String) Specifies a value of the API key. +- `stage_keys` (Attributes List) (see [below for nested schema](#nestedatt--stage_keys)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `value` (String) ### Read-Only @@ -49,8 +49,8 @@ resource "awscc_apigateway_api_key" "example" { Optional: -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `stage_name` (String) The stage name associated with the stage key. +- `rest_api_id` (String) +- `stage_name` (String) diff --git a/docs/resources/apigateway_authorizer.md b/docs/resources/apigateway_authorizer.md index e36197f5e8..e48f7797fa 100644 --- a/docs/resources/apigateway_authorizer.md +++ b/docs/resources/apigateway_authorizer.md @@ -17,19 +17,19 @@ The ``AWS::ApiGateway::Authorizer`` resource creates an authorization layer that ### Required -- `name` (String) The name of the authorizer. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `type` (String) The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool. +- `name` (String) +- `rest_api_id` (String) +- `type` (String) ### Optional -- `auth_type` (String) Optional customer-defined field, used in OpenAPI imports and exports without functional impact. -- `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_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. +- `auth_type` (String) +- `authorizer_credentials` (String) +- `authorizer_result_ttl_in_seconds` (Number) +- `authorizer_uri` (String) +- `identity_source` (String) +- `identity_validation_expression` (String) +- `provider_ar_ns` (Set of String) ### Read-Only diff --git a/docs/resources/apigateway_base_path_mapping.md b/docs/resources/apigateway_base_path_mapping.md index b6caef77a9..762f23abce 100644 --- a/docs/resources/apigateway_base_path_mapping.md +++ b/docs/resources/apigateway_base_path_mapping.md @@ -17,13 +17,13 @@ The ``AWS::ApiGateway::BasePathMapping`` resource creates a base path that clien ### Required -- `domain_name` (String) The domain name of the BasePathMapping resource to be described. +- `domain_name` (String) ### Optional -- `base_path` (String) The base path name that callers of the API must provide as part of the URL after the domain name. -- `rest_api_id` (String) The string identifier of the associated RestApi. -- `stage` (String) The name of the associated stage. +- `base_path` (String) +- `rest_api_id` (String) +- `stage` (String) ### Read-Only diff --git a/docs/resources/apigateway_client_certificate.md b/docs/resources/apigateway_client_certificate.md index 337ffce49e..9ec2a15ffb 100644 --- a/docs/resources/apigateway_client_certificate.md +++ b/docs/resources/apigateway_client_certificate.md @@ -30,8 +30,8 @@ resource "awscc_apigateway_client_certificate" "example" { ### Optional -- `description` (String) The description of the client certificate. -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) +- `description` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/apigateway_deployment.md b/docs/resources/apigateway_deployment.md index c8f6456385..8325d4647f 100644 --- a/docs/resources/apigateway_deployment.md +++ b/docs/resources/apigateway_deployment.md @@ -53,14 +53,14 @@ resource "awscc_apigateway_deployment" "terraform_apigateway_deployment" { ### Required -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `rest_api_id` (String) ### Optional -- `deployment_canary_settings` (Attributes) The input configuration for a canary deployment. (see [below for nested schema](#nestedatt--deployment_canary_settings)) -- `description` (String) The description for the Deployment resource to create. +- `deployment_canary_settings` (Attributes) The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment. (see [below for nested schema](#nestedatt--deployment_canary_settings)) +- `description` (String) - `stage_description` (Attributes) The description of the Stage resource for the Deployment resource to create. To specify a stage description, you must also provide a stage name. (see [below for nested schema](#nestedatt--stage_description)) -- `stage_name` (String) The name of the Stage resource for the Deployment resource to create. +- `stage_name` (String) ### Read-Only @@ -72,9 +72,9 @@ resource "awscc_apigateway_deployment" "terraform_apigateway_deployment" { Optional: -- `percent_traffic` (Number) The percentage (0.0-100.0) of traffic routed to the canary deployment. -- `stage_variable_overrides` (Map of String) A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary release deployment uses the stage cache or not. +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -83,7 +83,7 @@ Optional: Optional: - `access_log_setting` (Attributes) Specifies settings for logging access in this stage. (see [below for nested schema](#nestedatt--stage_description--access_log_setting)) -- `cache_cluster_enabled` (Boolean) Specifies whether a cache cluster is enabled for the stage. +- `cache_cluster_enabled` (Boolean) - `cache_cluster_size` (String) The size of the stage's cache cluster. For more information, see [cacheClusterSize](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateStage.html#apigw-CreateStage-request-cacheClusterSize) in the *API Gateway API Reference*. - `cache_data_encrypted` (Boolean) Indicates whether the cached responses are encrypted. - `cache_ttl_in_seconds` (Number) The time-to-live (TTL) period, in seconds, that specifies how long API Gateway caches responses. @@ -108,8 +108,8 @@ Optional: Optional: -- `destination_arn` (String) The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``. -- `format` (String) A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``. +- `destination_arn` (String) +- `format` (String) @@ -117,9 +117,9 @@ Optional: Optional: -- `percent_traffic` (Number) The percent (0-100) of traffic diverted to a canary deployment. -- `stage_variable_overrides` (Map of String) Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary deployment uses the stage cache or not. +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -127,16 +127,16 @@ Optional: Optional: -- `cache_data_encrypted` (Boolean) Specifies whether the cached responses are encrypted. -- `cache_ttl_in_seconds` (Number) Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. -- `caching_enabled` (Boolean) Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached. -- `data_trace_enabled` (Boolean) Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. +- `cache_data_encrypted` (Boolean) +- `cache_ttl_in_seconds` (Number) +- `caching_enabled` (Boolean) +- `data_trace_enabled` (Boolean) - `http_method` (String) The HTTP method. -- `logging_level` (String) Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events. -- `metrics_enabled` (Boolean) Specifies whether Amazon CloudWatch metrics are enabled for this method. +- `logging_level` (String) +- `metrics_enabled` (Boolean) - `resource_path` (String) The resource path for this method. Forward slashes (``/``) are encoded as ``~1`` and the initial slash must include a forward slash. For example, the path value ``/resource/subresource`` must be encoded as ``/~1resource~1subresource``. To specify the root path, use only a slash (``/``). -- `throttling_burst_limit` (Number) Specifies the throttling burst limit. -- `throttling_rate_limit` (Number) Specifies the throttling rate limit. +- `throttling_burst_limit` (Number) +- `throttling_rate_limit` (Number) diff --git a/docs/resources/apigateway_documentation_part.md b/docs/resources/apigateway_documentation_part.md index e4f57b51ab..41e6dc1906 100644 --- a/docs/resources/apigateway_documentation_part.md +++ b/docs/resources/apigateway_documentation_part.md @@ -61,9 +61,10 @@ resource "awscc_apigateway_rest_api" "example" { ### Required -- `location` (Attributes) The location of the targeted API entity of the to-be-created documentation part. (see [below for nested schema](#nestedatt--location)) -- `properties` (String) The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `location` (Attributes) The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource. + For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*. (see [below for nested schema](#nestedatt--location)) +- `properties` (String) +- `rest_api_id` (String) ### Read-Only @@ -75,11 +76,11 @@ resource "awscc_apigateway_rest_api" "example" { Optional: -- `method` (String) The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly. -- `name` (String) The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type. -- `path` (String) The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix. -- `status_code` (String) The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly. -- `type` (String) The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type. +- `method` (String) +- `name` (String) +- `path` (String) +- `status_code` (String) +- `type` (String) ## Import diff --git a/docs/resources/apigateway_documentation_version.md b/docs/resources/apigateway_documentation_version.md index 8763ffcde9..4f6a1af83f 100644 --- a/docs/resources/apigateway_documentation_version.md +++ b/docs/resources/apigateway_documentation_version.md @@ -43,12 +43,12 @@ resource "awscc_apigateway_rest_api" "example" { ### Required -- `documentation_version` (String) The version identifier of the to-be-updated documentation version. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `documentation_version` (String) +- `rest_api_id` (String) ### Optional -- `description` (String) A description about the new documentation snapshot. +- `description` (String) ### Read-Only diff --git a/docs/resources/apigateway_gateway_response.md b/docs/resources/apigateway_gateway_response.md index d93868f855..b85f841256 100644 --- a/docs/resources/apigateway_gateway_response.md +++ b/docs/resources/apigateway_gateway_response.md @@ -50,14 +50,14 @@ resource "awscc_apigateway_gateway_response" "example" { ### Required -- `response_type` (String) The response type of the associated GatewayResponse. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `response_type` (String) +- `rest_api_id` (String) ### Optional -- `response_parameters` (Map of String) Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs. -- `response_templates` (Map of String) Response templates of the GatewayResponse as a string-to-string map of key-value pairs. -- `status_code` (String) The HTTP status code for this GatewayResponse. +- `response_parameters` (Map of String) +- `response_templates` (Map of String) +- `status_code` (String) ### Read-Only diff --git a/docs/resources/apigateway_method.md b/docs/resources/apigateway_method.md index db8f3582d0..fc77d86976 100644 --- a/docs/resources/apigateway_method.md +++ b/docs/resources/apigateway_method.md @@ -124,23 +124,23 @@ resource "awscc_apigateway_method" "terraform_apigateway_method" { ### Required -- `http_method` (String) The method's HTTP verb. -- `resource_id` (String) The Resource identifier for the MethodResponse resource. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `http_method` (String) +- `resource_id` (String) +- `rest_api_id` (String) ### Optional -- `api_key_required` (Boolean) A boolean flag specifying whether a valid ApiKey is required to invoke this method. -- `authorization_scopes` (List of String) A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes. +- `api_key_required` (Boolean) +- `authorization_scopes` (List of String) - `authorization_type` (String) The method's authorization type. This parameter is required. For valid values, see [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html) in the *API Gateway API Reference*. If you specify the ``AuthorizerId`` property, specify ``CUSTOM`` or ``COGNITO_USER_POOLS`` for this property. -- `authorizer_id` (String) The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``. -- `integration` (Attributes) Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration. (see [below for nested schema](#nestedatt--integration)) -- `method_responses` (Attributes List) Gets a method response associated with a given HTTP status code. (see [below for nested schema](#nestedatt--method_responses)) -- `operation_name` (String) A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example. -- `request_models` (Map of String) A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key). -- `request_parameters` (Map of Boolean) A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates. -- `request_validator_id` (String) The identifier of a RequestValidator for request validation. +- `authorizer_id` (String) +- `integration` (Attributes) ``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls. (see [below for nested schema](#nestedatt--integration)) +- `method_responses` (Attributes List) (see [below for nested schema](#nestedatt--method_responses)) +- `operation_name` (String) +- `request_models` (Map of String) +- `request_parameters` (Map of Boolean) +- `request_validator_id` (String) ### Read-Only @@ -151,35 +151,31 @@ resource "awscc_apigateway_method" "terraform_apigateway_method" { Optional: -- `cache_key_parameters` (List of String) A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``. -- `cache_namespace` (String) Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources. -- `connection_id` (String) The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise. -- `connection_type` (String) The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``. -- `content_handling` (String) Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors: - If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through. -- `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. -- `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}`` +- `cache_key_parameters` (List of String) +- `cache_namespace` (String) +- `connection_id` (String) +- `connection_type` (String) +- `content_handling` (String) +- `credentials` (String) +- `integration_http_method` (String) +- `integration_responses` (Attributes List) (see [below for nested schema](#nestedatt--integration--integration_responses)) +- `passthrough_behavior` (String) +- `request_parameters` (Map of String) +- `request_templates` (Map of String) +- `timeout_in_millis` (Number) +- `type` (String) +- `uri` (String) ### Nested Schema for `integration.integration_responses` Optional: -- `content_handling` (String) Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors: - If this property is not defined, the response payload will be passed through from the integration response to the method response without modification. -- `response_parameters` (Map of String) A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix. -- `response_templates` (Map of String) Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value. -- `selection_pattern` (String) Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched. -- `status_code` (String) Specifies the status code that is used to map the integration response to an existing MethodResponse. +- `content_handling` (String) +- `response_parameters` (Map of String) +- `response_templates` (Map of String) +- `selection_pattern` (String) +- `status_code` (String) @@ -188,9 +184,9 @@ Optional: Optional: -- `response_models` (Map of String) Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value. -- `response_parameters` (Map of Boolean) A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.) -- `status_code` (String) The method response's status code. +- `response_models` (Map of String) +- `response_parameters` (Map of Boolean) +- `status_code` (String) ## Import diff --git a/docs/resources/apigateway_model.md b/docs/resources/apigateway_model.md index 472219a4c6..763c707004 100644 --- a/docs/resources/apigateway_model.md +++ b/docs/resources/apigateway_model.md @@ -34,15 +34,15 @@ resource "awscc_apigateway_rest_api" "example" { ### Required -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `rest_api_id` (String) ### Optional -- `content_type` (String) The content-type for the model. -- `description` (String) The description of the model. +- `content_type` (String) +- `description` (String) - `name` (String) A name for the model. If you don't specify a name, CFN generates a unique physical ID and uses that ID for the model 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. -- `schema` (String) The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include "\*/" characters in the description of any properties because such "\*/" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail. +- `schema` (String) ### Read-Only diff --git a/docs/resources/apigateway_request_validator.md b/docs/resources/apigateway_request_validator.md index 649354e7e2..2d68aefa2e 100644 --- a/docs/resources/apigateway_request_validator.md +++ b/docs/resources/apigateway_request_validator.md @@ -31,13 +31,13 @@ resource "awscc_apigateway_request_validator" "example" { ### Required -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `rest_api_id` (String) ### Optional -- `name` (String) The name of this RequestValidator -- `validate_request_body` (Boolean) A Boolean flag to indicate whether to validate a request body according to the configured Model schema. -- `validate_request_parameters` (Boolean) A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``). +- `name` (String) +- `validate_request_body` (Boolean) +- `validate_request_parameters` (Boolean) ### Read-Only diff --git a/docs/resources/apigateway_resource.md b/docs/resources/apigateway_resource.md index 19b1a01bf1..0730b901cc 100644 --- a/docs/resources/apigateway_resource.md +++ b/docs/resources/apigateway_resource.md @@ -52,9 +52,9 @@ resource "awscc_apigateway_resource" "DemoAPIGatewayResource" { ### Required -- `parent_id` (String) The parent resource's identifier. -- `path_part` (String) The last path segment for this resource. -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `parent_id` (String) +- `path_part` (String) +- `rest_api_id` (String) ### Read-Only diff --git a/docs/resources/apigateway_rest_api.md b/docs/resources/apigateway_rest_api.md index cb778a3f44..ae3a40d542 100644 --- a/docs/resources/apigateway_rest_api.md +++ b/docs/resources/apigateway_rest_api.md @@ -102,16 +102,16 @@ resource "awscc_apigateway_stage" "example" { ### Optional -- `api_key_source_type` (String) The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer. -- `binary_media_types` (List of String) The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads. +- `api_key_source_type` (String) +- `binary_media_types` (List of String) - `body` (String) An OpenAPI specification that defines a set of RESTful APIs in JSON format. For YAML templates, you can also provide the specification in YAML format. - `body_s3_location` (Attributes) The Amazon Simple Storage Service (Amazon S3) location that points to an OpenAPI file, which defines a set of RESTful APIs in JSON or YAML format. (see [below for nested schema](#nestedatt--body_s3_location)) -- `clone_from` (String) The ID of the RestApi that you want to clone from. -- `description` (String) The description of the RestApi. -- `disable_execute_api_endpoint` (Boolean) Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint +- `clone_from` (String) +- `description` (String) +- `disable_execute_api_endpoint` (Boolean) - `endpoint_configuration` (Attributes) A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property. (see [below for nested schema](#nestedatt--endpoint_configuration)) -- `fail_on_warnings` (Boolean) A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``. -- `minimum_compression_size` (Number) A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size. +- `fail_on_warnings` (Boolean) +- `minimum_compression_size` (Number) - `mode` (String) This property applies only when you use OpenAPI to define your REST API. The ``Mode`` determines how API Gateway handles resource updates. Valid values are ``overwrite`` or ``merge``. For ``overwrite``, the new API definition replaces the existing one. The existing API identifier remains unchanged. @@ -119,9 +119,9 @@ resource "awscc_apigateway_stage" "example" { If you don't specify this property, a default value is chosen. For REST APIs created before March 29, 2021, the default is ``overwrite``. For REST APIs created after March 29, 2021, the new API definition takes precedence, but any container types such as endpoint configurations and binary media types are merged with the existing API. Use the default mode to define top-level ``RestApi`` properties in addition to using OpenAPI. Generally, it's preferred to use API Gateway's OpenAPI extensions to model these properties. - `name` (String) The name of the RestApi. A name is required if the REST API is not based on an OpenAPI specification. -- `parameters` (String) Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``. +- `parameters` (String) - `policy` (String) A policy document that contains the permissions for the ``RestApi`` resource. To set the ARN for the policy, use the ``!Join`` intrinsic function with ``""`` as delimiter and values of ``"execute-api:/"`` and ``"*"``. -- `tags` (Attributes List) The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters. (see [below for nested schema](#nestedatt--tags)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -145,8 +145,8 @@ Optional: Optional: -- `types` (List of String) A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``"EDGE"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``. -- `vpc_endpoint_ids` (List of String) A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type. +- `types` (List of String) +- `vpc_endpoint_ids` (List of String) diff --git a/docs/resources/apigateway_stage.md b/docs/resources/apigateway_stage.md index fd449af3d4..9d99a71d16 100644 --- a/docs/resources/apigateway_stage.md +++ b/docs/resources/apigateway_stage.md @@ -79,22 +79,23 @@ resource "awscc_apigateway_rest_api" "example" { ### Required -- `rest_api_id` (String) The string identifier of the associated RestApi. +- `rest_api_id` (String) ### Optional -- `access_log_setting` (Attributes) Access log settings, including the access log format and access log destination ARN. (see [below for nested schema](#nestedatt--access_log_setting)) -- `cache_cluster_enabled` (Boolean) Specifies whether a cache cluster is enabled for the stage. -- `cache_cluster_size` (String) The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html). -- `canary_setting` (Attributes) Settings for the canary deployment in this stage. (see [below for nested schema](#nestedatt--canary_setting)) -- `client_certificate_id` (String) The identifier of a client certificate for an API stage. -- `deployment_id` (String) The identifier of the Deployment that the stage points to. -- `description` (String) The stage's description. -- `documentation_version` (String) The version of the associated API documentation. -- `method_settings` (Attributes Set) A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\*/\*`` for overriding all methods in the stage. (see [below for nested schema](#nestedatt--method_settings)) -- `stage_name` (String) The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters. -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) -- `tracing_enabled` (Boolean) Specifies whether active tracing with X-ray is enabled for the Stage. +- `access_log_setting` (Attributes) The ``AccessLogSetting`` property type specifies settings for logging access in this stage. + ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource. (see [below for nested schema](#nestedatt--access_log_setting)) +- `cache_cluster_enabled` (Boolean) +- `cache_cluster_size` (String) +- `canary_setting` (Attributes) (see [below for nested schema](#nestedatt--canary_setting)) +- `client_certificate_id` (String) +- `deployment_id` (String) +- `description` (String) +- `documentation_version` (String) +- `method_settings` (Attributes Set) (see [below for nested schema](#nestedatt--method_settings)) +- `stage_name` (String) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `tracing_enabled` (Boolean) - `variables` (Map of String) A map (string-to-string map) that defines the stage variables, where the variable name is the key and the variable value is the value. Variable names are limited to alphanumeric characters. Values must match the following regular expression: ``[A-Za-z0-9-._~:/?#&=,]+``. ### Read-Only @@ -115,10 +116,10 @@ Optional: Optional: -- `deployment_id` (String) The ID of the canary deployment. -- `percent_traffic` (Number) The percent (0-100) of traffic diverted to a canary deployment. -- `stage_variable_overrides` (Map of String) Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values. -- `use_stage_cache` (Boolean) A Boolean flag to indicate whether the canary deployment uses the stage cache or not. +- `deployment_id` (String) +- `percent_traffic` (Number) +- `stage_variable_overrides` (Map of String) +- `use_stage_cache` (Boolean) @@ -126,16 +127,16 @@ Optional: Optional: -- `cache_data_encrypted` (Boolean) Specifies whether the cached responses are encrypted. -- `cache_ttl_in_seconds` (Number) Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached. -- `caching_enabled` (Boolean) Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached. -- `data_trace_enabled` (Boolean) Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs. +- `cache_data_encrypted` (Boolean) +- `cache_ttl_in_seconds` (Number) +- `caching_enabled` (Boolean) +- `data_trace_enabled` (Boolean) - `http_method` (String) The HTTP method. To apply settings to multiple resources and methods, specify an asterisk (``*``) for the ``HttpMethod`` and ``/*`` for the ``ResourcePath``. This parameter is required when you specify a ``MethodSetting``. -- `logging_level` (String) Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events. -- `metrics_enabled` (Boolean) Specifies whether Amazon CloudWatch metrics are enabled for this method. +- `logging_level` (String) +- `metrics_enabled` (Boolean) - `resource_path` (String) The resource path for this method. Forward slashes (``/``) are encoded as ``~1`` and the initial slash must include a forward slash. For example, the path value ``/resource/subresource`` must be encoded as ``/~1resource~1subresource``. To specify the root path, use only a slash (``/``). To apply settings to multiple resources and methods, specify an asterisk (``*``) for the ``HttpMethod`` and ``/*`` for the ``ResourcePath``. This parameter is required when you specify a ``MethodSetting``. -- `throttling_burst_limit` (Number) Specifies the throttling burst limit. -- `throttling_rate_limit` (Number) Specifies the throttling rate limit. +- `throttling_burst_limit` (Number) +- `throttling_rate_limit` (Number) diff --git a/docs/resources/apigateway_usage_plan.md b/docs/resources/apigateway_usage_plan.md index 8ca99d9462..cd701d4e5d 100644 --- a/docs/resources/apigateway_usage_plan.md +++ b/docs/resources/apigateway_usage_plan.md @@ -82,12 +82,13 @@ resource "awscc_apigateway_rest_api" "example" { ### Optional -- `api_stages` (Attributes List) The associated API stages of a usage plan. (see [below for nested schema](#nestedatt--api_stages)) -- `description` (String) The description of a usage plan. -- `quota` (Attributes) The target maximum number of permitted requests per a given unit time interval. (see [below for nested schema](#nestedatt--quota)) -- `tags` (Attributes List) The collection of tags. Each tag element is associated with a given resource. (see [below for nested schema](#nestedatt--tags)) -- `throttle` (Attributes) A map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--throttle)) -- `usage_plan_name` (String) The name of a usage plan. +- `api_stages` (Attributes List) (see [below for nested schema](#nestedatt--api_stages)) +- `description` (String) +- `quota` (Attributes) ``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs. + In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests. (see [below for nested schema](#nestedatt--quota)) +- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags)) +- `throttle` (Attributes) ``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs. (see [below for nested schema](#nestedatt--throttle)) +- `usage_plan_name` (String) ### Read-Only @@ -99,17 +100,17 @@ resource "awscc_apigateway_rest_api" "example" { Optional: -- `api_id` (String) API Id of the associated API stage in a usage plan. -- `stage` (String) API stage name of the associated API stage in a usage plan. -- `throttle` (Attributes Map) Map containing method level throttling information for API stage in a usage plan. (see [below for nested schema](#nestedatt--api_stages--throttle)) +- `api_id` (String) +- `stage` (String) +- `throttle` (Attributes Map) (see [below for nested schema](#nestedatt--api_stages--throttle)) ### Nested Schema for `api_stages.throttle` Optional: -- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. -- `rate_limit` (Number) The API target request rate limit. +- `burst_limit` (Number) +- `rate_limit` (Number) @@ -118,9 +119,9 @@ Optional: Optional: -- `limit` (Number) The target maximum number of requests that can be made in a given time period. -- `offset` (Number) The number of requests subtracted from the given limit in the initial time period. -- `period` (String) The time period in which the limit applies. Valid values are "DAY", "WEEK" or "MONTH". +- `limit` (Number) +- `offset` (Number) +- `period` (String) @@ -137,8 +138,8 @@ Optional: Optional: -- `burst_limit` (Number) The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit. -- `rate_limit` (Number) The API target request rate limit. +- `burst_limit` (Number) +- `rate_limit` (Number) ## Import diff --git a/docs/resources/apigateway_usage_plan_key.md b/docs/resources/apigateway_usage_plan_key.md index ecd9a81e7a..3b64c3988b 100644 --- a/docs/resources/apigateway_usage_plan_key.md +++ b/docs/resources/apigateway_usage_plan_key.md @@ -91,7 +91,7 @@ resource "awscc_apigateway_rest_api" "example" { ### Required - `key_id` (String) The Id of the UsagePlanKey resource. -- `key_type` (String) The type of a UsagePlanKey resource for a plan customer. +- `key_type` (String) - `usage_plan_id` (String) The Id of the UsagePlan resource representing the usage plan containing the UsagePlanKey resource representing a plan customer. ### Read-Only diff --git a/docs/resources/appsync_api.md b/docs/resources/appsync_api.md index 9b73a2e28c..d41ddfca5f 100644 --- a/docs/resources/appsync_api.md +++ b/docs/resources/appsync_api.md @@ -29,7 +29,7 @@ Resource schema for AppSync Api - `api_arn` (String) The Amazon Resource Name (ARN) of the AppSync Api - `api_id` (String) The unique identifier for the AppSync Api generated by the service -- `dns` (Map of String) A map of DNS names for the AppSync API. +- `dns` (Attributes) A map of DNS names for the AppSync API. (see [below for nested schema](#nestedatt--dns)) - `id` (String) Uniquely identifies the resource. @@ -127,6 +127,15 @@ Optional: - `key` (String) A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. - `value` (String) A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. + + +### Nested Schema for `dns` + +Read-Only: + +- `http` (String) +- `realtime` (String) + ## Import Import is supported using the following syntax: diff --git a/docs/resources/appsync_channel_namespace.md b/docs/resources/appsync_channel_namespace.md new file mode 100644 index 0000000000..27b89fc405 --- /dev/null +++ b/docs/resources/appsync_channel_namespace.md @@ -0,0 +1,66 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_appsync_channel_namespace Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource schema for AppSync ChannelNamespace +--- + +# awscc_appsync_channel_namespace (Resource) + +Resource schema for AppSync ChannelNamespace + + + + +## Schema + +### Required + +- `api_id` (String) AppSync Api Id that this Channel Namespace belongs to. +- `name` (String) Namespace indentifier. + +### Optional + +- `code_handlers` (String) String of APPSYNC_JS code to be used by the handlers. +- `code_s3_location` (String) The Amazon S3 endpoint where the code is located. +- `publish_auth_modes` (Attributes List) List of AuthModes supported for Publish operations. (see [below for nested schema](#nestedatt--publish_auth_modes)) +- `subscribe_auth_modes` (Attributes List) List of AuthModes supported for Subscribe operations. (see [below for nested schema](#nestedatt--subscribe_auth_modes)) +- `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this AppSync API. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `channel_namespace_arn` (String) The Amazon Resource Name (ARN) for the Channel Namespace. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `publish_auth_modes` + +Optional: + +- `auth_type` (String) Security configuration for your AppSync API. + + + +### Nested Schema for `subscribe_auth_modes` + +Optional: + +- `auth_type` (String) Security configuration for your AppSync API. + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) A string used to identify this tag. You can specify a maximum of 128 characters for a tag key. +- `value` (String) A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_appsync_channel_namespace.example "channel_namespace_arn" +``` diff --git a/docs/resources/autoscaling_auto_scaling_group.md b/docs/resources/autoscaling_auto_scaling_group.md index f266dffe23..51d27fbe0a 100644 --- a/docs/resources/autoscaling_auto_scaling_group.md +++ b/docs/resources/autoscaling_auto_scaling_group.md @@ -158,6 +158,7 @@ data "aws_ami" "amazon_linux" { - `auto_scaling_group_name` (String) The name of the Auto Scaling group. This name must be unique per Region per account. The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters. You cannot use a colon (:) in the name. +- `availability_zone_distribution` (Attributes) (see [below for nested schema](#nestedatt--availability_zone_distribution)) - `availability_zones` (List of String) A list of Availability Zones where instances in the Auto Scaling group can be created. Used for launching into the default VPC subnet in each Availability Zone when not using the ``VPCZoneIdentifier`` property, or for attaching a network interface when an existing network interface ID is specified in a launch template. - `capacity_rebalance` (Boolean) Indicates whether Capacity Rebalancing is enabled. Otherwise, Capacity Rebalancing is disabled. When you turn on Capacity Rebalancing, Amazon EC2 Auto Scaling attempts to launch a Spot Instance whenever Amazon EC2 notifies that a Spot Instance is at an elevated risk of interruption. After launching a new instance, it then terminates an old instance. For more information, see [Use Capacity Rebalancing to handle Amazon EC2 Spot Interruptions](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html) in the in the *Amazon EC2 Auto Scaling User Guide*. - `context` (String) Reserved. @@ -205,7 +206,7 @@ data "aws_ami" "amazon_linux" { - `target_group_ar_ns` (List of String) The Amazon Resource Names (ARN) of the Elastic Load Balancing target groups to associate with the Auto Scaling group. Instances are registered as targets with the target groups. The target groups receive incoming traffic and route requests to one or more registered targets. For more information, see [Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group](https://docs.aws.amazon.com/autoscaling/ec2/userguide/autoscaling-load-balancer.html) in the *Amazon EC2 Auto Scaling User Guide*. - `termination_policies` (List of String) A policy or a list of policies that are used to select the instance to terminate. These policies are executed in the order that you list them. For more information, see [Configure termination policies for Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-termination-policies.html) in the *Amazon EC2 Auto Scaling User Guide*. Valid values: ``Default`` | ``AllocationStrategy`` | ``ClosestToNextInstanceHour`` | ``NewestInstance`` | ``OldestInstance`` | ``OldestLaunchConfiguration`` | ``OldestLaunchTemplate`` | ``arn:aws:lambda:region:account-id:function:my-function:my-alias`` -- `traffic_sources` (Attributes Set) (see [below for nested schema](#nestedatt--traffic_sources)) +- `traffic_sources` (Attributes Set) The traffic sources associated with this Auto Scaling group. (see [below for nested schema](#nestedatt--traffic_sources)) - `vpc_zone_identifier` (List of String) A list of subnet IDs for a virtual private cloud (VPC) where instances in the Auto Scaling group can be created. If this resource specifies public subnets and is also in a VPC that is defined in the same stack template, you must use the [DependsOn attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html) to declare a dependency on the [VPC-gateway attachment](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-vpc-gateway-attachment.html). When you update ``VPCZoneIdentifier``, this retains the same Auto Scaling group and replaces old instances with new ones, according to the specified subnets. You can optionally specify how CloudFormation handles these updates by using an [UpdatePolicy attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-updatepolicy.html). @@ -215,6 +216,14 @@ data "aws_ami" "amazon_linux" { - `id` (String) Uniquely identifies the resource. + +### Nested Schema for `availability_zone_distribution` + +Optional: + +- `capacity_distribution_strategy` (String) + + ### Nested Schema for `instance_maintenance_policy` @@ -598,8 +607,22 @@ Optional: Optional: -- `identifier` (String) -- `type` (String) +- `identifier` (String) Identifies the traffic source. + For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region. + For example: + + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` + + Classic Load Balancer name: ``my-classic-load-balancer`` + + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` + + To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations. + To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation. +- `type` (String) Provides additional context for the value of ``Identifier``. + The following lists the valid values: + + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer. + + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group. + + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group. + + Required if the identifier is the name of a Classic Load Balancer. ## Import diff --git a/docs/resources/bedrock_application_inference_profile.md b/docs/resources/bedrock_application_inference_profile.md new file mode 100644 index 0000000000..99851c576b --- /dev/null +++ b/docs/resources/bedrock_application_inference_profile.md @@ -0,0 +1,71 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_bedrock_application_inference_profile Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type +--- + +# awscc_bedrock_application_inference_profile (Resource) + +Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type + + + + +## Schema + +### Required + +- `inference_profile_name` (String) + +### Optional + +- `description` (String) Description of the inference profile +- `model_source` (Attributes) Various ways to encode a list of models in a CreateInferenceProfile request (see [below for nested schema](#nestedatt--model_source)) +- `tags` (Attributes List) List of Tags (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `created_at` (String) Time Stamp +- `id` (String) Uniquely identifies the resource. +- `inference_profile_arn` (String) +- `inference_profile_id` (String) +- `inference_profile_identifier` (String) Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs. +- `models` (Attributes List) List of model configuration (see [below for nested schema](#nestedatt--models)) +- `status` (String) Status of the Inference Profile +- `type` (String) Type of the Inference Profile +- `updated_at` (String) Time Stamp + + +### Nested Schema for `model_source` + +Optional: + +- `copy_from` (String) Source arns for a custom inference profile to copy its regional load balancing config from. This +can either be a foundation model or predefined inference profile ARN. + + + +### Nested Schema for `tags` + +Optional: + +- `key` (String) Tag Key +- `value` (String) Tag Value + + + +### Nested Schema for `models` + +Read-Only: + +- `model_arn` (String) ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_bedrock_application_inference_profile.example "inference_profile_identifier" +``` diff --git a/docs/resources/bedrock_prompt_version.md b/docs/resources/bedrock_prompt_version.md index d73cdfe3a5..872ad8a5ef 100644 --- a/docs/resources/bedrock_prompt_version.md +++ b/docs/resources/bedrock_prompt_version.md @@ -85,7 +85,7 @@ resource "awscc_bedrock_prompt" "example" { Read-Only: - `inference_configuration` (Attributes) Model inference configuration (see [below for nested schema](#nestedatt--variants--inference_configuration)) -- `model_id` (String) ARN or name of a Bedrock model. +- `model_id` (String) ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models. - `name` (String) Name for a variant. - `template_configuration` (Attributes) Prompt template configuration (see [below for nested schema](#nestedatt--variants--template_configuration)) - `template_type` (String) Prompt template type @@ -105,7 +105,6 @@ Read-Only: - `max_tokens` (Number) Maximum length of output - `stop_sequences` (List of String) List of stop sequences - `temperature` (Number) Controls randomness, higher values increase diversity -- `top_k` (Number) Sample from the k most likely next tokens - `top_p` (Number) Cumulative probability cutoff for token selection diff --git a/docs/resources/cleanrooms_collaboration.md b/docs/resources/cleanrooms_collaboration.md index ba01b4d533..b2cce3d732 100644 --- a/docs/resources/cleanrooms_collaboration.md +++ b/docs/resources/cleanrooms_collaboration.md @@ -58,6 +58,7 @@ resource "awscc_cleanrooms_collaboration" "example" { ### Optional +- `analytics_engine` (String) - `creator_payment_configuration` (Attributes) (see [below for nested schema](#nestedatt--creator_payment_configuration)) - `data_encryption_metadata` (Attributes) (see [below for nested schema](#nestedatt--data_encryption_metadata)) - `tags` (Attributes Set) An arbitrary set of tags (key-value pairs) for this cleanrooms collaboration. (see [below for nested schema](#nestedatt--tags)) diff --git a/docs/resources/cleanrooms_membership.md b/docs/resources/cleanrooms_membership.md index 562cb481a5..997ca26f71 100644 --- a/docs/resources/cleanrooms_membership.md +++ b/docs/resources/cleanrooms_membership.md @@ -57,6 +57,7 @@ Optional: - `bucket` (String) - `key_prefix` (String) - `result_format` (String) +- `single_file_output` (Boolean) diff --git a/docs/resources/datasync_task.md b/docs/resources/datasync_task.md index 61b69340ba..982e6c0bda 100644 --- a/docs/resources/datasync_task.md +++ b/docs/resources/datasync_task.md @@ -30,6 +30,7 @@ Resource schema for AWS::DataSync::Task. - `options` (Attributes) Represents the options that are available to control the behavior of a StartTaskExecution operation. (see [below for nested schema](#nestedatt--options)) - `schedule` (Attributes) Specifies the schedule you want your task to use for repeated executions. (see [below for nested schema](#nestedatt--schedule)) - `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `task_mode` (String) Specifies the task mode for the task. - `task_report_config` (Attributes) Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer. (see [below for nested schema](#nestedatt--task_report_config)) ### Read-Only diff --git a/docs/resources/ec2_launch_template.md b/docs/resources/ec2_launch_template.md index 453a8040e8..ab8130e699 100644 --- a/docs/resources/ec2_launch_template.md +++ b/docs/resources/ec2_launch_template.md @@ -126,7 +126,7 @@ resource "awscc_ec2_launch_template" "with eip" { - `launch_template_name` (String) A name for the launch template. - `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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) + To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). (see [below for nested schema](#nestedatt--tag_specifications)) - `version_description` (String) A description for the first version of the launch template. ### Read-Only @@ -150,7 +150,8 @@ Optional: - `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. +- `elastic_inference_accelerators` (Attributes List) Amazon Elastic Inference is no longer available. + 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*. @@ -177,7 +178,7 @@ Optional: If you specify ``InstanceRequirements``, you can't specify ``InstanceType``. Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``. - For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) + For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*. (see [below for nested schema](#nestedatt--launch_template_data--instance_requirements)) - `instance_type` (String) The instance type. For more information, see [Amazon EC2 instance types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html) in the *Amazon EC2 User Guide*. If you specify ``InstanceType``, you can't specify ``InstanceRequirements``. - `kernel_id` (String) The ID of the kernel. @@ -197,8 +198,7 @@ Optional: If you specify a network interface, you must specify any security groups as part of the network interface instead. - `security_groups` (List of String) The names of the security groups. For a nondefault VPC, you must use security group IDs instead. If you specify a network interface, you must specify any security groups as part of the network interface instead of using this parameter. -- `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). +- `tag_specifications` (Attributes List) The tags to apply to resources that are created during instance launch. 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 Amazon EC2 instance at launch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) in the *Amazon EC2 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*. @@ -228,7 +228,7 @@ Optional: 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. +- `kms_key_id` (String) Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS 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. Valid Range: Minimum value of 125. Maximum value of 1000. @@ -388,7 +388,6 @@ Optional: - `accelerator_types` (List of String) The accelerator types that must be on the instance type. + 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. @@ -609,9 +608,10 @@ Optional: - `device_index` (Number) The device index for the network interface attachment. Each network interface requires a device index. If you create a launch template that includes secondary network interfaces but not a primary network interface, then you must add a primary network interface as a launch parameter when you launch an instance from the template. - `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. 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 EC2 User Guide*. +- `interface_type` (String) The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*. If you are not creating an EFA, specify ``interface`` or omit this parameter. - Valid values: ``interface`` | ``efa`` + If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses. + Valid values: ``interface`` | ``efa`` | ``efa-only`` - `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. diff --git a/docs/resources/ec2_security_group_vpc_association.md b/docs/resources/ec2_security_group_vpc_association.md new file mode 100644 index 0000000000..cf48dbdad7 --- /dev/null +++ b/docs/resources/ec2_security_group_vpc_association.md @@ -0,0 +1,36 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_ec2_security_group_vpc_association Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource +--- + +# awscc_ec2_security_group_vpc_association (Resource) + +Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource + + + + +## Schema + +### Required + +- `group_id` (String) The group ID of the specified security group. +- `vpc_id` (String) The ID of the VPC in the security group vpc association. + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `state` (String) The state of the security group vpc association. +- `state_reason` (String) The reason for the state of the security group vpc association. +- `vpc_owner_id` (String) The owner of the VPC in the security group vpc association. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_ec2_security_group_vpc_association.example "group_id|vpc_id" +``` diff --git a/docs/resources/ecs_service.md b/docs/resources/ecs_service.md index 4b91247f16..c21e184f00 100644 --- a/docs/resources/ecs_service.md +++ b/docs/resources/ecs_service.md @@ -73,7 +73,7 @@ resource "awscc_ecs_service" "nginx" { If a ``capacityProviderStrategy`` is specified, the ``launchType`` parameter must be omitted. If no ``capacityProviderStrategy`` or ``launchType`` is specified, the ``defaultCapacityProviderStrategy`` for the cluster is used. A capacity provider strategy may contain a maximum of 6 capacity providers. (see [below for nested schema](#nestedatt--capacity_provider_strategy)) - `cluster` (String) The short name or full Amazon Resource Name (ARN) of the cluster that you run your service on. If you do not specify a cluster, the default cluster is assumed. -- `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks. (see [below for nested schema](#nestedatt--deployment_configuration)) +- `deployment_configuration` (Attributes) Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods. (see [below for nested schema](#nestedatt--deployment_configuration)) - `deployment_controller` (Attributes) The deployment controller to use for the service. If no deployment controller is specified, the default value of ``ECS`` is used. (see [below for nested schema](#nestedatt--deployment_controller)) - `desired_count` (Number) The number of instantiations of the specified task definition to place and keep running in your service. For new services, if a desired count is not specified, a default value of ``1`` is used. When using the ``DAEMON`` scheduling strategy, the desired count is not required. @@ -204,7 +204,7 @@ Optional: - `container_name` (String) The name of the container (as it appears in a container definition) to associate with the load balancer. You need to specify the container name when configuring the target group for an Amazon ECS load balancer. - `container_port` (Number) The port on the container to associate with the load balancer. This port must correspond to a ``containerPort`` in the task definition the tasks in the service are using. For tasks that use the EC2 launch type, the container instance they're launched on must allow ingress traffic on the ``hostPort`` of the port mapping. -- `load_balancer_name` (String) The name of the load balancer to associate with the Amazon ECS service or task set. +- `load_balancer_name` (String) The name of the load balancer to associate with the service or task set. If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted. - `target_group_arn` (String) The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set. A target group ARN is only specified when using an Application Load Balancer or Network Load Balancer. @@ -402,8 +402,9 @@ Optional: Optional: - `encrypted` (Boolean) Indicates whether the volume should be encrypted. If no value is specified, encryption is turned on by default. This parameter maps 1:1 with the ``Encrypted`` parameter of the [CreateVolume API](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVolume.html) in the *Amazon EC2 API Reference*. -- `filesystem_type` (String) The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start. - The available filesystem types are
 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default. +- `filesystem_type` (String) The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start. + The available Linux filesystem types are
 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default. + The available Windows filesystem types are ``NTFS``. - `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 diff --git a/docs/resources/lambda_function.md b/docs/resources/lambda_function.md index 2ba4b6e0aa..1c8b929d1e 100644 --- a/docs/resources/lambda_function.md +++ b/docs/resources/lambda_function.md @@ -3,9 +3,10 @@ page_title: "awscc_lambda_function Resource - terraform-provider-awscc" subcategory: "" description: |- 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/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip. For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see Deploy Python Lambda functions with .zip file archives https://docs.aws.amazon.com/lambda/latest/dg/python-package.html. + 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 these functions, include the URI of the container image in the ECR registry in the ImageUri property of the Code property https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri. 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/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip. For these functions, specify the S3 location of your .zip file in the Code property. Alternatively, for Node.js and Python functions, you can define your function inline in the ZipFile property of the Code property https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile. In both cases, you must also specify the handler and runtime properties. You can use code signing https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with UpdateFunctionCode, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function. + When you update a AWS::Lambda::Function resource, CFNshort calls the UpdateFunctionConfiguration https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html and UpdateFunctionCode https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the $LATEST version. Note that you configure provisioned concurrency https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html on a AWS::Lambda::Version or a AWS::Lambda::Alias. For a complete introduction to Lambda functions, see What is Lambda? https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html in the Lambda developer guide. --- @@ -13,9 +14,10 @@ description: |- # awscc_lambda_function (Resource) 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/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see [Deploy Python Lambda functions with .zip file archives](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html). + 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 these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). 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/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties. You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function. + When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html) LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version. Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``. For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.* @@ -179,7 +181,10 @@ resource "awscc_lambda_function" "main" { ### Required -- `code` (Attributes) The code for the function. (see [below for nested schema](#nestedatt--code)) +- `code` (Attributes) The code for the function. You can define your function code in multiple ways: + + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties. + + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions. + + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property. (see [below for nested schema](#nestedatt--code)) - `role` (String) The Amazon Resource Name (ARN) of the function's execution role. ### Optional @@ -196,19 +201,22 @@ resource "awscc_lambda_function" "main" { 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. +- `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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM 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. -- `recursive_loop` (String) The function recursion configuration. +- `recursive_loop` (String) The status of your function's recursive loop detection configuration. + When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action. + When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you. - `reserved_concurrent_executions` (Number) The number of simultaneous executions to reserve for the function. - `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. Specifying a runtime results in an error if you're deploying a function using a container image. The following list includes deprecated runtimes. Lambda blocks creating new functions and updating existing functions shortly after each runtime is deprecated. For more information, see [Runtime use after deprecation](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels). For a list of all currently supported runtimes, see [Supported runtimes](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported). - `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)) +- `tags` (Attributes Set) A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function. + You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update. (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)) @@ -248,6 +256,7 @@ Optional: Optional: - `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). + If the value of the environment variable is a time or a duration, enclose the value in quotes. @@ -316,8 +325,8 @@ Optional: Optional: -- `key` (String) -- `value` (String) +- `key` (String) The key for this tag. +- `value` (String) The value for this tag. diff --git a/docs/resources/lambda_version.md b/docs/resources/lambda_version.md index 9aaee93cbe..f8c9e52e90 100644 --- a/docs/resources/lambda_version.md +++ b/docs/resources/lambda_version.md @@ -23,7 +23,6 @@ Resource Type definition for AWS::Lambda::Version - `code_sha_256` (String) Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. Updates are not supported for this property. - `description` (String) A description for the version to override the description in the function configuration. Updates are not supported for this property. -- `policy` (String) The resource policy of your function - `provisioned_concurrency_config` (Attributes) Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property. (see [below for nested schema](#nestedatt--provisioned_concurrency_config)) - `runtime_policy` (Attributes) Specifies the runtime management configuration of a function. Displays runtimeVersionArn only for Manual. (see [below for nested schema](#nestedatt--runtime_policy)) diff --git a/docs/resources/logs_delivery.md b/docs/resources/logs_delivery.md index 73fe54fd18..0923a9ff9a 100644 --- a/docs/resources/logs_delivery.md +++ b/docs/resources/logs_delivery.md @@ -28,6 +28,10 @@ For more information, see [CreateDelivery](https://docs.aws.amazon.com/AmazonClo ### Optional +- `field_delimiter` (String) The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format. +- `record_fields` (List of String) The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list. +- `s3_enable_hive_compatible_path` (Boolean) This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive. +- `s3_suffix_path` (String) This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source. - `tags` (Attributes Set) The tags that have been assigned to this delivery. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/logs_delivery_destination.md b/docs/resources/logs_delivery_destination.md index 5b70fbe4a4..5d2680c6b1 100644 --- a/docs/resources/logs_delivery_destination.md +++ b/docs/resources/logs_delivery_destination.md @@ -30,6 +30,7 @@ The policy must be in JSON string format. Length Constraints: Maximum length of 51200 - `destination_resource_arn` (String) The ARN of the Amazon Web Services destination that this delivery destination represents. That Amazon Web Services destination can be a log group in CloudWatch Logs, an Amazon S3 bucket, or a delivery stream in Firehose. +- `output_format` (String) The format of the logs that are sent to this delivery destination. - `tags` (Attributes Set) The tags that have been assigned to this delivery destination. (see [below for nested schema](#nestedatt--tags)) ### Read-Only diff --git a/docs/resources/nimblestudio_launch_profile.md b/docs/resources/nimblestudio_launch_profile.md index 00f8a92695..c55eb40d00 100644 --- a/docs/resources/nimblestudio_launch_profile.md +++ b/docs/resources/nimblestudio_launch_profile.md @@ -3,12 +3,12 @@ page_title: "awscc_nimblestudio_launch_profile Resource - terraform-provider-awscc" subcategory: "" description: |- - Represents a launch profile which delegates access to a collection of studio components to studio users + Resource Type definition for AWS::NimbleStudio::LaunchProfile --- # awscc_nimblestudio_launch_profile (Resource) -Represents a launch profile which delegates access to a collection of studio components to studio users +Resource Type definition for AWS::NimbleStudio::LaunchProfile @@ -17,19 +17,16 @@ Represents a launch profile which delegates access to a collection of studio com ### Required -- `ec_2_subnet_ids` (List of String)Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from. - These subnets must support the specified instance types.
-- `launch_profile_protocol_versions` (List of String)The version number of the protocol that is used by the launch profile. The only valid - version is "2021-03-31".
-- `name` (String)The name for the launch profile.
-- `stream_configuration` (Attributes)A configuration for a streaming session.
(see [below for nested schema](#nestedatt--stream_configuration)) -- `studio_component_ids` (List of String)Unique identifiers for a collection of studio components that can be used with this - launch profile.
-- `studio_id` (String)The studio ID.
+- `ec_2_subnet_ids` (List of String) +- `launch_profile_protocol_versions` (List of String) +- `name` (String) +- `stream_configuration` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration)) +- `studio_component_ids` (List of String) +- `studio_id` (String) ### Optional -- `description` (String)The description.
+- `description` (String) - `tags` (Map of String) ### Read-Only @@ -43,50 +40,25 @@ Represents a launch profile which delegates access to a collection of studio com Required: - `clipboard_mode` (String) -- `ec_2_instance_types` (List of String)The EC2 instance types that users can select from when launching a streaming session - with this launch profile.
-- `streaming_image_ids` (List of String)The streaming images that users can select from when launching a streaming session - with this launch profile.
+- `ec_2_instance_types` (List of String) +- `streaming_image_ids` (List of String) Optional: - `automatic_termination_mode` (String) -- `max_session_length_in_minutes` (Number)The length of time, in minutes, that a streaming session can be active before it is - stopped or terminated. After this point, Nimble Studio automatically terminates or - stops the session. The default length of time is 690 minutes, and the maximum length of - time is 30 days.
-- `max_stopped_session_length_in_minutes` (Number)Integer that determines if you can start and stop your sessions and how long a session
- can stay in the STOPPED
state. The default value is 0. The maximum value is
- 5760.
This field is allowed only when sessionPersistenceMode
is
- ACTIVATED
and automaticTerminationMode
is
- ACTIVATED
.
If the value is set to 0, your sessions can?t be STOPPED
. If you then
- call StopStreamingSession
, the session fails. If the time that a session
- stays in the READY
state exceeds the maxSessionLengthInMinutes
- value, the session will automatically be terminated (instead of
- STOPPED
).
If the value is set to a positive number, the session can be stopped. You can call
- StopStreamingSession
to stop sessions in the READY
state.
- If the time that a session stays in the READY
state exceeds the
- maxSessionLengthInMinutes
value, the session will automatically be
- stopped (instead of terminated).
Configures how streaming sessions are backed up when launched from this launch - profile.
(see [below for nested schema](#nestedatt--stream_configuration--session_backup)) +- `max_session_length_in_minutes` (Number) +- `max_stopped_session_length_in_minutes` (Number) +- `session_backup` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration--session_backup)) - `session_persistence_mode` (String) -- `session_storage` (Attributes)The configuration for a streaming session?s upload storage.
(see [below for nested schema](#nestedatt--stream_configuration--session_storage)) -- `volume_configuration` (Attributes)Custom volume configuration for the root volumes that are attached to streaming - sessions.
-This parameter is only allowed when sessionPersistenceMode
is
- ACTIVATED
.
The maximum number of backups that each streaming session created from this launch - profile can have.
+- `max_backups_to_retain` (Number) - `mode` (String) @@ -95,18 +67,16 @@ Optional: Optional: -- `mode` (List of String)Allows artists to upload files to their workstations. The only valid option is
- UPLOAD
.
The upload storage root location (folder) on streaming workstations where files are - uploaded.
(see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) +- `mode` (List of String) +- `root` (Attributes) (see [below for nested schema](#nestedatt--stream_configuration--session_storage--root)) ### Nested Schema for `stream_configuration.session_storage.root` Optional: -- `linux` (String)The folder path in Linux workstations where files are uploaded.
-- `windows` (String)The folder path in Windows workstations where files are uploaded.
+- `linux` (String) +- `windows` (String) @@ -115,17 +85,14 @@ Optional: Optional: -- `iops` (Number)The number of I/O operations per second for the root volume that is attached to - streaming session.
-- `size` (Number)The size of the root volume that is attached to the streaming session. The root volume - size is measured in GiBs.
-- `throughput` (Number)The throughput to provision for the root volume that is attached to the streaming - session. The throughput is measured in MiB/s.
+- `iops` (Number) +- `size` (Number) +- `throughput` (Number) ## Import Import is supported using the following syntax: ```shell -$ terraform import awscc_nimblestudio_launch_profile.example "launch_profile_id|studio_id" +$ terraform import awscc_nimblestudio_launch_profile.example "launch_profile_id" ``` diff --git a/docs/resources/nimblestudio_streaming_image.md b/docs/resources/nimblestudio_streaming_image.md index ceffaf1f9a..020b29ce21 100644 --- a/docs/resources/nimblestudio_streaming_image.md +++ b/docs/resources/nimblestudio_streaming_image.md @@ -3,12 +3,12 @@ page_title: "awscc_nimblestudio_streaming_image Resource - terraform-provider-awscc" subcategory: "" description: |- - Represents a streaming session machine image that can be used to launch a streaming session + Resource Type definition for AWS::NimbleStudio::StreamingImage --- # awscc_nimblestudio_streaming_image (Resource) -Represents a streaming session machine image that can be used to launch a streaming session +Resource Type definition for AWS::NimbleStudio::StreamingImage @@ -17,22 +17,24 @@ Represents a streaming session machine image that can be used to launch a stream ### Required -- `ec_2_image_id` (String)The ID of an EC2 machine image with which to create this streaming image.
-- `name` (String)A friendly name for a streaming image resource.
-- `studio_id` (String)The studioId.
+- `ec_2_image_id` (String) +- `name` (String) +- `studio_id` (String) ### Optional -- `description` (String)A human-readable description of the streaming image.
+- `description` (String) +- `encryption_configuration_key_arn` (String) +- `encryption_configuration_key_type` (String) - `tags` (Map of String) ### Read-Only -- `encryption_configuration` (Attributes)TODO
(see [below for nested schema](#nestedatt--encryption_configuration)) -- `eula_ids` (List of String)The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.
+- `encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--encryption_configuration)) +- `eula_ids` (List of String) - `id` (String) Uniquely identifies the resource. -- `owner` (String)The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.
-- `platform` (String)The platform of the streaming image, either WINDOWS or LINUX.
+- `owner` (String) +- `platform` (String) - `streaming_image_id` (String) @@ -40,13 +42,13 @@ Represents a streaming session machine image that can be used to launch a stream Read-Only: -- `key_arn` (String)The ARN for a KMS key that is used to encrypt studio data.
-- `key_type` (String) +- `key_arn` (String) +- `key_type` (String) ## Import Import is supported using the following syntax: ```shell -$ terraform import awscc_nimblestudio_streaming_image.example "studio_id|streaming_image_id" +$ terraform import awscc_nimblestudio_streaming_image.example "streaming_image_id" ``` diff --git a/docs/resources/nimblestudio_studio.md b/docs/resources/nimblestudio_studio.md index 84f4fd1713..f8798ec57b 100644 --- a/docs/resources/nimblestudio_studio.md +++ b/docs/resources/nimblestudio_studio.md @@ -3,12 +3,12 @@ page_title: "awscc_nimblestudio_studio Resource - terraform-provider-awscc" subcategory: "" description: |- - Represents a studio that contains other Nimble Studio resources + Resource Type definition for AWS::NimbleStudio::Studio --- # awscc_nimblestudio_studio (Resource) -Represents a studio that contains other Nimble Studio resources +Resource Type definition for AWS::NimbleStudio::Studio @@ -17,31 +17,31 @@ Represents a studio that contains other Nimble Studio resources ### Required -- `admin_role_arn` (String)The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.
-- `display_name` (String)A friendly name for the studio.
-- `studio_name` (String)The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.
-- `user_role_arn` (String)The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.
+- `admin_role_arn` (String) +- `display_name` (String) +- `studio_name` (String) +- `user_role_arn` (String) ### Optional -- `studio_encryption_configuration` (Attributes)Configuration of the encryption method that is used for the studio.
(see [below for nested schema](#nestedatt--studio_encryption_configuration)) +- `studio_encryption_configuration` (Attributes) (see [below for nested schema](#nestedatt--studio_encryption_configuration)) - `tags` (Map of String) ### Read-Only -- `home_region` (String)The Amazon Web Services Region where the studio resource is located.
+- `home_region` (String) - `id` (String) Uniquely identifies the resource. -- `sso_client_id` (String)The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.
+- `sso_client_id` (String) - `studio_id` (String) -- `studio_url` (String)The address of the web page for the studio.
+- `studio_url` (String) ### Nested Schema for `studio_encryption_configuration` Optional: -- `key_arn` (String)The ARN for a KMS key that is used to encrypt studio data.
-- `key_type` (String)The type of KMS key that is used to encrypt studio data.
+- `key_arn` (String) +- `key_type` (String) ## Import diff --git a/docs/resources/nimblestudio_studio_component.md b/docs/resources/nimblestudio_studio_component.md index 628705436a..8ee355edfd 100644 --- a/docs/resources/nimblestudio_studio_component.md +++ b/docs/resources/nimblestudio_studio_component.md @@ -3,12 +3,12 @@ page_title: "awscc_nimblestudio_studio_component Resource - terraform-provider-awscc" subcategory: "" description: |- - Represents a studio component that connects a non-Nimble Studio resource in your account to your studio + Resource Type definition for AWS::NimbleStudio::StudioComponent --- # awscc_nimblestudio_studio_component (Resource) -Represents a studio component that connects a non-Nimble Studio resource in your account to your studio +Resource Type definition for AWS::NimbleStudio::StudioComponent @@ -17,19 +17,17 @@ Represents a studio component that connects a non-Nimble Studio resource in your ### Required -- `name` (String)The name for the studio component.
-- `studio_id` (String)The studio ID.
+- `name` (String) +- `studio_id` (String) - `type` (String) ### Optional -- `configuration` (Attributes)The configuration of the studio component, based on component type.
(see [below for nested schema](#nestedatt--configuration)) -- `description` (String)The description.
-- `ec_2_security_group_ids` (List of String)The EC2 security groups that control access to the studio component.
-- `initialization_scripts` (Attributes List)Initialization scripts for studio components.
(see [below for nested schema](#nestedatt--initialization_scripts)) -- `runtime_role_arn` (String) -- `script_parameters` (Attributes List)Parameters for the studio component scripts.
(see [below for nested schema](#nestedatt--script_parameters)) -- `secure_initialization_role_arn` (String) +- `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) +- `description` (String) +- `ec_2_security_group_ids` (List of String) +- `initialization_scripts` (Attributes List) (see [below for nested schema](#nestedatt--initialization_scripts)) +- `script_parameters` (Attributes List) (see [below for nested schema](#nestedatt--script_parameters)) - `subtype` (String) - `tags` (Map of String) @@ -43,32 +41,27 @@ Represents a studio component that connects a non-Nimble Studio resource in your Optional: -- `active_directory_configuration` (Attributes)The configuration for a Microsoft Active Directory (Microsoft AD) studio - resource.
(see [below for nested schema](#nestedatt--configuration--active_directory_configuration)) -- `compute_farm_configuration` (Attributes)The configuration for a render farm that is associated with a studio resource.
(see [below for nested schema](#nestedatt--configuration--compute_farm_configuration)) -- `license_service_configuration` (Attributes)The configuration for a license service that is associated with a studio - resource.
(see [below for nested schema](#nestedatt--configuration--license_service_configuration)) -- `shared_file_system_configuration` (Attributes)The configuration for a shared file storage system that is associated with a studio - resource.
(see [below for nested schema](#nestedatt--configuration--shared_file_system_configuration)) +- `active_directory_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--active_directory_configuration)) +- `compute_farm_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--compute_farm_configuration)) +- `license_service_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--license_service_configuration)) +- `shared_file_system_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--shared_file_system_configuration)) ### Nested Schema for `configuration.active_directory_configuration` Optional: -- `computer_attributes` (Attributes List)A collection of custom attributes for an Active Directory computer.
(see [below for nested schema](#nestedatt--configuration--active_directory_configuration--computer_attributes)) -- `directory_id` (String)The directory ID of the Directory Service for Microsoft Active Directory to access - using this studio component.
-- `organizational_unit_distinguished_name` (String)The distinguished name (DN) and organizational unit (OU) of an Active Directory - computer.
+- `computer_attributes` (Attributes List) (see [below for nested schema](#nestedatt--configuration--active_directory_configuration--computer_attributes)) +- `directory_id` (String) +- `organizational_unit_distinguished_name` (String) ### Nested Schema for `configuration.active_directory_configuration.computer_attributes` Optional: -- `name` (String)The name for the LDAP attribute.
-- `value` (String)The value for the LDAP attribute.
+- `name` (String) +- `value` (String) @@ -77,10 +70,8 @@ Optional: Optional: -- `active_directory_user` (String)The name of an Active Directory user that is used on ComputeFarm worker - instances.
-- `endpoint` (String)The endpoint of the ComputeFarm that is accessed by the studio component - resource.
+- `active_directory_user` (String) +- `endpoint` (String) @@ -88,8 +79,7 @@ Optional: Optional: -- `endpoint` (String)The endpoint of the license service that is accessed by the studio component - resource.
+- `endpoint` (String) @@ -97,12 +87,11 @@ Optional: Optional: -- `endpoint` (String)The endpoint of the shared file system that is accessed by the studio component - resource.
-- `file_system_id` (String)The unique identifier for a file system.
-- `linux_mount_point` (String)The mount location for a shared file system on a Linux virtual workstation.
-- `share_name` (String)The name of the file share.
-- `windows_mount_drive` (String)The mount location for a shared file system on a Windows virtual workstation.
+- `endpoint` (String) +- `file_system_id` (String) +- `linux_mount_point` (String) +- `share_name` (String) +- `windows_mount_drive` (String) @@ -111,11 +100,10 @@ Optional: Optional: -- `launch_profile_protocol_version` (String)The version number of the protocol that is used by the launch profile. The only valid - version is "2021-03-31".
+- `launch_profile_protocol_version` (String) - `platform` (String) - `run_context` (String) -- `script` (String)The initialization script.
+- `script` (String) @@ -123,13 +111,13 @@ Optional: Optional: -- `key` (String)A script parameter key.
-- `value` (String)A script parameter value.
+- `key` (String) +- `value` (String) ## Import Import is supported using the following syntax: ```shell -$ terraform import awscc_nimblestudio_studio_component.example "studio_component_id|studio_id" +$ terraform import awscc_nimblestudio_studio_component.example "studio_component_id" ``` diff --git a/docs/resources/rds_db_cluster.md b/docs/resources/rds_db_cluster.md index c918709a5f..51c4db9216 100644 --- a/docs/resources/rds_db_cluster.md +++ b/docs/resources/rds_db_cluster.md @@ -76,6 +76,7 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { + Must be a value from 1 to 35 Valid for: Aurora DB clusters and Multi-AZ DB clusters +- `cluster_scalability_type` (String) - `copy_tags_to_snapshot` (Boolean) A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them. Valid for: Aurora DB clusters and Multi-AZ DB clusters - `database_name` (String) The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. @@ -272,11 +273,11 @@ resource "awscc_rds_db_cluster" "example_db_cluster" { Valid for Cluster Type: Multi-AZ DB clusters only Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified. If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies: - + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private. + + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private. + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public. If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies: - + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private. + + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private. + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public. - `read_endpoint` (Attributes) This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a response element in the following actions: + ``CreateDBInstance`` diff --git a/docs/resources/rds_db_shard_group.md b/docs/resources/rds_db_shard_group.md new file mode 100644 index 0000000000..efb51162eb --- /dev/null +++ b/docs/resources/rds_db_shard_group.md @@ -0,0 +1,51 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_rds_db_shard_group Resource - terraform-provider-awscc" +subcategory: "" +description: |- + The AWS::RDS::DBShardGroup resource creates an Amazon Aurora Limitless DB Shard Group. +--- + +# awscc_rds_db_shard_group (Resource) + +The AWS::RDS::DBShardGroup resource creates an Amazon Aurora Limitless DB Shard Group. + + + + +## Schema + +### Required + +- `db_cluster_identifier` (String) The name of the primary DB cluster for the DB shard group. +- `max_acu` (Number) The maximum capacity of the DB shard group in Aurora capacity units (ACUs). + +### Optional + +- `compute_redundancy` (Number) Specifies whether to create standby instances for the DB shard group. +- `db_shard_group_identifier` (String) The name of the DB shard group. +- `min_acu` (Number) The minimum capacity of the DB shard group in Aurora capacity units (ACUs). +- `publicly_accessible` (Boolean) Indicates whether the DB shard group is publicly accessible. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) + +### Read-Only + +- `db_shard_group_resource_id` (String) The Amazon Web Services Region-unique, immutable identifier for the DB shard group. +- `endpoint` (String) The connection endpoint for the DB shard group. +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `tags` + +Optional: + +- `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 -. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_rds_db_shard_group.example "db_shard_group_identifier" +``` diff --git a/docs/resources/ses_configuration_set.md b/docs/resources/ses_configuration_set.md index 3b373859d8..93d27a1559 100644 --- a/docs/resources/ses_configuration_set.md +++ b/docs/resources/ses_configuration_set.md @@ -34,6 +34,7 @@ Resource schema for AWS::SES::ConfigurationSet. Optional: +- `max_delivery_seconds` (Number) Specifies the maximum time until which SES will retry sending emails - `sending_pool_name` (String) The name of the dedicated IP pool to associate with the configuration set. - `tls_policy` (String) Specifies whether messages that use the configuration set are required to use Transport Layer Security (TLS). If the value is Require , messages are only delivered if a TLS connection can be established. If the value is Optional , messages can be delivered in plain text if a TLS connection can't be established. diff --git a/docs/resources/wisdom_ai_agent.md b/docs/resources/wisdom_ai_agent.md new file mode 100644 index 0000000000..2f6923cc0b --- /dev/null +++ b/docs/resources/wisdom_ai_agent.md @@ -0,0 +1,231 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_agent Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Wisdom::AIAgent Resource Type +--- + +# awscc_wisdom_ai_agent (Resource) + +Definition of AWS::Wisdom::AIAgent Resource Type + + + + +## Schema + +### Required + +- `assistant_id` (String) +- `configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration)) +- `type` (String) + +### Optional + +- `description` (String) +- `name` (String) +- `tags` (Map of String) + +### Read-Only + +- `ai_agent_arn` (String) +- `ai_agent_id` (String) +- `assistant_arn` (String) +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `configuration` + +Optional: + +- `answer_recommendation_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration)) +- `manual_search_ai_agent_configuration` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration` + +Optional: + +- `answer_generation_ai_prompt_id` (String) +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations)) +- `intent_labeling_generation_ai_prompt_id` (String) +- `query_reformulation_ai_prompt_id` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations` + +Optional: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data` + +Optional: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Optional: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--answer_recommendation_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.answer_recommendation_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + + + + + + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration` + +Optional: + +- `answer_generation_ai_prompt_id` (String) +- `association_configurations` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations` + +Optional: + +- `association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data)) +- `association_id` (String) +- `association_type` (String) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data` + +Optional: + +- `knowledge_base_association_configuration_data` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data` + +Optional: + +- `content_tag_filter` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter)) +- `max_results` (Number) +- `override_knowledge_base_search_type` (String) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--and_conditions)) +- `or_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--tag_condition)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions` + +Optional: + +- `and_conditions` (Attributes List) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--and_conditions)) +- `tag_condition` (Attributes) (see [below for nested schema](#nestedatt--configuration--manual_search_ai_agent_configuration--association_configurations--association_configuration_data--knowledge_base_association_configuration_data--content_tag_filter--or_conditions--tag_condition)) + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.and_conditions` + +Optional: + +- `key` (String) +- `value` (String) + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.or_conditions.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `configuration.manual_search_ai_agent_configuration.association_configurations.association_configuration_data.knowledge_base_association_configuration_data.content_tag_filter.tag_condition` + +Optional: + +- `key` (String) +- `value` (String) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_wisdom_ai_agent.example "ai_agent_id|assistant_id" +``` diff --git a/docs/resources/wisdom_ai_agent_version.md b/docs/resources/wisdom_ai_agent_version.md new file mode 100644 index 0000000000..95b061bd3d --- /dev/null +++ b/docs/resources/wisdom_ai_agent_version.md @@ -0,0 +1,41 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_agent_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Wisdom::AIAgentVersion Resource Type +--- + +# awscc_wisdom_ai_agent_version (Resource) + +Definition of AWS::Wisdom::AIAgentVersion Resource Type + + + + +## Schema + +### Required + +- `ai_agent_id` (String) +- `assistant_id` (String) + +### Optional + +- `modified_time_seconds` (Number) + +### Read-Only + +- `ai_agent_arn` (String) +- `ai_agent_version_id` (String) +- `assistant_arn` (String) +- `id` (String) Uniquely identifies the resource. +- `version_number` (Number) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_wisdom_ai_agent_version.example "assistant_id|ai_agent_id|version_number" +``` diff --git a/docs/resources/wisdom_ai_prompt_version.md b/docs/resources/wisdom_ai_prompt_version.md new file mode 100644 index 0000000000..447cedb66e --- /dev/null +++ b/docs/resources/wisdom_ai_prompt_version.md @@ -0,0 +1,41 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_wisdom_ai_prompt_version Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::Wisdom::AIPromptVersion Resource Type +--- + +# awscc_wisdom_ai_prompt_version (Resource) + +Definition of AWS::Wisdom::AIPromptVersion Resource Type + + + + +## Schema + +### Required + +- `ai_prompt_id` (String) +- `assistant_id` (String) + +### Optional + +- `modified_time_seconds` (Number) + +### Read-Only + +- `ai_prompt_arn` (String) +- `ai_prompt_version_id` (String) +- `assistant_arn` (String) +- `id` (String) Uniquely identifies the resource. +- `version_number` (Number) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_wisdom_ai_prompt_version.example "assistant_id|ai_prompt_id|version_number" +``` diff --git a/examples/resources/awscc_appsync_channel_namespace/import.sh b/examples/resources/awscc_appsync_channel_namespace/import.sh new file mode 100644 index 0000000000..4b035a82d4 --- /dev/null +++ b/examples/resources/awscc_appsync_channel_namespace/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_appsync_channel_namespace.example "channel_namespace_arn" \ No newline at end of file diff --git a/examples/resources/awscc_bedrock_application_inference_profile/import.sh b/examples/resources/awscc_bedrock_application_inference_profile/import.sh new file mode 100644 index 0000000000..6ea81f8378 --- /dev/null +++ b/examples/resources/awscc_bedrock_application_inference_profile/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_bedrock_application_inference_profile.example "inference_profile_identifier" \ No newline at end of file diff --git a/examples/resources/awscc_ec2_security_group_vpc_association/import.sh b/examples/resources/awscc_ec2_security_group_vpc_association/import.sh new file mode 100644 index 0000000000..90ba4a1d45 --- /dev/null +++ b/examples/resources/awscc_ec2_security_group_vpc_association/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_ec2_security_group_vpc_association.example "group_id|vpc_id" \ No newline at end of file diff --git a/examples/resources/awscc_nimblestudio_launch_profile/import.sh b/examples/resources/awscc_nimblestudio_launch_profile/import.sh index 0372695453..d3e65ca1df 100644 --- a/examples/resources/awscc_nimblestudio_launch_profile/import.sh +++ b/examples/resources/awscc_nimblestudio_launch_profile/import.sh @@ -1 +1 @@ -$ terraform import awscc_nimblestudio_launch_profile.example "launch_profile_id|studio_id" \ No newline at end of file +$ terraform import awscc_nimblestudio_launch_profile.example "launch_profile_id" \ No newline at end of file diff --git a/examples/resources/awscc_nimblestudio_streaming_image/import.sh b/examples/resources/awscc_nimblestudio_streaming_image/import.sh index 8cd62c6586..f542e427fc 100644 --- a/examples/resources/awscc_nimblestudio_streaming_image/import.sh +++ b/examples/resources/awscc_nimblestudio_streaming_image/import.sh @@ -1 +1 @@ -$ terraform import awscc_nimblestudio_streaming_image.example "studio_id|streaming_image_id" \ No newline at end of file +$ terraform import awscc_nimblestudio_streaming_image.example "streaming_image_id" \ No newline at end of file diff --git a/examples/resources/awscc_nimblestudio_studio_component/import.sh b/examples/resources/awscc_nimblestudio_studio_component/import.sh index c636a685ad..fdcb12acf1 100644 --- a/examples/resources/awscc_nimblestudio_studio_component/import.sh +++ b/examples/resources/awscc_nimblestudio_studio_component/import.sh @@ -1 +1 @@ -$ terraform import awscc_nimblestudio_studio_component.example "studio_component_id|studio_id" \ No newline at end of file +$ terraform import awscc_nimblestudio_studio_component.example "studio_component_id" \ No newline at end of file diff --git a/examples/resources/awscc_rds_db_shard_group/import.sh b/examples/resources/awscc_rds_db_shard_group/import.sh new file mode 100644 index 0000000000..ae9f55cadd --- /dev/null +++ b/examples/resources/awscc_rds_db_shard_group/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_rds_db_shard_group.example "db_shard_group_identifier" \ No newline at end of file diff --git a/examples/resources/awscc_wisdom_ai_agent/import.sh b/examples/resources/awscc_wisdom_ai_agent/import.sh new file mode 100644 index 0000000000..6694aa618e --- /dev/null +++ b/examples/resources/awscc_wisdom_ai_agent/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_wisdom_ai_agent.example "ai_agent_id|assistant_id" \ No newline at end of file diff --git a/examples/resources/awscc_wisdom_ai_agent_version/import.sh b/examples/resources/awscc_wisdom_ai_agent_version/import.sh new file mode 100644 index 0000000000..571ab9ceb6 --- /dev/null +++ b/examples/resources/awscc_wisdom_ai_agent_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_wisdom_ai_agent_version.example "assistant_id|ai_agent_id|version_number" \ No newline at end of file diff --git a/examples/resources/awscc_wisdom_ai_prompt_version/import.sh b/examples/resources/awscc_wisdom_ai_prompt_version/import.sh new file mode 100644 index 0000000000..30e3cd1399 --- /dev/null +++ b/examples/resources/awscc_wisdom_ai_prompt_version/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_wisdom_ai_prompt_version.example "assistant_id|ai_prompt_id|version_number" \ No newline at end of file diff --git a/internal/aws/apigateway/account_resource_gen.go b/internal/aws/apigateway/account_resource_gen.go index 5b2b41e231..35f17ae70e 100644 --- a/internal/aws/apigateway/account_resource_gen.go +++ b/internal/aws/apigateway/account_resource_gen.go @@ -28,11 +28,11 @@ func accountResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of an Amazon CloudWatch role for the current Account.", + // "description": "", // "type": "string" // } "cloudwatch_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of an Amazon CloudWatch role for the current Account.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/account_singular_data_source_gen.go b/internal/aws/apigateway/account_singular_data_source_gen.go index af05e3f4d0..d1c83b2faa 100644 --- a/internal/aws/apigateway/account_singular_data_source_gen.go +++ b/internal/aws/apigateway/account_singular_data_source_gen.go @@ -26,11 +26,11 @@ func accountDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The ARN of an Amazon CloudWatch role for the current Account.", + // "description": "", // "type": "string" // } "cloudwatch_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of an Amazon CloudWatch role for the current Account.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id diff --git a/internal/aws/apigateway/api_key_resource_gen.go b/internal/aws/apigateway/api_key_resource_gen.go index 96ad6f2ebc..4f2c9b0e4f 100644 --- a/internal/aws/apigateway/api_key_resource_gen.go +++ b/internal/aws/apigateway/api_key_resource_gen.go @@ -49,11 +49,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", + // "description": "", // "type": "string" // } "customer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -64,11 +64,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of the ApiKey.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the ApiKey.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -80,11 +80,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // // { // "default": false, - // "description": "Specifies whether the ApiKey can be used by callers.", + // "description": "", // "type": "boolean" // } "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the ApiKey can be used by callers.", + Description: "", Optional: true, Computed: true, Default: booldefault.StaticBool(false), @@ -96,11 +96,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + // "description": "", // "type": "boolean" // } "generate_distinct_id": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -129,17 +129,17 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "``StageKey`` is a property of the [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource that specifies the stage to associate with the API key. This association allows only clients with the key to make requests to methods in that stage.", // "properties": { // "RestApiId": { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // }, // "StageName": { - // "description": "The stage name associated with the stage key.", + // "description": "", // "type": "string" // } // }, @@ -153,7 +153,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: RestApiId "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -162,7 +162,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StageName "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage name associated with the stage key.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -171,7 +171,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -185,7 +185,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -242,7 +242,7 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -253,11 +253,11 @@ func apiKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies a value of the API key.", + // "description": "", // "type": "string" // } "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a value of the API key.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/api_key_singular_data_source_gen.go b/internal/aws/apigateway/api_key_singular_data_source_gen.go index 54197bd287..163b80ce95 100644 --- a/internal/aws/apigateway/api_key_singular_data_source_gen.go +++ b/internal/aws/apigateway/api_key_singular_data_source_gen.go @@ -37,22 +37,22 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", + // "description": "", // "type": "string" // } "customer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The description of the ApiKey.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the ApiKey.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Enabled @@ -60,22 +60,22 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "default": false, - // "description": "Specifies whether the ApiKey can be used by callers.", + // "description": "", // "type": "boolean" // } "enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the ApiKey can be used by callers.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: GenerateDistinctId // CloudFormation resource type schema: // // { - // "description": "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + // "description": "", // "type": "boolean" // } "generate_distinct_id": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name @@ -93,17 +93,17 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "``StageKey`` is a property of the [AWS::ApiGateway::ApiKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html) resource that specifies the stage to associate with the API key. This association allows only clients with the key to make requests to methods in that stage.", // "properties": { // "RestApiId": { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // }, // "StageName": { - // "description": "The stage name associated with the stage key.", + // "description": "", // "type": "string" // } // }, @@ -117,24 +117,24 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: RestApiId "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageName "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage name associated with the stage key.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -175,18 +175,18 @@ func apiKeyDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value // CloudFormation resource type schema: // // { - // "description": "Specifies a value of the API key.", + // "description": "", // "type": "string" // } "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a value of the API key.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/authorizer_resource_gen.go b/internal/aws/apigateway/authorizer_resource_gen.go index 9eef3f2a4c..f031447052 100644 --- a/internal/aws/apigateway/authorizer_resource_gen.go +++ b/internal/aws/apigateway/authorizer_resource_gen.go @@ -31,11 +31,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", + // "description": "", // "type": "string" // } "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -46,11 +46,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "authorizer_credentials": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -75,11 +75,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "integer" // } "authorizer_result_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -90,11 +90,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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``.", + // "description": "", // "type": "string" // } "authorizer_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -105,11 +105,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "identity_source": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -120,11 +120,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "identity_validation_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -135,18 +135,18 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the authorizer.", + // "description": "", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the authorizer.", + Description: "", Required: true, }, /*END ATTRIBUTE*/ // Property: ProviderARNs // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "insertionOrder": false, // "items": { // "type": "string" @@ -156,7 +156,7 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // } "provider_ar_ns": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -167,11 +167,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -181,11 +181,11 @@ func authorizerResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.", + // "description": "", // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.", + Description: "", Required: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/authorizer_singular_data_source_gen.go b/internal/aws/apigateway/authorizer_singular_data_source_gen.go index 19d442580c..b46b85f95e 100644 --- a/internal/aws/apigateway/authorizer_singular_data_source_gen.go +++ b/internal/aws/apigateway/authorizer_singular_data_source_gen.go @@ -27,22 +27,22 @@ func authorizerDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", + // "description": "", // "type": "string" // } "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizerCredentials // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "authorizer_credentials": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizerId @@ -60,62 +60,62 @@ func authorizerDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "integer" // } "authorizer_result_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizerUri // CloudFormation resource type schema: // // { - // "description": "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``.", + // "description": "", // "type": "string" // } "authorizer_uri": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: IdentitySource // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "identity_source": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: IdentityValidationExpression // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "type": "string" // } "identity_validation_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "description": "The name of the authorizer.", + // "description": "", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the authorizer.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ProviderARNs // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "", // "insertionOrder": false, // "items": { // "type": "string" @@ -125,29 +125,29 @@ func authorizerDataSource(ctx context.Context) (datasource.DataSource, error) { // } "provider_ar_ns": schema.SetAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Type // CloudFormation resource type schema: // // { - // "description": "The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.", + // "description": "", // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/base_path_mapping_resource_gen.go b/internal/aws/apigateway/base_path_mapping_resource_gen.go index 53632ad986..c9539ca1a9 100644 --- a/internal/aws/apigateway/base_path_mapping_resource_gen.go +++ b/internal/aws/apigateway/base_path_mapping_resource_gen.go @@ -28,11 +28,11 @@ func basePathMappingResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The base path name that callers of the API must provide as part of the URL after the domain name.", + // "description": "", // "type": "string" // } "base_path": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The base path name that callers of the API must provide as part of the URL after the domain name.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -44,11 +44,11 @@ func basePathMappingResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The domain name of the BasePathMapping resource to be described.", + // "description": "", // "type": "string" // } "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The domain name of the BasePathMapping resource to be described.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -58,11 +58,11 @@ func basePathMappingResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -73,11 +73,11 @@ func basePathMappingResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the associated stage.", + // "description": "", // "type": "string" // } "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the associated stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/base_path_mapping_singular_data_source_gen.go b/internal/aws/apigateway/base_path_mapping_singular_data_source_gen.go index 2a8e7e25ac..74dd5ce135 100644 --- a/internal/aws/apigateway/base_path_mapping_singular_data_source_gen.go +++ b/internal/aws/apigateway/base_path_mapping_singular_data_source_gen.go @@ -26,44 +26,44 @@ func basePathMappingDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "The base path name that callers of the API must provide as part of the URL after the domain name.", + // "description": "", // "type": "string" // } "base_path": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The base path name that callers of the API must provide as part of the URL after the domain name.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DomainName // CloudFormation resource type schema: // // { - // "description": "The domain name of the BasePathMapping resource to be described.", + // "description": "", // "type": "string" // } "domain_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The domain name of the BasePathMapping resource to be described.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Stage // CloudFormation resource type schema: // // { - // "description": "The name of the associated stage.", + // "description": "", // "type": "string" // } "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the associated stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/client_certificate_resource_gen.go b/internal/aws/apigateway/client_certificate_resource_gen.go index e39556ed6e..addc1a44b6 100644 --- a/internal/aws/apigateway/client_certificate_resource_gen.go +++ b/internal/aws/apigateway/client_certificate_resource_gen.go @@ -45,11 +45,11 @@ func clientCertificateResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of the client certificate.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the client certificate.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -60,7 +60,7 @@ func clientCertificateResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -108,7 +108,7 @@ func clientCertificateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/client_certificate_singular_data_source_gen.go b/internal/aws/apigateway/client_certificate_singular_data_source_gen.go index b0b3c83bfe..3f65cbfc84 100644 --- a/internal/aws/apigateway/client_certificate_singular_data_source_gen.go +++ b/internal/aws/apigateway/client_certificate_singular_data_source_gen.go @@ -37,18 +37,18 @@ func clientCertificateDataSource(ctx context.Context) (datasource.DataSource, er // CloudFormation resource type schema: // // { - // "description": "The description of the client certificate.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the client certificate.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -82,7 +82,7 @@ func clientCertificateDataSource(ctx context.Context) (datasource.DataSource, er }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/deployment_resource_gen.go b/internal/aws/apigateway/deployment_resource_gen.go index 467100b49b..6df36278da 100644 --- a/internal/aws/apigateway/deployment_resource_gen.go +++ b/internal/aws/apigateway/deployment_resource_gen.go @@ -39,15 +39,15 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The input configuration for a canary deployment.", + // "description": "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.", // "properties": { // "PercentTraffic": { - // "description": "The percentage (0.0-100.0) of traffic routed to the canary deployment.", + // "description": "", // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -56,7 +56,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -66,7 +66,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percentage (0.0-100.0) of traffic routed to the canary deployment.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -77,7 +77,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -86,7 +86,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -94,7 +94,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The input configuration for a canary deployment.", + Description: "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -121,11 +121,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description for the Deployment resource to create.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description for the Deployment resource to create.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -136,11 +136,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -158,18 +158,18 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies settings for logging access in this stage.", // "properties": { // "DestinationArn": { - // "description": "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``.", + // "description": "", // "type": "string" // }, // "Format": { - // "description": "A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``.", + // "description": "", // "type": "string" // } // }, // "type": "object" // }, // "CacheClusterEnabled": { - // "description": "Specifies whether a cache cluster is enabled for the stage.", + // "description": "", // "type": "boolean" // }, // "CacheClusterSize": { @@ -193,12 +193,12 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "description": "Specifies settings for the canary deployment in this stage.", // "properties": { // "PercentTraffic": { - // "description": "The percent (0-100) of traffic diverted to a canary deployment.", + // "description": "", // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -207,7 +207,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -241,19 +241,19 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "description": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the [Amazon API Gateway Deployment StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type contains a list of ``MethodSetting`` property types.", // "properties": { // "CacheDataEncrypted": { - // "description": "Specifies whether the cached responses are encrypted.", + // "description": "", // "type": "boolean" // }, // "CacheTtlInSeconds": { - // "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + // "description": "", // "type": "integer" // }, // "CachingEnabled": { - // "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + // "description": "", // "type": "boolean" // }, // "DataTraceEnabled": { - // "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + // "description": "", // "type": "boolean" // }, // "HttpMethod": { @@ -261,11 +261,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "LoggingLevel": { - // "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + // "description": "", // "type": "string" // }, // "MetricsEnabled": { - // "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + // "description": "", // "type": "boolean" // }, // "ResourcePath": { @@ -273,11 +273,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "ThrottlingBurstLimit": { - // "description": "Specifies the throttling burst limit.", + // "description": "", // "type": "integer" // }, // "ThrottlingRateLimit": { - // "description": "Specifies the throttling rate limit.", + // "description": "", // "type": "number" // } // }, @@ -347,7 +347,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: DestinationArn "destination_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -356,7 +356,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Format "format": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -373,7 +373,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CacheClusterEnabled "cache_cluster_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether a cache cluster is enabled for the stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -421,7 +421,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percent (0-100) of traffic diverted to a canary deployment.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -432,7 +432,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -441,7 +441,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -507,7 +507,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: CacheDataEncrypted "cache_data_encrypted": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the cached responses are encrypted.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -516,7 +516,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CacheTtlInSeconds "cache_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -525,7 +525,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CachingEnabled "caching_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -534,7 +534,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DataTraceEnabled "data_trace_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -552,7 +552,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: LoggingLevel "logging_level": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -561,7 +561,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricsEnabled "metrics_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -579,7 +579,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingBurstLimit "throttling_burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling burst limit.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -588,7 +588,7 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingRateLimit "throttling_rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling rate limit.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -702,11 +702,11 @@ func deploymentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the Stage resource for the Deployment resource to create.", + // "description": "", // "type": "string" // } "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the Stage resource for the Deployment resource to create.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/deployment_singular_data_source_gen.go b/internal/aws/apigateway/deployment_singular_data_source_gen.go index 923a2a77e1..cbb281cddc 100644 --- a/internal/aws/apigateway/deployment_singular_data_source_gen.go +++ b/internal/aws/apigateway/deployment_singular_data_source_gen.go @@ -28,15 +28,15 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The input configuration for a canary deployment.", + // "description": "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.", // "properties": { // "PercentTraffic": { - // "description": "The percentage (0.0-100.0) of traffic routed to the canary deployment.", + // "description": "", // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -45,7 +45,7 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -55,23 +55,23 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percentage (0.0-100.0) of traffic routed to the canary deployment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageVariableOverrides "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The input configuration for a canary deployment.", + Description: "The ``DeploymentCanarySettings`` property type specifies settings for the canary deployment.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeploymentId @@ -89,22 +89,22 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The description for the Deployment resource to create.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description for the Deployment resource to create.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageDescription @@ -119,18 +119,18 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Specifies settings for logging access in this stage.", // "properties": { // "DestinationArn": { - // "description": "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``.", + // "description": "", // "type": "string" // }, // "Format": { - // "description": "A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``.", + // "description": "", // "type": "string" // } // }, // "type": "object" // }, // "CacheClusterEnabled": { - // "description": "Specifies whether a cache cluster is enabled for the stage.", + // "description": "", // "type": "boolean" // }, // "CacheClusterSize": { @@ -154,12 +154,12 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "Specifies settings for the canary deployment in this stage.", // "properties": { // "PercentTraffic": { - // "description": "The percent (0-100) of traffic diverted to a canary deployment.", + // "description": "", // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -168,7 +168,7 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -202,19 +202,19 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the [Amazon API Gateway Deployment StageDescription](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-deployment-stagedescription.html) property type contains a list of ``MethodSetting`` property types.", // "properties": { // "CacheDataEncrypted": { - // "description": "Specifies whether the cached responses are encrypted.", + // "description": "", // "type": "boolean" // }, // "CacheTtlInSeconds": { - // "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + // "description": "", // "type": "integer" // }, // "CachingEnabled": { - // "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + // "description": "", // "type": "boolean" // }, // "DataTraceEnabled": { - // "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + // "description": "", // "type": "boolean" // }, // "HttpMethod": { @@ -222,11 +222,11 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "LoggingLevel": { - // "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + // "description": "", // "type": "string" // }, // "MetricsEnabled": { - // "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + // "description": "", // "type": "boolean" // }, // "ResourcePath": { @@ -234,11 +234,11 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "ThrottlingBurstLimit": { - // "description": "Specifies the throttling burst limit.", + // "description": "", // "type": "integer" // }, // "ThrottlingRateLimit": { - // "description": "Specifies the throttling rate limit.", + // "description": "", // "type": "number" // } // }, @@ -308,12 +308,12 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: DestinationArn "destination_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Format "format": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -322,7 +322,7 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: CacheClusterEnabled "cache_cluster_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether a cache cluster is enabled for the stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheClusterSize @@ -350,19 +350,19 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percent (0-100) of traffic diverted to a canary deployment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageVariableOverrides "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -400,22 +400,22 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: CacheDataEncrypted "cache_data_encrypted": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the cached responses are encrypted.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheTtlInSeconds "cache_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CachingEnabled "caching_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DataTraceEnabled "data_trace_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: HttpMethod @@ -425,12 +425,12 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: LoggingLevel "logging_level": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricsEnabled "metrics_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourcePath @@ -440,12 +440,12 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingBurstLimit "throttling_burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling burst limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ThrottlingRateLimit "throttling_rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -507,11 +507,11 @@ func deploymentDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the Stage resource for the Deployment resource to create.", + // "description": "", // "type": "string" // } "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the Stage resource for the Deployment resource to create.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/documentation_part_resource_gen.go b/internal/aws/apigateway/documentation_part_resource_gen.go index 3b7c5b594f..0f049aca3c 100644 --- a/internal/aws/apigateway/documentation_part_resource_gen.go +++ b/internal/aws/apigateway/documentation_part_resource_gen.go @@ -46,26 +46,26 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The location of the targeted API entity of the to-be-created documentation part.", + // "description": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", // "properties": { // "Method": { - // "description": "The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly.", + // "description": "", // "type": "string" // }, // "Name": { - // "description": "The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type.", + // "description": "", // "type": "string" // }, // "Path": { - // "description": "The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix.", + // "description": "", // "type": "string" // }, // "StatusCode": { - // "description": "The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly.", + // "description": "", // "type": "string" // }, // "Type": { - // "description": "The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type.", + // "description": "", // "enum": [ // "API", // "AUTHORIZER", @@ -89,7 +89,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Method "method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -98,7 +98,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -107,7 +107,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Path "path": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -116,7 +116,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -125,7 +125,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -149,7 +149,7 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The location of the targeted API entity of the to-be-created documentation part.", + Description: "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", Required: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.RequiresReplace(), @@ -159,22 +159,22 @@ func documentationPartResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.", + // "description": "", // "type": "string" // } "properties": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.", + Description: "", Required: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/apigateway/documentation_part_singular_data_source_gen.go b/internal/aws/apigateway/documentation_part_singular_data_source_gen.go index 56cc1a1db9..556b8b05d2 100644 --- a/internal/aws/apigateway/documentation_part_singular_data_source_gen.go +++ b/internal/aws/apigateway/documentation_part_singular_data_source_gen.go @@ -38,26 +38,26 @@ func documentationPartDataSource(ctx context.Context) (datasource.DataSource, er // // { // "additionalProperties": false, - // "description": "The location of the targeted API entity of the to-be-created documentation part.", + // "description": "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", // "properties": { // "Method": { - // "description": "The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly.", + // "description": "", // "type": "string" // }, // "Name": { - // "description": "The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type.", + // "description": "", // "type": "string" // }, // "Path": { - // "description": "The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix.", + // "description": "", // "type": "string" // }, // "StatusCode": { - // "description": "The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly.", + // "description": "", // "type": "string" // }, // "Type": { - // "description": "The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type.", + // "description": "", // "enum": [ // "API", // "AUTHORIZER", @@ -81,53 +81,53 @@ func documentationPartDataSource(ctx context.Context) (datasource.DataSource, er Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Method "method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Path "path": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The location of the targeted API entity of the to-be-created documentation part.", + Description: "The ``Location`` property specifies the location of the Amazon API Gateway API entity that the documentation applies to. ``Location`` is a property of the [AWS::ApiGateway::DocumentationPart](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-documentationpart.html) resource.\n For more information about each property, including constraints and valid values, see [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPartLocation.html) in the *Amazon API Gateway REST API Reference*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Properties // CloudFormation resource type schema: // // { - // "description": "The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.", + // "description": "", // "type": "string" // } "properties": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/documentation_version_resource_gen.go b/internal/aws/apigateway/documentation_version_resource_gen.go index 03e3a69f72..55a76b3d2b 100644 --- a/internal/aws/apigateway/documentation_version_resource_gen.go +++ b/internal/aws/apigateway/documentation_version_resource_gen.go @@ -30,11 +30,11 @@ func documentationVersionResource(ctx context.Context) (resource.Resource, error // CloudFormation resource type schema: // // { - // "description": "A description about the new documentation snapshot.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description about the new documentation snapshot.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -45,12 +45,12 @@ func documentationVersionResource(ctx context.Context) (resource.Resource, error // CloudFormation resource type schema: // // { - // "description": "The version identifier of the to-be-updated documentation version.", + // "description": "", // "minLength": 1, // "type": "string" // } "documentation_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version identifier of the to-be-updated documentation version.", + Description: "", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtLeast(1), @@ -63,12 +63,12 @@ func documentationVersionResource(ctx context.Context) (resource.Resource, error // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "minLength": 1, // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthAtLeast(1), diff --git a/internal/aws/apigateway/documentation_version_singular_data_source_gen.go b/internal/aws/apigateway/documentation_version_singular_data_source_gen.go index ba43384e0e..a38df77120 100644 --- a/internal/aws/apigateway/documentation_version_singular_data_source_gen.go +++ b/internal/aws/apigateway/documentation_version_singular_data_source_gen.go @@ -26,35 +26,35 @@ func documentationVersionDataSource(ctx context.Context) (datasource.DataSource, // CloudFormation resource type schema: // // { - // "description": "A description about the new documentation snapshot.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A description about the new documentation snapshot.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DocumentationVersion // CloudFormation resource type schema: // // { - // "description": "The version identifier of the to-be-updated documentation version.", + // "description": "", // "minLength": 1, // "type": "string" // } "documentation_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version identifier of the to-be-updated documentation version.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "minLength": 1, // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/gateway_response_resource_gen.go b/internal/aws/apigateway/gateway_response_resource_gen.go index 7387423f81..7f6ae9e569 100644 --- a/internal/aws/apigateway/gateway_response_resource_gen.go +++ b/internal/aws/apigateway/gateway_response_resource_gen.go @@ -45,7 +45,7 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -56,7 +56,7 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -68,7 +68,7 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Response templates of the GatewayResponse as a string-to-string map of key-value pairs.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -79,7 +79,7 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { "response_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Response templates of the GatewayResponse as a string-to-string map of key-value pairs.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -90,11 +90,11 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The response type of the associated GatewayResponse.", + // "description": "", // "type": "string" // } "response_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The response type of the associated GatewayResponse.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -104,11 +104,11 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -118,11 +118,11 @@ func gatewayResponseResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The HTTP status code for this GatewayResponse.", + // "description": "", // "type": "string" // } "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP status code for this GatewayResponse.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/gateway_response_singular_data_source_gen.go b/internal/aws/apigateway/gateway_response_singular_data_source_gen.go index d19b44c743..db3f1af4a2 100644 --- a/internal/aws/apigateway/gateway_response_singular_data_source_gen.go +++ b/internal/aws/apigateway/gateway_response_singular_data_source_gen.go @@ -39,7 +39,7 @@ func gatewayResponseDataSource(ctx context.Context) (datasource.DataSource, erro // // { // "additionalProperties": false, - // "description": "Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -50,7 +50,7 @@ func gatewayResponseDataSource(ctx context.Context) (datasource.DataSource, erro "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResponseTemplates @@ -58,7 +58,7 @@ func gatewayResponseDataSource(ctx context.Context) (datasource.DataSource, erro // // { // "additionalProperties": false, - // "description": "Response templates of the GatewayResponse as a string-to-string map of key-value pairs.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -69,40 +69,40 @@ func gatewayResponseDataSource(ctx context.Context) (datasource.DataSource, erro "response_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Response templates of the GatewayResponse as a string-to-string map of key-value pairs.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResponseType // CloudFormation resource type schema: // // { - // "description": "The response type of the associated GatewayResponse.", + // "description": "", // "type": "string" // } "response_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The response type of the associated GatewayResponse.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StatusCode // CloudFormation resource type schema: // // { - // "description": "The HTTP status code for this GatewayResponse.", + // "description": "", // "type": "string" // } "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The HTTP status code for this GatewayResponse.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/method_resource_gen.go b/internal/aws/apigateway/method_resource_gen.go index 5d5e887148..f2a45b74a9 100644 --- a/internal/aws/apigateway/method_resource_gen.go +++ b/internal/aws/apigateway/method_resource_gen.go @@ -39,11 +39,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A boolean flag specifying whether a valid ApiKey is required to invoke this method.", + // "description": "", // "type": "boolean" // } "api_key_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A boolean flag specifying whether a valid ApiKey is required to invoke this method.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -54,7 +54,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.", + // "description": "", // "items": { // "type": "string" // }, @@ -62,7 +62,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // } "authorization_scopes": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -88,11 +88,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``.", + // "description": "", // "type": "string" // } "authorizer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -103,11 +103,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The method's HTTP verb.", + // "description": "", // "type": "string" // } "http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The method's HTTP verb.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -118,10 +118,10 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration.", + // "description": "``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls.", // "properties": { // "CacheKeyParameters": { - // "description": "A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``.", + // "description": "", // "items": { // "type": "string" // }, @@ -129,15 +129,15 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": true // }, // "CacheNamespace": { - // "description": "Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources.", + // "description": "", // "type": "string" // }, // "ConnectionId": { - // "description": "The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise.", + // "description": "", // "type": "string" // }, // "ConnectionType": { - // "description": "The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``.", + // "description": "", // "enum": [ // "INTERNET", // "VPC_LINK" @@ -145,7 +145,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "ContentHandling": { - // "description": "Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through.", + // "description": "", // "enum": [ // "CONVERT_TO_BINARY", // "CONVERT_TO_TEXT" @@ -153,21 +153,21 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Credentials": { - // "description": "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.", + // "description": "", // "type": "string" // }, // "IntegrationHttpMethod": { - // "description": "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.", + // "description": "", // "type": "string" // }, // "IntegrationResponses": { - // "description": "Specifies the integration's responses.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "``IntegrationResponse`` is a property of the [Amazon API Gateway Method Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) property type that specifies the response that API Gateway sends after a method's backend finishes processing a request.", // "properties": { // "ContentHandling": { - // "description": "Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.", + // "description": "", // "enum": [ // "CONVERT_TO_BINARY", // "CONVERT_TO_TEXT" @@ -176,7 +176,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // }, // "ResponseParameters": { // "additionalProperties": false, - // "description": "A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -186,7 +186,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // }, // "ResponseTemplates": { // "additionalProperties": false, - // "description": "Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -195,11 +195,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "SelectionPattern": { - // "description": "Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.", + // "description": "", // "type": "string" // }, // "StatusCode": { - // "description": "Specifies the status code that is used to map the integration response to an existing MethodResponse.", + // "description": "", // "type": "string" // } // }, @@ -212,7 +212,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": true // }, // "PassthroughBehavior": { - // "description": "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.", + // "description": "", // "enum": [ // "WHEN_NO_MATCH", // "WHEN_NO_TEMPLATES", @@ -222,7 +222,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // }, // "RequestParameters": { // "additionalProperties": false, - // "description": "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.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -232,7 +232,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // }, // "RequestTemplates": { // "additionalProperties": false, - // "description": "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.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -241,12 +241,12 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "TimeoutInMillis": { - // "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.", + // "description": "", // "minimum": 50, // "type": "integer" // }, // "Type": { - // "description": "Specifies an API method integration type. The valid value is one of the following:\n 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.", + // "description": "", // "enum": [ // "AWS", // "AWS_PROXY", @@ -257,7 +257,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "Uri": { - // "description": "Specifies Uniform Resource Identifier (URI) of the integration endpoint.\n 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}\u0026{p1}={v1}\u0026p2={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\u0026Bucket={bucket}\u0026Key={key}`` or ``arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}``", + // "description": "", // "type": "string" // } // }, @@ -271,7 +271,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // Property: CacheKeyParameters "cache_key_parameters": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -283,7 +283,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CacheNamespace "cache_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -292,7 +292,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ConnectionId "connection_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -301,7 +301,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ConnectionType "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -316,7 +316,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ContentHandling "content_handling": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -331,7 +331,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Credentials "credentials": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -340,7 +340,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: IntegrationHttpMethod "integration_http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -353,7 +353,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ContentHandling "content_handling": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -370,7 +370,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -381,7 +381,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "response_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -390,7 +390,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: SelectionPattern "selection_pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -399,7 +399,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the status code that is used to map the integration response to an existing MethodResponse.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -411,7 +411,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Specifies the integration's responses.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -423,7 +423,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: PassthroughBehavior "passthrough_behavior": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -441,7 +441,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "request_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -452,7 +452,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "request_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -461,7 +461,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: TimeoutInMillis "timeout_in_millis": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -473,7 +473,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies an API method integration type. The valid value is one of the following:\n 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.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -492,7 +492,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Uri "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies Uniform Resource Identifier (URI) of the integration endpoint.\n 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}``", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -500,7 +500,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration.", + Description: "``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -511,14 +511,14 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Gets a method response associated with a given HTTP status code.", + // "description": "", // "items": { // "additionalProperties": false, - // "description": "Represents a method response of a given HTTP status code returned to the client. The method response is passed from the back end through the associated integration response that can be transformed using a mapping template.", + // "description": "", // "properties": { // "ResponseModels": { // "additionalProperties": false, - // "description": "Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -528,7 +528,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // }, // "ResponseParameters": { // "additionalProperties": false, - // "description": "A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.)", + // "description": "", // "patternProperties": { // "": { // "type": "boolean" @@ -537,7 +537,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "StatusCode": { - // "description": "The method response's status code.", + // "description": "", // "type": "string" // } // }, @@ -556,7 +556,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "response_models": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -567,7 +567,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.BoolType, - Description: "A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.)", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -576,7 +576,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The method response's status code.", + Description: "", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -588,7 +588,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Gets a method response associated with a given HTTP status code.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -602,11 +602,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example.", + // "description": "", // "type": "string" // } "operation_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -618,7 +618,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -629,7 +629,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "request_models": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -641,7 +641,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.", + // "description": "", // "patternProperties": { // "": { // "type": "boolean" @@ -652,7 +652,7 @@ func methodResource(ctx context.Context) (resource.Resource, error) { "request_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.BoolType, - Description: "A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -663,11 +663,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of a RequestValidator for request validation.", + // "description": "", // "type": "string" // } "request_validator_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of a RequestValidator for request validation.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -678,11 +678,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The Resource identifier for the MethodResponse resource.", + // "description": "", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Resource identifier for the MethodResponse resource.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -692,11 +692,11 @@ func methodResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/apigateway/method_singular_data_source_gen.go b/internal/aws/apigateway/method_singular_data_source_gen.go index 0c6899770d..d365e5f245 100644 --- a/internal/aws/apigateway/method_singular_data_source_gen.go +++ b/internal/aws/apigateway/method_singular_data_source_gen.go @@ -27,18 +27,18 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A boolean flag specifying whether a valid ApiKey is required to invoke this method.", + // "description": "", // "type": "boolean" // } "api_key_required": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A boolean flag specifying whether a valid ApiKey is required to invoke this method.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizationScopes // CloudFormation resource type schema: // // { - // "description": "A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.", + // "description": "", // "items": { // "type": "string" // }, @@ -46,7 +46,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // } "authorization_scopes": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: AuthorizationType @@ -64,22 +64,22 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``.", + // "description": "", // "type": "string" // } "authorizer_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: HttpMethod // CloudFormation resource type schema: // // { - // "description": "The method's HTTP verb.", + // "description": "", // "type": "string" // } "http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The method's HTTP verb.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Integration @@ -87,10 +87,10 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration.", + // "description": "``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls.", // "properties": { // "CacheKeyParameters": { - // "description": "A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``.", + // "description": "", // "items": { // "type": "string" // }, @@ -98,15 +98,15 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "uniqueItems": true // }, // "CacheNamespace": { - // "description": "Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources.", + // "description": "", // "type": "string" // }, // "ConnectionId": { - // "description": "The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise.", + // "description": "", // "type": "string" // }, // "ConnectionType": { - // "description": "The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``.", + // "description": "", // "enum": [ // "INTERNET", // "VPC_LINK" @@ -114,7 +114,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "ContentHandling": { - // "description": "Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through.", + // "description": "", // "enum": [ // "CONVERT_TO_BINARY", // "CONVERT_TO_TEXT" @@ -122,21 +122,21 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "Credentials": { - // "description": "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.", + // "description": "", // "type": "string" // }, // "IntegrationHttpMethod": { - // "description": "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.", + // "description": "", // "type": "string" // }, // "IntegrationResponses": { - // "description": "Specifies the integration's responses.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "``IntegrationResponse`` is a property of the [Amazon API Gateway Method Integration](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apitgateway-method-integration.html) property type that specifies the response that API Gateway sends after a method's backend finishes processing a request.", // "properties": { // "ContentHandling": { - // "description": "Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.", + // "description": "", // "enum": [ // "CONVERT_TO_BINARY", // "CONVERT_TO_TEXT" @@ -145,7 +145,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "ResponseParameters": { // "additionalProperties": false, - // "description": "A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -155,7 +155,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "ResponseTemplates": { // "additionalProperties": false, - // "description": "Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -164,11 +164,11 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "SelectionPattern": { - // "description": "Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.", + // "description": "", // "type": "string" // }, // "StatusCode": { - // "description": "Specifies the status code that is used to map the integration response to an existing MethodResponse.", + // "description": "", // "type": "string" // } // }, @@ -181,7 +181,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "uniqueItems": true // }, // "PassthroughBehavior": { - // "description": "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.", + // "description": "", // "enum": [ // "WHEN_NO_MATCH", // "WHEN_NO_TEMPLATES", @@ -191,7 +191,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "RequestParameters": { // "additionalProperties": false, - // "description": "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.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -201,7 +201,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "RequestTemplates": { // "additionalProperties": false, - // "description": "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.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -210,12 +210,12 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "TimeoutInMillis": { - // "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.", + // "description": "", // "minimum": 50, // "type": "integer" // }, // "Type": { - // "description": "Specifies an API method integration type. The valid value is one of the following:\n 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.", + // "description": "", // "enum": [ // "AWS", // "AWS_PROXY", @@ -226,7 +226,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "Uri": { - // "description": "Specifies Uniform Resource Identifier (URI) of the integration endpoint.\n 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}\u0026{p1}={v1}\u0026p2={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\u0026Bucket={bucket}\u0026Key={key}`` or ``arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key}``", + // "description": "", // "type": "string" // } // }, @@ -240,37 +240,37 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: CacheKeyParameters "cache_key_parameters": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheNamespace "cache_namespace": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ConnectionId "connection_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ConnectionType "connection_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ContentHandling "content_handling": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Credentials "credentials": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: IntegrationHttpMethod "integration_http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: IntegrationResponses @@ -279,88 +279,88 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ContentHandling "content_handling": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResponseParameters "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResponseTemplates "response_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: SelectionPattern "selection_pattern": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the status code that is used to map the integration response to an existing MethodResponse.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Specifies the integration's responses.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: PassthroughBehavior "passthrough_behavior": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestParameters "request_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestTemplates "request_templates": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: TimeoutInMillis "timeout_in_millis": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies an API method integration type. The valid value is one of the following:\n 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.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Uri "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies Uniform Resource Identifier (URI) of the integration endpoint.\n 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}``", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration.", + Description: "``Integration`` is a property of the [AWS::ApiGateway::Method](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-method.html) resource that specifies information about the target backend that a method calls.", Computed: true, }, /*END ATTRIBUTE*/ // Property: MethodResponses // CloudFormation resource type schema: // // { - // "description": "Gets a method response associated with a given HTTP status code.", + // "description": "", // "items": { // "additionalProperties": false, - // "description": "Represents a method response of a given HTTP status code returned to the client. The method response is passed from the back end through the associated integration response that can be transformed using a mapping template.", + // "description": "", // "properties": { // "ResponseModels": { // "additionalProperties": false, - // "description": "Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -370,7 +370,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "ResponseParameters": { // "additionalProperties": false, - // "description": "A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.)", + // "description": "", // "patternProperties": { // "": { // "type": "boolean" @@ -379,7 +379,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "StatusCode": { - // "description": "The method response's status code.", + // "description": "", // "type": "string" // } // }, @@ -398,35 +398,35 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { "response_models": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResponseParameters "response_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.BoolType, - Description: "A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.)", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StatusCode "status_code": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The method response's status code.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Gets a method response associated with a given HTTP status code.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: OperationName // CloudFormation resource type schema: // // { - // "description": "A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example.", + // "description": "", // "type": "string" // } "operation_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestModels @@ -434,7 +434,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -445,7 +445,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { "request_models": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestParameters @@ -453,7 +453,7 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.", + // "description": "", // "patternProperties": { // "": { // "type": "boolean" @@ -464,40 +464,40 @@ func methodDataSource(ctx context.Context) (datasource.DataSource, error) { "request_parameters": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.BoolType, - Description: "A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestValidatorId // CloudFormation resource type schema: // // { - // "description": "The identifier of a RequestValidator for request validation.", + // "description": "", // "type": "string" // } "request_validator_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of a RequestValidator for request validation.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceId // CloudFormation resource type schema: // // { - // "description": "The Resource identifier for the MethodResponse resource.", + // "description": "", // "type": "string" // } "resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Resource identifier for the MethodResponse resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/model_resource_gen.go b/internal/aws/apigateway/model_resource_gen.go index dcf986b856..8e55f70837 100644 --- a/internal/aws/apigateway/model_resource_gen.go +++ b/internal/aws/apigateway/model_resource_gen.go @@ -28,11 +28,11 @@ func modelResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The content-type for the model.", + // "description": "", // "type": "string" // } "content_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The content-type for the model.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -44,11 +44,11 @@ func modelResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of the model.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the model.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -75,11 +75,11 @@ func modelResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -89,11 +89,11 @@ func modelResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.", + // "description": "", // "type": "string" // } "schema": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/model_singular_data_source_gen.go b/internal/aws/apigateway/model_singular_data_source_gen.go index c7c2dd7061..01af228398 100644 --- a/internal/aws/apigateway/model_singular_data_source_gen.go +++ b/internal/aws/apigateway/model_singular_data_source_gen.go @@ -26,22 +26,22 @@ func modelDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The content-type for the model.", + // "description": "", // "type": "string" // } "content_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The content-type for the model.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The description of the model.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the model.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name @@ -59,22 +59,22 @@ func modelDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Schema // CloudFormation resource type schema: // // { - // "description": "The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.", + // "description": "", // "type": "string" // } "schema": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/request_validator_resource_gen.go b/internal/aws/apigateway/request_validator_resource_gen.go index 7925719b8f..4462dc200c 100644 --- a/internal/aws/apigateway/request_validator_resource_gen.go +++ b/internal/aws/apigateway/request_validator_resource_gen.go @@ -29,11 +29,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of this RequestValidator", + // "description": "", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of this RequestValidator", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -59,11 +59,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -73,11 +73,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", + // "description": "", // "type": "boolean" // } "validate_request_body": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -88,11 +88,11 @@ func requestValidatorResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", + // "description": "", // "type": "boolean" // } "validate_request_parameters": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/request_validator_singular_data_source_gen.go b/internal/aws/apigateway/request_validator_singular_data_source_gen.go index 984568b967..0bdaec3f42 100644 --- a/internal/aws/apigateway/request_validator_singular_data_source_gen.go +++ b/internal/aws/apigateway/request_validator_singular_data_source_gen.go @@ -26,11 +26,11 @@ func requestValidatorDataSource(ctx context.Context) (datasource.DataSource, err // CloudFormation resource type schema: // // { - // "description": "The name of this RequestValidator", + // "description": "", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of this RequestValidator", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RequestValidatorId @@ -48,33 +48,33 @@ func requestValidatorDataSource(ctx context.Context) (datasource.DataSource, err // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ValidateRequestBody // CloudFormation resource type schema: // // { - // "description": "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", + // "description": "", // "type": "boolean" // } "validate_request_body": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ValidateRequestParameters // CloudFormation resource type schema: // // { - // "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", + // "description": "", // "type": "boolean" // } "validate_request_parameters": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/resource_resource_gen.go b/internal/aws/apigateway/resource_resource_gen.go index 60ad535717..92ea3df1a2 100644 --- a/internal/aws/apigateway/resource_resource_gen.go +++ b/internal/aws/apigateway/resource_resource_gen.go @@ -28,11 +28,11 @@ func resourceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The parent resource's identifier.", + // "description": "", // "type": "string" // } "parent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The parent resource's identifier.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -42,11 +42,11 @@ func resourceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The last path segment for this resource.", + // "description": "", // "type": "string" // } "path_part": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The last path segment for this resource.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -70,11 +70,11 @@ func resourceResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), diff --git a/internal/aws/apigateway/resource_singular_data_source_gen.go b/internal/aws/apigateway/resource_singular_data_source_gen.go index b4154dce7b..06648ef463 100644 --- a/internal/aws/apigateway/resource_singular_data_source_gen.go +++ b/internal/aws/apigateway/resource_singular_data_source_gen.go @@ -26,22 +26,22 @@ func resourceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The parent resource's identifier.", + // "description": "", // "type": "string" // } "parent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The parent resource's identifier.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: PathPart // CloudFormation resource type schema: // // { - // "description": "The last path segment for this resource.", + // "description": "", // "type": "string" // } "path_part": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The last path segment for this resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourceId @@ -59,11 +59,11 @@ func resourceDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/rest_api_resource_gen.go b/internal/aws/apigateway/rest_api_resource_gen.go index d2bb57718b..3b92a58966 100644 --- a/internal/aws/apigateway/rest_api_resource_gen.go +++ b/internal/aws/apigateway/rest_api_resource_gen.go @@ -36,11 +36,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer.", + // "description": "", // "type": "string" // } "api_key_source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -51,7 +51,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.", + // "description": "", // "items": { // "type": "string" // }, @@ -60,7 +60,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // } "binary_media_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -167,11 +167,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the RestApi that you want to clone from.", + // "description": "", // "type": "string" // } "clone_from": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RestApi that you want to clone from.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -183,11 +183,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of the RestApi.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the RestApi.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -198,11 +198,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint", + // "description": "", // "type": "boolean" // } "disable_execute_api_endpoint": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -217,7 +217,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // "description": "A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.", // "properties": { // "Types": { - // "description": "A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``\"EDGE\"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``.", + // "description": "", // "items": { // "type": "string" // }, @@ -225,7 +225,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": true // }, // "VpcEndpointIds": { - // "description": "A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type.", + // "description": "", // "items": { // "relationshipRef": { // "propertyPath": "/properties/Id", @@ -244,7 +244,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // Property: Types "types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``\"EDGE\"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -257,7 +257,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // Property: VpcEndpointIds "vpc_endpoint_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -279,11 +279,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``.", + // "description": "", // "type": "boolean" // } "fail_on_warnings": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -295,11 +295,11 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.", + // "description": "", // "type": "integer" // } "minimum_compression_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -342,7 +342,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -351,7 +351,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "parameters": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -406,7 +406,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -454,7 +454,7 @@ func restApiResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/rest_api_singular_data_source_gen.go b/internal/aws/apigateway/rest_api_singular_data_source_gen.go index a5d32c311d..8a5cb54085 100644 --- a/internal/aws/apigateway/rest_api_singular_data_source_gen.go +++ b/internal/aws/apigateway/rest_api_singular_data_source_gen.go @@ -27,18 +27,18 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer.", + // "description": "", // "type": "string" // } "api_key_source_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: BinaryMediaTypes // CloudFormation resource type schema: // // { - // "description": "The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.", + // "description": "", // "items": { // "type": "string" // }, @@ -47,7 +47,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // } "binary_media_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Body @@ -121,33 +121,33 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The ID of the RestApi that you want to clone from.", + // "description": "", // "type": "string" // } "clone_from": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the RestApi that you want to clone from.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The description of the RestApi.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of the RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DisableExecuteApiEndpoint // CloudFormation resource type schema: // // { - // "description": "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint", + // "description": "", // "type": "boolean" // } "disable_execute_api_endpoint": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: EndpointConfiguration @@ -158,7 +158,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "A list of the endpoint types of the API. Use this property when creating an API. When importing an existing API, specify the endpoint configuration types using the ``Parameters`` property.", // "properties": { // "Types": { - // "description": "A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``\"EDGE\"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``.", + // "description": "", // "items": { // "type": "string" // }, @@ -166,7 +166,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // "uniqueItems": true // }, // "VpcEndpointIds": { - // "description": "A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type.", + // "description": "", // "items": { // "relationshipRef": { // "propertyPath": "/properties/Id", @@ -185,13 +185,13 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // Property: Types "types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``\"EDGE\"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: VpcEndpointIds "vpc_endpoint_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -202,22 +202,22 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``.", + // "description": "", // "type": "boolean" // } "fail_on_warnings": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: MinimumCompressionSize // CloudFormation resource type schema: // // { - // "description": "A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.", + // "description": "", // "type": "integer" // } "minimum_compression_size": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Mode @@ -247,7 +247,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -256,7 +256,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // } "parameters": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Policy @@ -296,7 +296,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + // "description": "", // "items": { // "additionalProperties": false, // "description": "", @@ -330,7 +330,7 @@ func restApiDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/apigateway/stage_resource_gen.go b/internal/aws/apigateway/stage_resource_gen.go index 936df86d1e..6131dac027 100644 --- a/internal/aws/apigateway/stage_resource_gen.go +++ b/internal/aws/apigateway/stage_resource_gen.go @@ -42,7 +42,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Access log settings, including the access log format and access log destination ARN.", + // "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", // "properties": { // "DestinationArn": { // "description": "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``. This parameter is required to enable access logging.", @@ -76,7 +76,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Access log settings, including the access log format and access log destination ARN.", + Description: "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -87,11 +87,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether a cache cluster is enabled for the stage.", + // "description": "", // "type": "boolean" // } "cache_cluster_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether a cache cluster is enabled for the stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -102,11 +102,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html).", + // "description": "", // "type": "string" // } "cache_cluster_size": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html).", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -118,21 +118,21 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Settings for the canary deployment in this stage.", + // "description": "", // "properties": { // "DeploymentId": { - // "description": "The ID of the canary deployment.", + // "description": "", // "type": "string" // }, // "PercentTraffic": { - // "description": "The percent (0-100) of traffic diverted to a canary deployment.", + // "description": "", // "maximum": 100, // "minimum": 0, // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -141,7 +141,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -151,7 +151,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: DeploymentId "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the canary deployment.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -160,7 +160,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percent (0-100) of traffic diverted to a canary deployment.", + Description: "", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -174,7 +174,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -183,7 +183,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -191,7 +191,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Settings for the canary deployment in this stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -202,11 +202,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of a client certificate for an API stage.", + // "description": "", // "type": "string" // } "client_certificate_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of a client certificate for an API stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -217,11 +217,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The identifier of the Deployment that the stage points to.", + // "description": "", // "type": "string" // } "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the Deployment that the stage points to.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -232,11 +232,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The stage's description.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage's description.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -247,11 +247,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The version of the associated API documentation.", + // "description": "", // "type": "string" // } "documentation_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version of the associated API documentation.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -262,26 +262,26 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\\*/\\*`` for overriding all methods in the stage.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the ``AWS::ApiGateway::Stage`` resource contains a list of ``MethodSetting`` property types.", // "properties": { // "CacheDataEncrypted": { - // "description": "Specifies whether the cached responses are encrypted.", + // "description": "", // "type": "boolean" // }, // "CacheTtlInSeconds": { - // "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + // "description": "", // "type": "integer" // }, // "CachingEnabled": { - // "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + // "description": "", // "type": "boolean" // }, // "DataTraceEnabled": { - // "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + // "description": "", // "type": "boolean" // }, // "HttpMethod": { @@ -289,11 +289,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "LoggingLevel": { - // "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + // "description": "", // "type": "string" // }, // "MetricsEnabled": { - // "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + // "description": "", // "type": "boolean" // }, // "ResourcePath": { @@ -301,12 +301,12 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // }, // "ThrottlingBurstLimit": { - // "description": "Specifies the throttling burst limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "ThrottlingRateLimit": { - // "description": "Specifies the throttling rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -321,7 +321,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: CacheDataEncrypted "cache_data_encrypted": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the cached responses are encrypted.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -330,7 +330,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CacheTtlInSeconds "cache_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ @@ -339,7 +339,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: CachingEnabled "caching_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -348,7 +348,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: DataTraceEnabled "data_trace_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -366,7 +366,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: LoggingLevel "logging_level": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -375,7 +375,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: MetricsEnabled "metrics_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -393,7 +393,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingBurstLimit "throttling_burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling burst limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -405,7 +405,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingRateLimit "throttling_rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling rate limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -417,7 +417,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\\*/\\*`` for overriding all methods in the stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -428,11 +428,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), @@ -442,11 +442,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.", + // "description": "", // "type": "string" // } "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -458,7 +458,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, @@ -517,7 +517,7 @@ func stageResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -529,11 +529,11 @@ func stageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether active tracing with X-ray is enabled for the Stage.", + // "description": "", // "type": "boolean" // } "tracing_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether active tracing with X-ray is enabled for the Stage.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/stage_singular_data_source_gen.go b/internal/aws/apigateway/stage_singular_data_source_gen.go index 1eb70119d5..820c80202b 100644 --- a/internal/aws/apigateway/stage_singular_data_source_gen.go +++ b/internal/aws/apigateway/stage_singular_data_source_gen.go @@ -28,7 +28,7 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Access log settings, including the access log format and access log destination ARN.", + // "description": "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", // "properties": { // "DestinationArn": { // "description": "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``. This parameter is required to enable access logging.", @@ -54,29 +54,29 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Access log settings, including the access log format and access log destination ARN.", + Description: "The ``AccessLogSetting`` property type specifies settings for logging access in this stage.\n ``AccessLogSetting`` is a property of the [AWS::ApiGateway::Stage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-stage.html) resource.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheClusterEnabled // CloudFormation resource type schema: // // { - // "description": "Specifies whether a cache cluster is enabled for the stage.", + // "description": "", // "type": "boolean" // } "cache_cluster_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether a cache cluster is enabled for the stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheClusterSize // CloudFormation resource type schema: // // { - // "description": "The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html).", + // "description": "", // "type": "string" // } "cache_cluster_size": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html).", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CanarySetting @@ -84,21 +84,21 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Settings for the canary deployment in this stage.", + // "description": "", // "properties": { // "DeploymentId": { - // "description": "The ID of the canary deployment.", + // "description": "", // "type": "string" // }, // "PercentTraffic": { - // "description": "The percent (0-100) of traffic diverted to a canary deployment.", + // "description": "", // "maximum": 100, // "minimum": 0, // "type": "number" // }, // "StageVariableOverrides": { // "additionalProperties": false, - // "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -107,7 +107,7 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "object" // }, // "UseStageCache": { - // "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + // "description": "", // "type": "boolean" // } // }, @@ -117,98 +117,98 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: DeploymentId "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of the canary deployment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: PercentTraffic "percent_traffic": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The percent (0-100) of traffic diverted to a canary deployment.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageVariableOverrides "stage_variable_overrides": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: UseStageCache "use_stage_cache": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Settings for the canary deployment in this stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ClientCertificateId // CloudFormation resource type schema: // // { - // "description": "The identifier of a client certificate for an API stage.", + // "description": "", // "type": "string" // } "client_certificate_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of a client certificate for an API stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeploymentId // CloudFormation resource type schema: // // { - // "description": "The identifier of the Deployment that the stage points to.", + // "description": "", // "type": "string" // } "deployment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The identifier of the Deployment that the stage points to.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The stage's description.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The stage's description.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DocumentationVersion // CloudFormation resource type schema: // // { - // "description": "The version of the associated API documentation.", + // "description": "", // "type": "string" // } "documentation_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version of the associated API documentation.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: MethodSettings // CloudFormation resource type schema: // // { - // "description": "A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\\*/\\*`` for overriding all methods in the stage.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, // "description": "The ``MethodSetting`` property type configures settings for all methods in a stage.\n The ``MethodSettings`` property of the ``AWS::ApiGateway::Stage`` resource contains a list of ``MethodSetting`` property types.", // "properties": { // "CacheDataEncrypted": { - // "description": "Specifies whether the cached responses are encrypted.", + // "description": "", // "type": "boolean" // }, // "CacheTtlInSeconds": { - // "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + // "description": "", // "type": "integer" // }, // "CachingEnabled": { - // "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + // "description": "", // "type": "boolean" // }, // "DataTraceEnabled": { - // "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + // "description": "", // "type": "boolean" // }, // "HttpMethod": { @@ -216,11 +216,11 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "LoggingLevel": { - // "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + // "description": "", // "type": "string" // }, // "MetricsEnabled": { - // "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + // "description": "", // "type": "boolean" // }, // "ResourcePath": { @@ -228,12 +228,12 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // }, // "ThrottlingBurstLimit": { - // "description": "Specifies the throttling burst limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "ThrottlingRateLimit": { - // "description": "Specifies the throttling rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -248,22 +248,22 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: CacheDataEncrypted "cache_data_encrypted": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the cached responses are encrypted.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CacheTtlInSeconds "cache_ttl_in_seconds": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: CachingEnabled "caching_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: DataTraceEnabled "data_trace_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: HttpMethod @@ -273,12 +273,12 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: LoggingLevel "logging_level": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: MetricsEnabled "metrics_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ResourcePath @@ -288,46 +288,46 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: ThrottlingBurstLimit "throttling_burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling burst limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: ThrottlingRateLimit "throttling_rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Specifies the throttling rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\\*/\\*`` for overriding all methods in the stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RestApiId // CloudFormation resource type schema: // // { - // "description": "The string identifier of the associated RestApi.", + // "description": "", // "type": "string" // } "rest_api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The string identifier of the associated RestApi.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: StageName // CloudFormation resource type schema: // // { - // "description": "The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.", + // "description": "", // "type": "string" // } "stage_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, @@ -370,18 +370,18 @@ func stageDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: TracingEnabled // CloudFormation resource type schema: // // { - // "description": "Specifies whether active tracing with X-ray is enabled for the Stage.", + // "description": "", // "type": "boolean" // } "tracing_enabled": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether active tracing with X-ray is enabled for the Stage.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Variables diff --git a/internal/aws/apigateway/usage_plan_key_resource_gen.go b/internal/aws/apigateway/usage_plan_key_resource_gen.go index d7b57a6b27..7b60c8ca5e 100644 --- a/internal/aws/apigateway/usage_plan_key_resource_gen.go +++ b/internal/aws/apigateway/usage_plan_key_resource_gen.go @@ -58,14 +58,14 @@ func usagePlanKeyResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The type of a UsagePlanKey resource for a plan customer.", + // "description": "", // "enum": [ // "API_KEY" // ], // "type": "string" // } "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of a UsagePlanKey resource for a plan customer.", + Description: "", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( diff --git a/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go b/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go index c2834b6b41..581b705214 100644 --- a/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go +++ b/internal/aws/apigateway/usage_plan_key_singular_data_source_gen.go @@ -48,14 +48,14 @@ func usagePlanKeyDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "The type of a UsagePlanKey resource for a plan customer.", + // "description": "", // "enum": [ // "API_KEY" // ], // "type": "string" // } "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of a UsagePlanKey resource for a plan customer.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: UsagePlanId diff --git a/internal/aws/apigateway/usage_plan_resource_gen.go b/internal/aws/apigateway/usage_plan_resource_gen.go index 2572aa2e74..2a608bca86 100644 --- a/internal/aws/apigateway/usage_plan_resource_gen.go +++ b/internal/aws/apigateway/usage_plan_resource_gen.go @@ -39,34 +39,34 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The associated API stages of a usage plan.", + // "description": "", // "items": { // "additionalProperties": false, - // "description": "API stage name of the associated API stage in a usage plan.", + // "description": "", // "properties": { // "ApiId": { - // "description": "API Id of the associated API stage in a usage plan.", + // "description": "", // "type": "string" // }, // "Stage": { - // "description": "API stage name of the associated API stage in a usage plan.", + // "description": "", // "type": "string" // }, // "Throttle": { // "additionalProperties": false, - // "description": "Map containing method level throttling information for API stage in a usage plan.", + // "description": "", // "patternProperties": { // "": { // "additionalProperties": false, // "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", // "properties": { // "BurstLimit": { - // "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "description": "The API target request rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -87,7 +87,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ApiId "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "API Id of the associated API stage in a usage plan.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -96,7 +96,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Stage "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "API stage name of the associated API stage in a usage plan.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -110,7 +110,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -122,7 +122,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request rate limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -134,7 +134,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Map containing method level throttling information for API stage in a usage plan.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -143,7 +143,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The associated API stages of a usage plan.", + Description: "", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -157,11 +157,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The description of a usage plan.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of a usage plan.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -187,20 +187,20 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The target maximum number of permitted requests per a given unit time interval.", + // "description": "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.", // "properties": { // "Limit": { - // "description": "The target maximum number of requests that can be made in a given time period.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "Offset": { - // "description": "The number of requests subtracted from the given limit in the initial time period.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "Period": { - // "description": "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\".", + // "description": "", // "type": "string" // } // }, @@ -210,7 +210,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Limit "limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The target maximum number of requests that can be made in a given time period.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -222,7 +222,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Offset "offset": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of requests subtracted from the given limit in the initial time period.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -234,7 +234,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Period "period": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\".", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -242,7 +242,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The target maximum number of permitted requests per a given unit time interval.", + Description: "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -253,7 +253,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, @@ -312,7 +312,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -325,15 +325,15 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "A map containing method level throttling information for API stage in a usage plan.", + // "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", // "properties": { // "BurstLimit": { - // "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "description": "The API target request rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -344,7 +344,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Int64{ /*START VALIDATORS*/ @@ -356,7 +356,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request rate limit.", + Description: "", Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ @@ -367,7 +367,7 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "A map containing method level throttling information for API stage in a usage plan.", + Description: "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -378,11 +378,11 @@ func usagePlanResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The name of a usage plan.", + // "description": "", // "type": "string" // } "usage_plan_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of a usage plan.", + Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/apigateway/usage_plan_singular_data_source_gen.go b/internal/aws/apigateway/usage_plan_singular_data_source_gen.go index 20c2e91541..a978a22d02 100644 --- a/internal/aws/apigateway/usage_plan_singular_data_source_gen.go +++ b/internal/aws/apigateway/usage_plan_singular_data_source_gen.go @@ -26,34 +26,34 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The associated API stages of a usage plan.", + // "description": "", // "items": { // "additionalProperties": false, - // "description": "API stage name of the associated API stage in a usage plan.", + // "description": "", // "properties": { // "ApiId": { - // "description": "API Id of the associated API stage in a usage plan.", + // "description": "", // "type": "string" // }, // "Stage": { - // "description": "API stage name of the associated API stage in a usage plan.", + // "description": "", // "type": "string" // }, // "Throttle": { // "additionalProperties": false, - // "description": "Map containing method level throttling information for API stage in a usage plan.", + // "description": "", // "patternProperties": { // "": { // "additionalProperties": false, // "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", // "properties": { // "BurstLimit": { - // "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "description": "The API target request rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -74,12 +74,12 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ApiId "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "API Id of the associated API stage in a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Stage "stage": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "API stage name of the associated API stage in a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Throttle @@ -89,33 +89,33 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Map containing method level throttling information for API stage in a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The associated API stages of a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "The description of a usage plan.", + // "description": "", // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description of a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id @@ -134,20 +134,20 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The target maximum number of permitted requests per a given unit time interval.", + // "description": "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.", // "properties": { // "Limit": { - // "description": "The target maximum number of requests that can be made in a given time period.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "Offset": { - // "description": "The number of requests subtracted from the given limit in the initial time period.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "Period": { - // "description": "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\".", + // "description": "", // "type": "string" // } // }, @@ -157,28 +157,28 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Limit "limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The target maximum number of requests that can be made in a given time period.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Offset "offset": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of requests subtracted from the given limit in the initial time period.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Period "period": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\".", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The target maximum number of permitted requests per a given unit time interval.", + Description: "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "description": "The collection of tags. Each tag element is associated with a given resource.", + // "description": "", // "insertionOrder": false, // "items": { // "additionalProperties": false, @@ -221,7 +221,7 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The collection of tags. Each tag element is associated with a given resource.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Throttle @@ -229,15 +229,15 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "A map containing method level throttling information for API stage in a usage plan.", + // "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", // "properties": { // "BurstLimit": { - // "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + // "description": "", // "minimum": 0, // "type": "integer" // }, // "RateLimit": { - // "description": "The API target request rate limit.", + // "description": "", // "minimum": 0, // "type": "number" // } @@ -248,27 +248,27 @@ func usagePlanDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: BurstLimit "burst_limit": schema.Int64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: RateLimit "rate_limit": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The API target request rate limit.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "A map containing method level throttling information for API stage in a usage plan.", + Description: "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs.", Computed: true, }, /*END ATTRIBUTE*/ // Property: UsagePlanName // CloudFormation resource type schema: // // { - // "description": "The name of a usage plan.", + // "description": "", // "type": "string" // } "usage_plan_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of a usage plan.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/appsync/api_resource_gen.go b/internal/aws/appsync/api_resource_gen.go index b911e36bad..efecbe651a 100644 --- a/internal/aws/appsync/api_resource_gen.go +++ b/internal/aws/appsync/api_resource_gen.go @@ -16,13 +16,11 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" - "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" - "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" @@ -70,20 +68,31 @@ func apiResource(ctx context.Context) (resource.Resource, error) { // { // "additionalProperties": false, // "description": "A map of DNS names for the AppSync API.", - // "patternProperties": { - // "": { + // "properties": { + // "Http": { + // "type": "string" + // }, + // "Realtime": { // "type": "string" // } // }, // "type": "object" // } - "dns": // Pattern: "" - schema.MapAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, + "dns": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Http + "http": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Realtime + "realtime": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ Description: "A map of DNS names for the AppSync API.", Computed: true, - PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ - mapplanmodifier.UseStateForUnknown(), + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: EventConfig @@ -757,6 +766,7 @@ func apiResource(ctx context.Context) (resource.Resource, error) { "default_subscribe_auth_modes": "DefaultSubscribeAuthModes", "dns": "Dns", "event_config": "EventConfig", + "http": "Http", "iat_ttl": "IatTTL", "identity_validation_expression": "IdentityValidationExpression", "issuer": "Issuer", @@ -767,6 +777,7 @@ func apiResource(ctx context.Context) (resource.Resource, error) { "name": "Name", "open_id_connect_config": "OpenIDConnectConfig", "owner_contact": "OwnerContact", + "realtime": "Realtime", "tags": "Tags", "user_pool_id": "UserPoolId", "value": "Value", diff --git a/internal/aws/appsync/api_singular_data_source_gen.go b/internal/aws/appsync/api_singular_data_source_gen.go index 1617a0f525..ec521ea3ed 100644 --- a/internal/aws/appsync/api_singular_data_source_gen.go +++ b/internal/aws/appsync/api_singular_data_source_gen.go @@ -10,7 +10,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" - "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -51,16 +50,27 @@ func apiDataSource(ctx context.Context) (datasource.DataSource, error) { // { // "additionalProperties": false, // "description": "A map of DNS names for the AppSync API.", - // "patternProperties": { - // "": { + // "properties": { + // "Http": { + // "type": "string" + // }, + // "Realtime": { // "type": "string" // } // }, // "type": "object" // } - "dns": // Pattern: "" - schema.MapAttribute{ /*START ATTRIBUTE*/ - ElementType: types.StringType, + "dns": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Http + "http": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Realtime + "realtime": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ Description: "A map of DNS names for the AppSync API.", Computed: true, }, /*END ATTRIBUTE*/ @@ -516,6 +526,7 @@ func apiDataSource(ctx context.Context) (datasource.DataSource, error) { "default_subscribe_auth_modes": "DefaultSubscribeAuthModes", "dns": "Dns", "event_config": "EventConfig", + "http": "Http", "iat_ttl": "IatTTL", "identity_validation_expression": "IdentityValidationExpression", "issuer": "Issuer", @@ -526,6 +537,7 @@ func apiDataSource(ctx context.Context) (datasource.DataSource, error) { "name": "Name", "open_id_connect_config": "OpenIDConnectConfig", "owner_contact": "OwnerContact", + "realtime": "Realtime", "tags": "Tags", "user_pool_id": "UserPoolId", "value": "Value", diff --git a/internal/aws/appsync/channel_namespace_resource_gen.go b/internal/aws/appsync/channel_namespace_resource_gen.go new file mode 100644 index 0000000000..3662c1be79 --- /dev/null +++ b/internal/aws/appsync/channel_namespace_resource_gen.go @@ -0,0 +1,354 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appsync + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_appsync_channel_namespace", channelNamespaceResource) +} + +// channelNamespaceResource returns the Terraform awscc_appsync_channel_namespace resource. +// This Terraform resource corresponds to the CloudFormation AWS::AppSync::ChannelNamespace resource. +func channelNamespaceResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiId + // CloudFormation resource type schema: + // + // { + // "description": "AppSync Api Id that this Channel Namespace belongs to.", + // "type": "string" + // } + "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "AppSync Api Id that this Channel Namespace belongs to.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ChannelNamespaceArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) for the Channel Namespace.", + // "type": "string" + // } + "channel_namespace_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) for the Channel Namespace.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CodeHandlers + // CloudFormation resource type schema: + // + // { + // "description": "String of APPSYNC_JS code to be used by the handlers.", + // "maxLength": 32768, + // "minLength": 1, + // "type": "string" + // } + "code_handlers": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "String of APPSYNC_JS code to be used by the handlers.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 32768), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: CodeS3Location + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon S3 endpoint where the code is located.", + // "type": "string" + // } + "code_s3_location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon S3 endpoint where the code is located.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // CodeS3Location is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Namespace indentifier.", + // "maxLength": 50, + // "minLength": 1, + // "pattern": "([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,48}[A-Za-z0-9])?)", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Namespace indentifier.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 50), + stringvalidator.RegexMatches(regexp.MustCompile("([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,48}[A-Za-z0-9])?)"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: PublishAuthModes + // CloudFormation resource type schema: + // + // { + // "description": "List of AuthModes supported for Publish operations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An auth mode.", + // "properties": { + // "AuthType": { + // "description": "Security configuration for your AppSync API.", + // "enum": [ + // "AMAZON_COGNITO_USER_POOLS", + // "AWS_IAM", + // "API_KEY", + // "OPENID_CONNECT", + // "AWS_LAMBDA" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "publish_auth_modes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Security configuration for your AppSync API.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AMAZON_COGNITO_USER_POOLS", + "AWS_IAM", + "API_KEY", + "OPENID_CONNECT", + "AWS_LAMBDA", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of AuthModes supported for Publish operations.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SubscribeAuthModes + // CloudFormation resource type schema: + // + // { + // "description": "List of AuthModes supported for Subscribe operations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An auth mode.", + // "properties": { + // "AuthType": { + // "description": "Security configuration for your AppSync API.", + // "enum": [ + // "AMAZON_COGNITO_USER_POOLS", + // "AWS_IAM", + // "API_KEY", + // "OPENID_CONNECT", + // "AWS_LAMBDA" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "subscribe_auth_modes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Security configuration for your AppSync API.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "AMAZON_COGNITO_USER_POOLS", + "AWS_IAM", + "API_KEY", + "OPENID_CONNECT", + "AWS_LAMBDA", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of AuthModes supported for Subscribe operations.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + // "properties": { + // "Key": { + // "description": "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[\\s\\w+-=\\.:/@]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^[\\s\\w+-=\\.:/@]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this AppSync API.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource schema for AppSync ChannelNamespace", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppSync::ChannelNamespace").WithTerraformTypeName("awscc_appsync_channel_namespace") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "api_id": "ApiId", + "auth_type": "AuthType", + "channel_namespace_arn": "ChannelNamespaceArn", + "code_handlers": "CodeHandlers", + "code_s3_location": "CodeS3Location", + "key": "Key", + "name": "Name", + "publish_auth_modes": "PublishAuthModes", + "subscribe_auth_modes": "SubscribeAuthModes", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/CodeS3Location", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/appsync/channel_namespace_resource_gen_test.go b/internal/aws/appsync/channel_namespace_resource_gen_test.go new file mode 100644 index 0000000000..6fab97886d --- /dev/null +++ b/internal/aws/appsync/channel_namespace_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package appsync_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppSyncChannelNamespace_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppSync::ChannelNamespace", "awscc_appsync_channel_namespace", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/appsync/channel_namespace_singular_data_source_gen.go b/internal/aws/appsync/channel_namespace_singular_data_source_gen.go new file mode 100644 index 0000000000..db787306aa --- /dev/null +++ b/internal/aws/appsync/channel_namespace_singular_data_source_gen.go @@ -0,0 +1,252 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appsync + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_appsync_channel_namespace", channelNamespaceDataSource) +} + +// channelNamespaceDataSource returns the Terraform awscc_appsync_channel_namespace data source. +// This Terraform data source corresponds to the CloudFormation AWS::AppSync::ChannelNamespace resource. +func channelNamespaceDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiId + // CloudFormation resource type schema: + // + // { + // "description": "AppSync Api Id that this Channel Namespace belongs to.", + // "type": "string" + // } + "api_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "AppSync Api Id that this Channel Namespace belongs to.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ChannelNamespaceArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) for the Channel Namespace.", + // "type": "string" + // } + "channel_namespace_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) for the Channel Namespace.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CodeHandlers + // CloudFormation resource type schema: + // + // { + // "description": "String of APPSYNC_JS code to be used by the handlers.", + // "maxLength": 32768, + // "minLength": 1, + // "type": "string" + // } + "code_handlers": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "String of APPSYNC_JS code to be used by the handlers.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: CodeS3Location + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon S3 endpoint where the code is located.", + // "type": "string" + // } + "code_s3_location": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon S3 endpoint where the code is located.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Namespace indentifier.", + // "maxLength": 50, + // "minLength": 1, + // "pattern": "([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,48}[A-Za-z0-9])?)", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Namespace indentifier.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PublishAuthModes + // CloudFormation resource type schema: + // + // { + // "description": "List of AuthModes supported for Publish operations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An auth mode.", + // "properties": { + // "AuthType": { + // "description": "Security configuration for your AppSync API.", + // "enum": [ + // "AMAZON_COGNITO_USER_POOLS", + // "AWS_IAM", + // "API_KEY", + // "OPENID_CONNECT", + // "AWS_LAMBDA" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "publish_auth_modes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Security configuration for your AppSync API.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of AuthModes supported for Publish operations.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SubscribeAuthModes + // CloudFormation resource type schema: + // + // { + // "description": "List of AuthModes supported for Subscribe operations.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An auth mode.", + // "properties": { + // "AuthType": { + // "description": "Security configuration for your AppSync API.", + // "enum": [ + // "AMAZON_COGNITO_USER_POOLS", + // "AWS_IAM", + // "API_KEY", + // "OPENID_CONNECT", + // "AWS_LAMBDA" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + "subscribe_auth_modes": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthType + "auth_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Security configuration for your AppSync API.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of AuthModes supported for Subscribe operations.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + // "properties": { + // "Key": { + // "description": "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "description": "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[\\s\\w+-=\\.:/@]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An arbitrary set of tags (key-value pairs) for this AppSync API.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::AppSync::ChannelNamespace", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::AppSync::ChannelNamespace").WithTerraformTypeName("awscc_appsync_channel_namespace") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "api_id": "ApiId", + "auth_type": "AuthType", + "channel_namespace_arn": "ChannelNamespaceArn", + "code_handlers": "CodeHandlers", + "code_s3_location": "CodeS3Location", + "key": "Key", + "name": "Name", + "publish_auth_modes": "PublishAuthModes", + "subscribe_auth_modes": "SubscribeAuthModes", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/appsync/channel_namespace_singular_data_source_gen_test.go b/internal/aws/appsync/channel_namespace_singular_data_source_gen_test.go new file mode 100644 index 0000000000..b544a35dea --- /dev/null +++ b/internal/aws/appsync/channel_namespace_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package appsync_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSAppSyncChannelNamespaceDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppSync::ChannelNamespace", "awscc_appsync_channel_namespace", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSAppSyncChannelNamespaceDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::AppSync::ChannelNamespace", "awscc_appsync_channel_namespace", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/autoscaling/auto_scaling_group_resource_gen.go b/internal/aws/autoscaling/auto_scaling_group_resource_gen.go index 5f1679103f..c265e3e67d 100644 --- a/internal/aws/autoscaling/auto_scaling_group_resource_gen.go +++ b/internal/aws/autoscaling/auto_scaling_group_resource_gen.go @@ -52,6 +52,47 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: AvailabilityZoneDistribution + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "CapacityDistributionStrategy": { + // "enum": [ + // "balanced-best-effort", + // "balanced-only" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "availability_zone_distribution": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CapacityDistributionStrategy + "capacity_distribution_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "balanced-best-effort", + "balanced-only", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: AvailabilityZones // CloudFormation resource type schema: // @@ -1905,16 +1946,18 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The traffic sources associated with this Auto Scaling group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Identifying information for a traffic source.", // "properties": { // "Identifier": { + // "description": "Identifies the traffic source.\n For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.\n For example: \n + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` \n + Classic Load Balancer name: ``my-classic-load-balancer`` \n + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` \n \n To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations.\n To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation.", // "type": "string" // }, // "Type": { + // "description": "Provides additional context for the value of ``Identifier``.\n The following lists the valid values:\n + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.\n + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.\n + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.\n \n Required if the identifier is the name of a Classic Load Balancer.", // "type": "string" // } // }, @@ -1932,8 +1975,9 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Identifier "identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Identifies the traffic source.\n For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.\n For example: \n + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` \n + Classic Load Balancer name: ``my-classic-load-balancer`` \n + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` \n \n To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations.\n To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -1943,8 +1987,9 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, + Description: "Provides additional context for the value of ``Identifier``.\n The following lists the valid values:\n + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.\n + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.\n + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.\n \n Required if the identifier is the name of a Classic Load Balancer.", + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ fwvalidators.NotNullString(), }, /*END VALIDATORS*/ @@ -1954,7 +1999,7 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The traffic sources associated with this Auto Scaling group.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -2012,10 +2057,12 @@ func autoScalingGroupResource(ctx context.Context) (resource.Resource, error) { "accelerator_types": "AcceleratorTypes", "allowed_instance_types": "AllowedInstanceTypes", "auto_scaling_group_name": "AutoScalingGroupName", + "availability_zone_distribution": "AvailabilityZoneDistribution", "availability_zones": "AvailabilityZones", "bare_metal": "BareMetal", "baseline_ebs_bandwidth_mbps": "BaselineEbsBandwidthMbps", "burstable_performance": "BurstablePerformance", + "capacity_distribution_strategy": "CapacityDistributionStrategy", "capacity_rebalance": "CapacityRebalance", "context": "Context", "cooldown": "Cooldown", diff --git a/internal/aws/autoscaling/auto_scaling_group_singular_data_source_gen.go b/internal/aws/autoscaling/auto_scaling_group_singular_data_source_gen.go index 1ed62e141f..62ab00976b 100644 --- a/internal/aws/autoscaling/auto_scaling_group_singular_data_source_gen.go +++ b/internal/aws/autoscaling/auto_scaling_group_singular_data_source_gen.go @@ -34,6 +34,33 @@ func autoScalingGroupDataSource(ctx context.Context) (datasource.DataSource, err Description: "The name of the Auto Scaling group. This name must be unique per Region per account.\n The name can contain any ASCII character 33 to 126 including most punctuation characters, digits, and upper and lowercased letters.\n You cannot use a colon (:) in the name.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: AvailabilityZoneDistribution + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "", + // "properties": { + // "CapacityDistributionStrategy": { + // "enum": [ + // "balanced-best-effort", + // "balanced-only" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + "availability_zone_distribution": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CapacityDistributionStrategy + "capacity_distribution_strategy": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: AvailabilityZones // CloudFormation resource type schema: // @@ -1383,16 +1410,18 @@ func autoScalingGroupDataSource(ctx context.Context) (datasource.DataSource, err // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The traffic sources associated with this Auto Scaling group.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "Identifying information for a traffic source.", // "properties": { // "Identifier": { + // "description": "Identifies the traffic source.\n For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.\n For example: \n + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` \n + Classic Load Balancer name: ``my-classic-load-balancer`` \n + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` \n \n To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations.\n To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation.", // "type": "string" // }, // "Type": { + // "description": "Provides additional context for the value of ``Identifier``.\n The following lists the valid values:\n + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.\n + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.\n + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.\n \n Required if the identifier is the name of a Classic Load Balancer.", // "type": "string" // } // }, @@ -1410,15 +1439,17 @@ func autoScalingGroupDataSource(ctx context.Context) (datasource.DataSource, err Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Identifier "identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Identifies the traffic source.\n For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.\n For example: \n + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` \n + Classic Load Balancer name: ``my-classic-load-balancer`` \n + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` \n \n To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations.\n To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation.", + Computed: true, }, /*END ATTRIBUTE*/ // Property: Type "type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Computed: true, + Description: "Provides additional context for the value of ``Identifier``.\n The following lists the valid values:\n + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.\n + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.\n + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.\n \n Required if the identifier is the name of a Classic Load Balancer.", + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "", + Description: "The traffic sources associated with this Auto Scaling group.", Computed: true, }, /*END ATTRIBUTE*/ // Property: VPCZoneIdentifier @@ -1462,10 +1493,12 @@ func autoScalingGroupDataSource(ctx context.Context) (datasource.DataSource, err "accelerator_types": "AcceleratorTypes", "allowed_instance_types": "AllowedInstanceTypes", "auto_scaling_group_name": "AutoScalingGroupName", + "availability_zone_distribution": "AvailabilityZoneDistribution", "availability_zones": "AvailabilityZones", "bare_metal": "BareMetal", "baseline_ebs_bandwidth_mbps": "BaselineEbsBandwidthMbps", "burstable_performance": "BurstablePerformance", + "capacity_distribution_strategy": "CapacityDistributionStrategy", "capacity_rebalance": "CapacityRebalance", "context": "Context", "cooldown": "Cooldown", diff --git a/internal/aws/bedrock/application_inference_profile_plural_data_source_gen.go b/internal/aws/bedrock/application_inference_profile_plural_data_source_gen.go new file mode 100644 index 0000000000..b199db5518 --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_application_inference_profiles", applicationInferenceProfilesDataSource) +} + +// applicationInferenceProfilesDataSource returns the Terraform awscc_bedrock_application_inference_profiles data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::ApplicationInferenceProfile resource. +func applicationInferenceProfilesDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::Bedrock::ApplicationInferenceProfile", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::ApplicationInferenceProfile").WithTerraformTypeName("awscc_bedrock_application_inference_profiles") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/application_inference_profile_plural_data_source_gen_test.go b/internal/aws/bedrock/application_inference_profile_plural_data_source_gen_test.go new file mode 100644 index 0000000000..5c1bc5ad68 --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockApplicationInferenceProfilesDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::ApplicationInferenceProfile", "awscc_bedrock_application_inference_profiles", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/bedrock/application_inference_profile_resource_gen.go b/internal/aws/bedrock/application_inference_profile_resource_gen.go new file mode 100644 index 0000000000..82c3e5aa9f --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_resource_gen.go @@ -0,0 +1,400 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_bedrock_application_inference_profile", applicationInferenceProfileResource) +} + +// applicationInferenceProfileResource returns the Terraform awscc_bedrock_application_inference_profile resource. +// This Terraform resource corresponds to the CloudFormation AWS::Bedrock::ApplicationInferenceProfile resource. +func applicationInferenceProfileResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the inference profile", + // "maxLength": 200, + // "minLength": 1, + // "pattern": "^([0-9a-zA-Z:.][ _-]?)+$", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the inference profile", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 200), + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z:.][ _-]?)+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileId + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/)?[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileName + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-9a-zA-Z][ _-]?)+$", + // "type": "string" + // } + "inference_profile_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^([0-9a-zA-Z][ _-]?)+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModelSource + // CloudFormation resource type schema: + // + // { + // "description": "Various ways to encode a list of models in a CreateInferenceProfile request", + // "properties": { + // "CopyFrom": { + // "description": "Source arns for a custom inference profile to copy its regional load balancing config from. This\ncan either be a foundation model or predefined inference profile ARN.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|foundation-model)/[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "model_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CopyFrom + "copy_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Source arns for a custom inference profile to copy its regional load balancing config from. This\ncan either be a foundation model or predefined inference profile ARN.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|foundation-model)/[a-zA-Z0-9-:.]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Various ways to encode a list of models in a CreateInferenceProfile request", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // ModelSource is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Models + // CloudFormation resource type schema: + // + // { + // "description": "List of model configuration", + // "items": { + // "additionalProperties": false, + // "description": "Model configuration", + // "properties": { + // "ModelArn": { + // "description": "ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "models": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelArn + "model_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of model configuration", + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Status of the Inference Profile", + // "enum": [ + // "ACTIVE" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Status of the Inference Profile", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "List of Tags", + // "items": { + // "additionalProperties": false, + // "description": "Definition of the key/value pair for a tag", + // "properties": { + // "Key": { + // "description": "Tag Key", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // }, + // "Value": { + // "description": "Tag Value", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 0, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tag Key", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\s._:/=+@-]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tag Value", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\s._:/=+@-]*$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of Tags", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 200), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "Type of the Inference Profile", + // "enum": [ + // "APPLICATION", + // "SYSTEM_DEFINED" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of the Inference Profile", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::ApplicationInferenceProfile").WithTerraformTypeName("awscc_bedrock_application_inference_profile") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "copy_from": "CopyFrom", + "created_at": "CreatedAt", + "description": "Description", + "inference_profile_arn": "InferenceProfileArn", + "inference_profile_id": "InferenceProfileId", + "inference_profile_identifier": "InferenceProfileIdentifier", + "inference_profile_name": "InferenceProfileName", + "key": "Key", + "model_arn": "ModelArn", + "model_source": "ModelSource", + "models": "Models", + "status": "Status", + "tags": "Tags", + "type": "Type", + "updated_at": "UpdatedAt", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ModelSource", + }) + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/application_inference_profile_resource_gen_test.go b/internal/aws/bedrock/application_inference_profile_resource_gen_test.go new file mode 100644 index 0000000000..350503648f --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockApplicationInferenceProfile_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::ApplicationInferenceProfile", "awscc_bedrock_application_inference_profile", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/bedrock/application_inference_profile_singular_data_source_gen.go b/internal/aws/bedrock/application_inference_profile_singular_data_source_gen.go new file mode 100644 index 0000000000..cb30ba01ad --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_singular_data_source_gen.go @@ -0,0 +1,300 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-timetypes/timetypes" + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_bedrock_application_inference_profile", applicationInferenceProfileDataSource) +} + +// applicationInferenceProfileDataSource returns the Terraform awscc_bedrock_application_inference_profile data source. +// This Terraform data source corresponds to the CloudFormation AWS::Bedrock::ApplicationInferenceProfile resource. +func applicationInferenceProfileDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CreatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp", + // "format": "date-time", + // "type": "string" + // } + "created_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the inference profile", + // "maxLength": 200, + // "minLength": 1, + // "pattern": "^([0-9a-zA-Z:.][ _-]?)+$", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the inference profile", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileArn + // CloudFormation resource type schema: + // + // { + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileId + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/)?[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + "inference_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InferenceProfileName + // CloudFormation resource type schema: + // + // { + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^([0-9a-zA-Z][ _-]?)+$", + // "type": "string" + // } + "inference_profile_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModelSource + // CloudFormation resource type schema: + // + // { + // "description": "Various ways to encode a list of models in a CreateInferenceProfile request", + // "properties": { + // "CopyFrom": { + // "description": "Source arns for a custom inference profile to copy its regional load balancing config from. This\ncan either be a foundation model or predefined inference profile ARN.", + // "maxLength": 2048, + // "minLength": 1, + // "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|foundation-model)/[a-zA-Z0-9-:.]+$", + // "type": "string" + // } + // }, + // "type": "object" + // } + "model_source": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: CopyFrom + "copy_from": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Source arns for a custom inference profile to copy its regional load balancing config from. This\ncan either be a foundation model or predefined inference profile ARN.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Various ways to encode a list of models in a CreateInferenceProfile request", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Models + // CloudFormation resource type schema: + // + // { + // "description": "List of model configuration", + // "items": { + // "additionalProperties": false, + // "description": "Model configuration", + // "properties": { + // "ModelArn": { + // "description": "ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // } + "models": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ModelArn + "model_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of model configuration", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Status + // CloudFormation resource type schema: + // + // { + // "description": "Status of the Inference Profile", + // "enum": [ + // "ACTIVE" + // ], + // "type": "string" + // } + "status": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Status of the Inference Profile", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "List of Tags", + // "items": { + // "additionalProperties": false, + // "description": "Definition of the key/value pair for a tag", + // "properties": { + // "Key": { + // "description": "Tag Key", + // "maxLength": 128, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // }, + // "Value": { + // "description": "Tag Value", + // "maxLength": 256, + // "minLength": 0, + // "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "maxItems": 200, + // "minItems": 0, + // "type": "array" + // } + "tags": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tag Key", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Tag Value", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "List of Tags", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "Type of the Inference Profile", + // "enum": [ + // "APPLICATION", + // "SYSTEM_DEFINED" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Type of the Inference Profile", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UpdatedAt + // CloudFormation resource type schema: + // + // { + // "description": "Time Stamp", + // "format": "date-time", + // "type": "string" + // } + "updated_at": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: timetypes.RFC3339Type{}, + Description: "Time Stamp", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Bedrock::ApplicationInferenceProfile", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Bedrock::ApplicationInferenceProfile").WithTerraformTypeName("awscc_bedrock_application_inference_profile") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "copy_from": "CopyFrom", + "created_at": "CreatedAt", + "description": "Description", + "inference_profile_arn": "InferenceProfileArn", + "inference_profile_id": "InferenceProfileId", + "inference_profile_identifier": "InferenceProfileIdentifier", + "inference_profile_name": "InferenceProfileName", + "key": "Key", + "model_arn": "ModelArn", + "model_source": "ModelSource", + "models": "Models", + "status": "Status", + "tags": "Tags", + "type": "Type", + "updated_at": "UpdatedAt", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/bedrock/application_inference_profile_singular_data_source_gen_test.go b/internal/aws/bedrock/application_inference_profile_singular_data_source_gen_test.go new file mode 100644 index 0000000000..f8aebe35fd --- /dev/null +++ b/internal/aws/bedrock/application_inference_profile_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package bedrock_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSBedrockApplicationInferenceProfileDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::ApplicationInferenceProfile", "awscc_bedrock_application_inference_profile", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSBedrockApplicationInferenceProfileDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Bedrock::ApplicationInferenceProfile", "awscc_bedrock_application_inference_profile", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/bedrock/data_source_resource_gen.go b/internal/aws/bedrock/data_source_resource_gen.go index 9ec41b4718..e7e456abab 100644 --- a/internal/aws/bedrock/data_source_resource_gen.go +++ b/internal/aws/bedrock/data_source_resource_gen.go @@ -1873,7 +1873,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { // "description": "The model's ARN.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", // "type": "string" // }, // "ParsingPrompt": { @@ -2229,7 +2229,7 @@ func dataSourceResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 2048), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$"), ""), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/bedrock/data_source_singular_data_source_gen.go b/internal/aws/bedrock/data_source_singular_data_source_gen.go index a5b25a7291..5f4cd7aec6 100644 --- a/internal/aws/bedrock/data_source_singular_data_source_gen.go +++ b/internal/aws/bedrock/data_source_singular_data_source_gen.go @@ -1349,7 +1349,7 @@ func dataSourceDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "The model's ARN.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + // "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", // "type": "string" // }, // "ParsingPrompt": { diff --git a/internal/aws/bedrock/flow_version_resource_gen.go b/internal/aws/bedrock/flow_version_resource_gen.go index c0716a1d6b..520293b53e 100644 --- a/internal/aws/bedrock/flow_version_resource_gen.go +++ b/internal/aws/bedrock/flow_version_resource_gen.go @@ -266,7 +266,7 @@ func flowVersionResource(ctx context.Context) (resource.Resource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // } // }, @@ -393,7 +393,7 @@ func flowVersionResource(ctx context.Context) (resource.Resource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "TemplateConfiguration": { diff --git a/internal/aws/bedrock/flow_version_singular_data_source_gen.go b/internal/aws/bedrock/flow_version_singular_data_source_gen.go index b0efeaeae4..1cecec34e5 100644 --- a/internal/aws/bedrock/flow_version_singular_data_source_gen.go +++ b/internal/aws/bedrock/flow_version_singular_data_source_gen.go @@ -254,7 +254,7 @@ func flowVersionDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // } // }, @@ -381,7 +381,7 @@ func flowVersionDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "TemplateConfiguration": { diff --git a/internal/aws/bedrock/prompt_resource_gen.go b/internal/aws/bedrock/prompt_resource_gen.go index f69a9a847f..6afb88c46f 100644 --- a/internal/aws/bedrock/prompt_resource_gen.go +++ b/internal/aws/bedrock/prompt_resource_gen.go @@ -258,7 +258,7 @@ func promptResource(ctx context.Context) (resource.Resource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "Name": { @@ -434,7 +434,7 @@ func promptResource(ctx context.Context) (resource.Resource, error) { Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 2048), - stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/bedrock/prompt_singular_data_source_gen.go b/internal/aws/bedrock/prompt_singular_data_source_gen.go index 4ded18f3f0..a4245392e0 100644 --- a/internal/aws/bedrock/prompt_singular_data_source_gen.go +++ b/internal/aws/bedrock/prompt_singular_data_source_gen.go @@ -205,7 +205,7 @@ func promptDataSource(ctx context.Context) (datasource.DataSource, error) { // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "Name": { diff --git a/internal/aws/bedrock/prompt_version_resource_gen.go b/internal/aws/bedrock/prompt_version_resource_gen.go index 7a02f7ff4f..338f7a87be 100644 --- a/internal/aws/bedrock/prompt_version_resource_gen.go +++ b/internal/aws/bedrock/prompt_version_resource_gen.go @@ -193,6 +193,7 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ mapplanmodifier.UseStateForUnknown(), + mapplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: UpdatedAt @@ -250,12 +251,6 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { // "minimum": 0, // "type": "number" // }, - // "TopK": { - // "description": "Sample from the k most likely next tokens", - // "maximum": 500, - // "minimum": 0, - // "type": "number" - // }, // "TopP": { // "description": "Cumulative probability cutoff for token selection", // "maximum": 1, @@ -269,10 +264,10 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "ModelId": { - // "description": "ARN or name of a Bedrock model.", + // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "Name": { @@ -303,7 +298,7 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "maxItems": 5, - // "minItems": 1, + // "minItems": 0, // "type": "array" // }, // "Text": { @@ -331,11 +326,12 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { // }, // "required": [ // "Name", - // "TemplateType" + // "TemplateType", + // "TemplateConfiguration" // ], // "type": "object" // }, - // "maxItems": 3, + // "maxItems": 1, // "minItems": 1, // "type": "array" // } @@ -364,11 +360,6 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { Description: "Controls randomness, higher values increase diversity", Computed: true, }, /*END ATTRIBUTE*/ - // Property: TopK - "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Sample from the k most likely next tokens", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: TopP "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ Description: "Cumulative probability cutoff for token selection", @@ -384,7 +375,7 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: ModelId "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN or name of a Bedrock model.", + Description: "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name @@ -495,7 +486,6 @@ func promptVersionResource(ctx context.Context) (resource.Resource, error) { "template_configuration": "TemplateConfiguration", "template_type": "TemplateType", "text": "Text", - "top_k": "TopK", "top_p": "TopP", "updated_at": "UpdatedAt", "variants": "Variants", diff --git a/internal/aws/bedrock/prompt_version_singular_data_source_gen.go b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go index 5da8e417e4..85071b8eb0 100644 --- a/internal/aws/bedrock/prompt_version_singular_data_source_gen.go +++ b/internal/aws/bedrock/prompt_version_singular_data_source_gen.go @@ -203,12 +203,6 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) // "minimum": 0, // "type": "number" // }, - // "TopK": { - // "description": "Sample from the k most likely next tokens", - // "maximum": 500, - // "minimum": 0, - // "type": "number" - // }, // "TopP": { // "description": "Cumulative probability cutoff for token selection", // "maximum": 1, @@ -222,10 +216,10 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "ModelId": { - // "description": "ARN or name of a Bedrock model.", + // "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", // "maxLength": 2048, // "minLength": 1, - // "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", + // "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(/[a-z0-9]{1,12})?$", // "type": "string" // }, // "Name": { @@ -256,7 +250,7 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "maxItems": 5, - // "minItems": 1, + // "minItems": 0, // "type": "array" // }, // "Text": { @@ -284,11 +278,12 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "required": [ // "Name", - // "TemplateType" + // "TemplateType", + // "TemplateConfiguration" // ], // "type": "object" // }, - // "maxItems": 3, + // "maxItems": 1, // "minItems": 1, // "type": "array" // } @@ -317,11 +312,6 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) Description: "Controls randomness, higher values increase diversity", Computed: true, }, /*END ATTRIBUTE*/ - // Property: TopK - "top_k": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Sample from the k most likely next tokens", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: TopP "top_p": schema.Float64Attribute{ /*START ATTRIBUTE*/ Description: "Cumulative probability cutoff for token selection", @@ -337,7 +327,7 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) }, /*END ATTRIBUTE*/ // Property: ModelId "model_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "ARN or name of a Bedrock model.", + Description: "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name @@ -437,7 +427,6 @@ func promptVersionDataSource(ctx context.Context) (datasource.DataSource, error) "template_configuration": "TemplateConfiguration", "template_type": "TemplateType", "text": "Text", - "top_k": "TopK", "top_p": "TopP", "updated_at": "UpdatedAt", "variants": "Variants", diff --git a/internal/aws/cleanrooms/analysis_template_resource_gen.go b/internal/aws/cleanrooms/analysis_template_resource_gen.go index b784e2e77b..6f20d20954 100644 --- a/internal/aws/cleanrooms/analysis_template_resource_gen.go +++ b/internal/aws/cleanrooms/analysis_template_resource_gen.go @@ -68,7 +68,20 @@ func analysisTemplateResource(ctx context.Context) (resource.Resource, error) { // "TIMESTAMPTZ", // "TIME", // "TIMETZ", - // "VARBYTE" + // "VARBYTE", + // "BINARY", + // "BYTE", + // "CHARACTER", + // "DOUBLE", + // "FLOAT", + // "INT", + // "LONG", + // "NUMERIC", + // "SHORT", + // "STRING", + // "TIMESTAMP_LTZ", + // "TIMESTAMP_NTZ", + // "TINYINT" // ], // "type": "string" // } @@ -133,6 +146,19 @@ func analysisTemplateResource(ctx context.Context) (resource.Resource, error) { "TIME", "TIMETZ", "VARBYTE", + "BINARY", + "BYTE", + "CHARACTER", + "DOUBLE", + "FLOAT", + "INT", + "LONG", + "NUMERIC", + "SHORT", + "STRING", + "TIMESTAMP_LTZ", + "TIMESTAMP_NTZ", + "TINYINT", ), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ diff --git a/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go b/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go index 36d478be07..de7d76eb53 100644 --- a/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/analysis_template_singular_data_source_gen.go @@ -59,7 +59,20 @@ func analysisTemplateDataSource(ctx context.Context) (datasource.DataSource, err // "TIMESTAMPTZ", // "TIME", // "TIMETZ", - // "VARBYTE" + // "VARBYTE", + // "BINARY", + // "BYTE", + // "CHARACTER", + // "DOUBLE", + // "FLOAT", + // "INT", + // "LONG", + // "NUMERIC", + // "SHORT", + // "STRING", + // "TIMESTAMP_LTZ", + // "TIMESTAMP_NTZ", + // "TINYINT" // ], // "type": "string" // } diff --git a/internal/aws/cleanrooms/collaboration_resource_gen.go b/internal/aws/cleanrooms/collaboration_resource_gen.go index 7185554d7a..e8f1159556 100644 --- a/internal/aws/cleanrooms/collaboration_resource_gen.go +++ b/internal/aws/cleanrooms/collaboration_resource_gen.go @@ -35,6 +35,30 @@ func init() { // This Terraform resource corresponds to the CloudFormation AWS::CleanRooms::Collaboration resource. func collaborationResource(ctx context.Context) (resource.Resource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnalyticsEngine + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "CLEAN_ROOMS_SQL", + // "SPARK" + // ], + // "type": "string" + // } + "analytics_engine": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "CLEAN_ROOMS_SQL", + "SPARK", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Arn // CloudFormation resource type schema: // @@ -534,25 +558,26 @@ func collaborationResource(ctx context.Context) (resource.Resource, error) { "allow_cleartext": "AllowCleartext", "allow_duplicates": "AllowDuplicates", "allow_joins_on_columns_with_different_names": "AllowJoinsOnColumnsWithDifferentNames", - "arn": "Arn", - "collaboration_identifier": "CollaborationIdentifier", - "creator_display_name": "CreatorDisplayName", - "creator_member_abilities": "CreatorMemberAbilities", - "creator_payment_configuration": "CreatorPaymentConfiguration", - "data_encryption_metadata": "DataEncryptionMetadata", - "description": "Description", - "display_name": "DisplayName", - "is_responsible": "IsResponsible", - "key": "Key", - "member_abilities": "MemberAbilities", - "members": "Members", - "name": "Name", - "payment_configuration": "PaymentConfiguration", - "preserve_nulls": "PreserveNulls", - "query_compute": "QueryCompute", - "query_log_status": "QueryLogStatus", - "tags": "Tags", - "value": "Value", + "analytics_engine": "AnalyticsEngine", + "arn": "Arn", + "collaboration_identifier": "CollaborationIdentifier", + "creator_display_name": "CreatorDisplayName", + "creator_member_abilities": "CreatorMemberAbilities", + "creator_payment_configuration": "CreatorPaymentConfiguration", + "data_encryption_metadata": "DataEncryptionMetadata", + "description": "Description", + "display_name": "DisplayName", + "is_responsible": "IsResponsible", + "key": "Key", + "member_abilities": "MemberAbilities", + "members": "Members", + "name": "Name", + "payment_configuration": "PaymentConfiguration", + "preserve_nulls": "PreserveNulls", + "query_compute": "QueryCompute", + "query_log_status": "QueryLogStatus", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go b/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go index 3dba985246..0b550bf0b5 100644 --- a/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/collaboration_singular_data_source_gen.go @@ -23,6 +23,19 @@ func init() { // This Terraform data source corresponds to the CloudFormation AWS::CleanRooms::Collaboration resource. func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) { attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnalyticsEngine + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "CLEAN_ROOMS_SQL", + // "SPARK" + // ], + // "type": "string" + // } + "analytics_engine": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Arn // CloudFormation resource type schema: // @@ -367,25 +380,26 @@ func collaborationDataSource(ctx context.Context) (datasource.DataSource, error) "allow_cleartext": "AllowCleartext", "allow_duplicates": "AllowDuplicates", "allow_joins_on_columns_with_different_names": "AllowJoinsOnColumnsWithDifferentNames", - "arn": "Arn", - "collaboration_identifier": "CollaborationIdentifier", - "creator_display_name": "CreatorDisplayName", - "creator_member_abilities": "CreatorMemberAbilities", - "creator_payment_configuration": "CreatorPaymentConfiguration", - "data_encryption_metadata": "DataEncryptionMetadata", - "description": "Description", - "display_name": "DisplayName", - "is_responsible": "IsResponsible", - "key": "Key", - "member_abilities": "MemberAbilities", - "members": "Members", - "name": "Name", - "payment_configuration": "PaymentConfiguration", - "preserve_nulls": "PreserveNulls", - "query_compute": "QueryCompute", - "query_log_status": "QueryLogStatus", - "tags": "Tags", - "value": "Value", + "analytics_engine": "AnalyticsEngine", + "arn": "Arn", + "collaboration_identifier": "CollaborationIdentifier", + "creator_display_name": "CreatorDisplayName", + "creator_member_abilities": "CreatorMemberAbilities", + "creator_payment_configuration": "CreatorPaymentConfiguration", + "data_encryption_metadata": "DataEncryptionMetadata", + "description": "Description", + "display_name": "DisplayName", + "is_responsible": "IsResponsible", + "key": "Key", + "member_abilities": "MemberAbilities", + "members": "Members", + "name": "Name", + "payment_configuration": "PaymentConfiguration", + "preserve_nulls": "PreserveNulls", + "query_compute": "QueryCompute", + "query_log_status": "QueryLogStatus", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/cleanrooms/membership_resource_gen.go b/internal/aws/cleanrooms/membership_resource_gen.go index 0204d53c41..d0df4abea4 100644 --- a/internal/aws/cleanrooms/membership_resource_gen.go +++ b/internal/aws/cleanrooms/membership_resource_gen.go @@ -117,6 +117,9 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { // "PARQUET" // ], // "type": "string" + // }, + // "SingleFileOutput": { + // "type": "boolean" // } // }, // "required": [ @@ -185,6 +188,14 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SingleFileOutput + "single_file_output": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, Computed: true, @@ -418,6 +429,7 @@ func membershipResource(ctx context.Context) (resource.Resource, error) { "result_format": "ResultFormat", "role_arn": "RoleArn", "s3": "S3", + "single_file_output": "SingleFileOutput", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/cleanrooms/membership_singular_data_source_gen.go b/internal/aws/cleanrooms/membership_singular_data_source_gen.go index 457c798570..425a3e44e0 100644 --- a/internal/aws/cleanrooms/membership_singular_data_source_gen.go +++ b/internal/aws/cleanrooms/membership_singular_data_source_gen.go @@ -92,6 +92,9 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { // "PARQUET" // ], // "type": "string" + // }, + // "SingleFileOutput": { + // "type": "boolean" // } // }, // "required": [ @@ -137,6 +140,10 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { "result_format": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: SingleFileOutput + "single_file_output": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Computed: true, }, /*END ATTRIBUTE*/ @@ -293,6 +300,7 @@ func membershipDataSource(ctx context.Context) (datasource.DataSource, error) { "result_format": "ResultFormat", "role_arn": "RoleArn", "s3": "S3", + "single_file_output": "SingleFileOutput", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/datasync/task_resource_gen.go b/internal/aws/datasync/task_resource_gen.go index f3c02187cb..610cf38a51 100644 --- a/internal/aws/datasync/task_resource_gen.go +++ b/internal/aws/datasync/task_resource_gen.go @@ -1044,6 +1044,32 @@ func taskResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: TaskMode + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the task mode for the task.", + // "enum": [ + // "BASIC", + // "ENHANCED" + // ], + // "type": "string" + // } + "task_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the task mode for the task.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "BASIC", + "ENHANCED", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: TaskReportConfig // CloudFormation resource type schema: // @@ -1482,6 +1508,7 @@ func taskResource(ctx context.Context) (resource.Resource, error) { "subdirectory": "Subdirectory", "tags": "Tags", "task_arn": "TaskArn", + "task_mode": "TaskMode", "task_queueing": "TaskQueueing", "task_report_config": "TaskReportConfig", "transfer_mode": "TransferMode", diff --git a/internal/aws/datasync/task_singular_data_source_gen.go b/internal/aws/datasync/task_singular_data_source_gen.go index 55faa1238b..4f221ad06f 100644 --- a/internal/aws/datasync/task_singular_data_source_gen.go +++ b/internal/aws/datasync/task_singular_data_source_gen.go @@ -663,6 +663,21 @@ func taskDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The ARN of the task.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: TaskMode + // CloudFormation resource type schema: + // + // { + // "description": "Specifies the task mode for the task.", + // "enum": [ + // "BASIC", + // "ENHANCED" + // ], + // "type": "string" + // } + "task_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Specifies the task mode for the task.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: TaskReportConfig // CloudFormation resource type schema: // @@ -966,6 +981,7 @@ func taskDataSource(ctx context.Context) (datasource.DataSource, error) { "subdirectory": "Subdirectory", "tags": "Tags", "task_arn": "TaskArn", + "task_mode": "TaskMode", "task_queueing": "TaskQueueing", "task_report_config": "TaskReportConfig", "transfer_mode": "TransferMode", diff --git a/internal/aws/ec2/launch_template_resource_gen.go b/internal/aws/ec2/launch_template_resource_gen.go index 73f3477104..6435b31e17 100644 --- a/internal/aws/ec2/launch_template_resource_gen.go +++ b/internal/aws/ec2/launch_template_resource_gen.go @@ -95,7 +95,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "integer" // }, // "KmsKeyId": { - // "description": "The ARN of the symmetric KMSlong (KMS) CMK used for encryption.", + // "description": "Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.", // "type": "string" // }, // "SnapshotId": { @@ -220,7 +220,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "ElasticInferenceAccelerators": { - // "description": "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.\n You cannot specify accelerators from different generations in the same request.\n 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.", + // "description": "Amazon Elastic Inference is no longer available.\n 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.\n You cannot specify accelerators from different generations in the same request.\n 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.", // "items": { // "additionalProperties": false, // "description": "Specifies an elastic inference accelerator.\n ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", @@ -324,7 +324,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // }, // "InstanceRequirements": { // "additionalProperties": false, - // "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + // "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AcceleratorCount": { // "additionalProperties": false, @@ -373,7 +373,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "AcceleratorTypes": { - // "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", + // "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n \n Default: Any accelerator type", // "items": { // "type": "string" // }, @@ -710,7 +710,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "InterfaceType": { - // "description": "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 EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.\n Valid values: ``interface`` | ``efa`` | ``efa-only``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -906,10 +906,10 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // "uniqueItems": false // }, // "TagSpecifications": { - // "description": "The tags to apply to the resources that are created during instance launch.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).\n 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).", + // "description": "The tags to apply to resources that are created during instance launch.\n 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).", // "items": { // "additionalProperties": false, - // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + // "description": "Specifies the tags to apply to resources that are created during instance launch.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { // "description": "The type of resource to tag. 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.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", @@ -999,7 +999,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: KmsKeyId "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the symmetric KMSlong (KMS) CMK used for encryption.", + Description: "Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1263,7 +1263,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "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.\n You cannot specify accelerators from different generations in the same request.\n 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.", + Description: "Amazon Elastic Inference is no longer available.\n 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.\n You cannot specify accelerators from different generations in the same request.\n 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.", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -1517,7 +1517,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // Property: AcceleratorTypes "accelerator_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", + Description: "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n \n Default: Any accelerator type", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -1841,7 +1841,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + Description: "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -2132,7 +2132,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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 EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.\n Valid values: ``interface`` | ``efa`` | ``efa-only``", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -2537,7 +2537,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The tags to apply to the resources that are created during instance launch.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).\n 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).", + Description: "The tags to apply to resources that are created during instance launch.\n 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).", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ @@ -2592,10 +2592,10 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", + // "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", // "items": { // "additionalProperties": false, - // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", + // "description": "Specifies the tags to apply to the launch template during creation.\n To specify the tags for the resources that are created during instance launch, use [AWS::EC2::LaunchTemplate TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html).\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", @@ -2682,7 +2682,7 @@ func launchTemplateResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", + Description: "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", Optional: true, Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ec2/launch_template_singular_data_source_gen.go b/internal/aws/ec2/launch_template_singular_data_source_gen.go index e5b415e54a..85e3c2527a 100644 --- a/internal/aws/ec2/launch_template_singular_data_source_gen.go +++ b/internal/aws/ec2/launch_template_singular_data_source_gen.go @@ -79,7 +79,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "integer" // }, // "KmsKeyId": { - // "description": "The ARN of the symmetric KMSlong (KMS) CMK used for encryption.", + // "description": "Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.", // "type": "string" // }, // "SnapshotId": { @@ -204,7 +204,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "ElasticInferenceAccelerators": { - // "description": "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.\n You cannot specify accelerators from different generations in the same request.\n 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.", + // "description": "Amazon Elastic Inference is no longer available.\n 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.\n You cannot specify accelerators from different generations in the same request.\n 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.", // "items": { // "additionalProperties": false, // "description": "Specifies an elastic inference accelerator.\n ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", @@ -308,7 +308,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // }, // "InstanceRequirements": { // "additionalProperties": false, - // "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + // "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", // "properties": { // "AcceleratorCount": { // "additionalProperties": false, @@ -357,7 +357,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "type": "object" // }, // "AcceleratorTypes": { - // "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", + // "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n \n Default: Any accelerator type", // "items": { // "type": "string" // }, @@ -694,7 +694,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "InterfaceType": { - // "description": "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 EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + // "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.\n Valid values: ``interface`` | ``efa`` | ``efa-only``", // "type": "string" // }, // "Ipv4PrefixCount": { @@ -890,10 +890,10 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // "uniqueItems": false // }, // "TagSpecifications": { - // "description": "The tags to apply to the resources that are created during instance launch.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).\n 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).", + // "description": "The tags to apply to resources that are created during instance launch.\n 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).", // "items": { // "additionalProperties": false, - // "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + // "description": "Specifies the tags to apply to resources that are created during instance launch.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", // "properties": { // "ResourceType": { // "description": "The type of resource to tag. 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.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).", @@ -967,7 +967,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: KmsKeyId "kms_key_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN of the symmetric KMSlong (KMS) CMK used for encryption.", + Description: "Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.", Computed: true, }, /*END ATTRIBUTE*/ // Property: SnapshotId @@ -1117,7 +1117,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "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.\n You cannot specify accelerators from different generations in the same request.\n 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.", + Description: "Amazon Elastic Inference is no longer available.\n 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.\n You cannot specify accelerators from different generations in the same request.\n 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.", Computed: true, }, /*END ATTRIBUTE*/ // Property: EnclaveOptions @@ -1267,7 +1267,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // Property: AcceleratorTypes "accelerator_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", + Description: "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n \n Default: Any accelerator type", Computed: true, }, /*END ATTRIBUTE*/ // Property: AllowedInstanceTypes @@ -1455,7 +1455,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + Description: "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", Computed: true, }, /*END ATTRIBUTE*/ // Property: InstanceType @@ -1626,7 +1626,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ // Property: InterfaceType "interface_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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 EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + Description: "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.\n Valid values: ``interface`` | ``efa`` | ``efa-only``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Ipv4PrefixCount @@ -1861,7 +1861,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The tags to apply to the resources that are created during instance launch.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).\n 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).", + Description: "The tags to apply to resources that are created during instance launch.\n 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).", Computed: true, }, /*END ATTRIBUTE*/ // Property: UserData @@ -1899,10 +1899,10 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", + // "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", // "items": { // "additionalProperties": false, - // "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", + // "description": "Specifies the tags to apply to the launch template during creation.\n To specify the tags for the resources that are created during instance launch, use [AWS::EC2::LaunchTemplate TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html).\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", // "properties": { // "ResourceType": { // "description": "The type of resource. To tag a launch template, ``ResourceType`` must be ``launch-template``.", @@ -1967,7 +1967,7 @@ func launchTemplateDataSource(ctx context.Context) (datasource.DataSource, error }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", + Description: "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", Computed: true, }, /*END ATTRIBUTE*/ // Property: VersionDescription diff --git a/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen.go b/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen.go new file mode 100644 index 0000000000..b017fdcecc --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_ec2_security_group_vpc_associations", securityGroupVpcAssociationsDataSource) +} + +// securityGroupVpcAssociationsDataSource returns the Terraform awscc_ec2_security_group_vpc_associations data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::SecurityGroupVpcAssociation resource. +func securityGroupVpcAssociationsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::EC2::SecurityGroupVpcAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::SecurityGroupVpcAssociation").WithTerraformTypeName("awscc_ec2_security_group_vpc_associations") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen_test.go b/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen_test.go new file mode 100644 index 0000000000..e08911f9aa --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2SecurityGroupVpcAssociationsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::SecurityGroupVpcAssociation", "awscc_ec2_security_group_vpc_associations", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/ec2/security_group_vpc_association_resource_gen.go b/internal/aws/ec2/security_group_vpc_association_resource_gen.go new file mode 100644 index 0000000000..4003f0d769 --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_resource_gen.go @@ -0,0 +1,146 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_ec2_security_group_vpc_association", securityGroupVpcAssociationResource) +} + +// securityGroupVpcAssociationResource returns the Terraform awscc_ec2_security_group_vpc_association resource. +// This Terraform resource corresponds to the CloudFormation AWS::EC2::SecurityGroupVpcAssociation resource. +func securityGroupVpcAssociationResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GroupId + // CloudFormation resource type schema: + // + // { + // "description": "The group ID of the specified security group.", + // "type": "string" + // } + "group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The group ID of the specified security group.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The state of the security group vpc association.", + // "enum": [ + // "associating", + // "associated", + // "association-failed", + // "disassociating", + // "disassociated", + // "disassociation-failed" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the security group vpc association.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: StateReason + // CloudFormation resource type schema: + // + // { + // "description": "The reason for the state of the security group vpc association.", + // "type": "string" + // } + "state_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The reason for the state of the security group vpc association.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpcId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the VPC in the security group vpc association.", + // "type": "string" + // } + "vpc_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the VPC in the security group vpc association.", + Required: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VpcOwnerId + // CloudFormation resource type schema: + // + // { + // "description": "The owner of the VPC in the security group vpc association.", + // "type": "string" + // } + "vpc_owner_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The owner of the VPC in the security group vpc association.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::SecurityGroupVpcAssociation").WithTerraformTypeName("awscc_ec2_security_group_vpc_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "group_id": "GroupId", + "state": "State", + "state_reason": "StateReason", + "vpc_id": "VpcId", + "vpc_owner_id": "VpcOwnerId", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/security_group_vpc_association_resource_gen_test.go b/internal/aws/ec2/security_group_vpc_association_resource_gen_test.go new file mode 100644 index 0000000000..46ca74c756 --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2SecurityGroupVpcAssociation_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::SecurityGroupVpcAssociation", "awscc_ec2_security_group_vpc_association", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen.go b/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen.go new file mode 100644 index 0000000000..14e6c18887 --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen.go @@ -0,0 +1,120 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2 + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_ec2_security_group_vpc_association", securityGroupVpcAssociationDataSource) +} + +// securityGroupVpcAssociationDataSource returns the Terraform awscc_ec2_security_group_vpc_association data source. +// This Terraform data source corresponds to the CloudFormation AWS::EC2::SecurityGroupVpcAssociation resource. +func securityGroupVpcAssociationDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: GroupId + // CloudFormation resource type schema: + // + // { + // "description": "The group ID of the specified security group.", + // "type": "string" + // } + "group_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The group ID of the specified security group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The state of the security group vpc association.", + // "enum": [ + // "associating", + // "associated", + // "association-failed", + // "disassociating", + // "disassociated", + // "disassociation-failed" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the security group vpc association.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: StateReason + // CloudFormation resource type schema: + // + // { + // "description": "The reason for the state of the security group vpc association.", + // "type": "string" + // } + "state_reason": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The reason for the state of the security group vpc association.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcId + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the VPC in the security group vpc association.", + // "type": "string" + // } + "vpc_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the VPC in the security group vpc association.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VpcOwnerId + // CloudFormation resource type schema: + // + // { + // "description": "The owner of the VPC in the security group vpc association.", + // "type": "string" + // } + "vpc_owner_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The owner of the VPC in the security group vpc association.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::EC2::SecurityGroupVpcAssociation", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::EC2::SecurityGroupVpcAssociation").WithTerraformTypeName("awscc_ec2_security_group_vpc_association") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "group_id": "GroupId", + "state": "State", + "state_reason": "StateReason", + "vpc_id": "VpcId", + "vpc_owner_id": "VpcOwnerId", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen_test.go b/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen_test.go new file mode 100644 index 0000000000..90d9b26971 --- /dev/null +++ b/internal/aws/ec2/security_group_vpc_association_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package ec2_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEC2SecurityGroupVpcAssociationDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::SecurityGroupVpcAssociation", "awscc_ec2_security_group_vpc_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSEC2SecurityGroupVpcAssociationDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::EC2::SecurityGroupVpcAssociation", "awscc_ec2_security_group_vpc_association", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ec2/vpn_connection_resource_gen.go b/internal/aws/ec2/vpn_connection_resource_gen.go index 57af529688..a2fae331a1 100644 --- a/internal/aws/ec2/vpn_connection_resource_gen.go +++ b/internal/aws/ec2/vpn_connection_resource_gen.go @@ -488,6 +488,7 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { // "description": "The Diffie-Hellmann group number.", // "enum": [ // 2, + // 5, // 14, // 15, // 16, @@ -852,6 +853,7 @@ func vPNConnectionResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.Int64{ /*START VALIDATORS*/ int64validator.OneOf( 2, + 5, 14, 15, 16, diff --git a/internal/aws/ec2/vpn_connection_singular_data_source_gen.go b/internal/aws/ec2/vpn_connection_singular_data_source_gen.go index 909c3bfb1c..2e0fc5e084 100644 --- a/internal/aws/ec2/vpn_connection_singular_data_source_gen.go +++ b/internal/aws/ec2/vpn_connection_singular_data_source_gen.go @@ -395,6 +395,7 @@ func vPNConnectionDataSource(ctx context.Context) (datasource.DataSource, error) // "description": "The Diffie-Hellmann group number.", // "enum": [ // 2, + // 5, // 14, // 15, // 16, diff --git a/internal/aws/ecs/service_resource_gen.go b/internal/aws/ecs/service_resource_gen.go index a107c41b99..450e96ae9c 100644 --- a/internal/aws/ecs/service_resource_gen.go +++ b/internal/aws/ecs/service_resource_gen.go @@ -120,7 +120,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.", + // "description": "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", // "properties": { // "Alarms": { // "additionalProperties": false, @@ -283,7 +283,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.", + Description: "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ @@ -442,7 +442,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "type": "integer" // }, // "LoadBalancerName": { - // "description": "The name of the load balancer to associate with the Amazon ECS service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", + // "description": "The name of the load balancer to associate with the service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", // "type": "string" // }, // "TargetGroupArn": { @@ -477,7 +477,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: LoadBalancerName "load_balancer_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the load balancer to associate with the Amazon ECS service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", + Description: "The name of the load balancer to associate with the service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1439,7 +1439,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { // "type": "boolean" // }, // "FilesystemType": { - // "description": "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.", + // "description": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", // "type": "string" // }, // "Iops": { @@ -1550,7 +1550,7 @@ func serviceResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: FilesystemType "filesystem_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.", + Description: "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", Optional: true, Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/ecs/service_singular_data_source_gen.go b/internal/aws/ecs/service_singular_data_source_gen.go index 507faaee22..9c6a385233 100644 --- a/internal/aws/ecs/service_singular_data_source_gen.go +++ b/internal/aws/ecs/service_singular_data_source_gen.go @@ -88,7 +88,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.", + // "description": "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", // "properties": { // "Alarms": { // "additionalProperties": false, @@ -200,7 +200,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.", + Description: "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", Computed: true, }, /*END ATTRIBUTE*/ // Property: DeploymentController @@ -311,7 +311,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "integer" // }, // "LoadBalancerName": { - // "description": "The name of the load balancer to associate with the Amazon ECS service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", + // "description": "The name of the load balancer to associate with the service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", // "type": "string" // }, // "TargetGroupArn": { @@ -338,7 +338,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: LoadBalancerName "load_balancer_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the load balancer to associate with the Amazon ECS service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", + Description: "The name of the load balancer to associate with the service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", Computed: true, }, /*END ATTRIBUTE*/ // Property: TargetGroupArn @@ -1029,7 +1029,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "boolean" // }, // "FilesystemType": { - // "description": "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.", + // "description": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", // "type": "string" // }, // "Iops": { @@ -1136,7 +1136,7 @@ func serviceDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END ATTRIBUTE*/ // Property: FilesystemType "filesystem_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.", + Description: "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Iops diff --git a/internal/aws/iotwireless/device_profile_resource_gen.go b/internal/aws/iotwireless/device_profile_resource_gen.go index 5b8c6aca72..40e1f73864 100644 --- a/internal/aws/iotwireless/device_profile_resource_gen.go +++ b/internal/aws/iotwireless/device_profile_resource_gen.go @@ -371,6 +371,7 @@ func deviceProfileResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Name @@ -390,6 +391,7 @@ func deviceProfileResource(ctx context.Context) (resource.Resource, error) { }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags diff --git a/internal/aws/iotwireless/network_analyzer_configuration_resource_gen.go b/internal/aws/iotwireless/network_analyzer_configuration_resource_gen.go index edce0c315e..c9719445cd 100644 --- a/internal/aws/iotwireless/network_analyzer_configuration_resource_gen.go +++ b/internal/aws/iotwireless/network_analyzer_configuration_resource_gen.go @@ -159,7 +159,6 @@ func networkAnalyzerConfigurationResource(ctx context.Context) (resource.Resourc }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ setplanmodifier.UseStateForUnknown(), - setplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: TraceContent diff --git a/internal/aws/iotwireless/service_profile_resource_gen.go b/internal/aws/iotwireless/service_profile_resource_gen.go index 83fa2a86d6..4c26ddd8b0 100644 --- a/internal/aws/iotwireless/service_profile_resource_gen.go +++ b/internal/aws/iotwireless/service_profile_resource_gen.go @@ -271,6 +271,7 @@ func serviceProfileResource(ctx context.Context) (resource.Resource, error) { Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), + objectplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Name @@ -290,6 +291,7 @@ func serviceProfileResource(ctx context.Context) (resource.Resource, error) { }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Tags diff --git a/internal/aws/iotwireless/wireless_device_import_task_resource_gen.go b/internal/aws/iotwireless/wireless_device_import_task_resource_gen.go index bba713247f..05eca06b7a 100644 --- a/internal/aws/iotwireless/wireless_device_import_task_resource_gen.go +++ b/internal/aws/iotwireless/wireless_device_import_task_resource_gen.go @@ -155,27 +155,6 @@ func wirelessDeviceImportTaskResource(ctx context.Context) (resource.Resource, e // { // "additionalProperties": false, // "description": "sidewalk contain file for created device and role", - // "oneOf": [ - // { - // "allOf": [ - // { - // "required": [ - // "DeviceCreationFile" - // ] - // }, - // { - // "required": [ - // "Role" - // ] - // } - // ] - // }, - // { - // "required": [ - // "SidewalkManufacturingSn" - // ] - // } - // ], // "properties": { // "DeviceCreationFile": { // "maxLength": 1024, diff --git a/internal/aws/iotwireless/wireless_device_import_task_singular_data_source_gen.go b/internal/aws/iotwireless/wireless_device_import_task_singular_data_source_gen.go index 8009e967ad..ae95776c12 100644 --- a/internal/aws/iotwireless/wireless_device_import_task_singular_data_source_gen.go +++ b/internal/aws/iotwireless/wireless_device_import_task_singular_data_source_gen.go @@ -121,27 +121,6 @@ func wirelessDeviceImportTaskDataSource(ctx context.Context) (datasource.DataSou // { // "additionalProperties": false, // "description": "sidewalk contain file for created device and role", - // "oneOf": [ - // { - // "allOf": [ - // { - // "required": [ - // "DeviceCreationFile" - // ] - // }, - // { - // "required": [ - // "Role" - // ] - // } - // ] - // }, - // { - // "required": [ - // "SidewalkManufacturingSn" - // ] - // } - // ], // "properties": { // "DeviceCreationFile": { // "maxLength": 1024, diff --git a/internal/aws/lambda/function_resource_gen.go b/internal/aws/lambda/function_resource_gen.go index 217caad1fb..76064f4194 100644 --- a/internal/aws/lambda/function_resource_gen.go +++ b/internal/aws/lambda/function_resource_gen.go @@ -92,7 +92,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "The code for the function.", + // "description": "The code for the function. You can define your function code in multiple ways:\n + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties.\n + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions.\n + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property.", // "properties": { // "ImageUri": { // "description": "URI of a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the Amazon ECR registry.", @@ -203,7 +203,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // ZipFile is a write-only property. }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The code for the function.", + Description: "The code for the function. You can define your function code in multiple ways:\n + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties.\n + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions.\n + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property.", Required: true, // Code is a write-only property. }, /*END ATTRIBUTE*/ @@ -291,7 +291,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // "properties": { // "Variables": { // "additionalProperties": false, - // "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).", + // "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).\n If the value of the environment variable is a time or a duration, enclose the value in quotes.", // "patternProperties": { // "": { // "type": "string" @@ -308,7 +308,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { "variables": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).", + Description: "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).\n If the value of the environment variable is a time or a duration, enclose the value in quotes.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -563,12 +563,12 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -761,7 +761,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The function recursion configuration.", + // "description": "The status of your function's recursive loop detection configuration.\n When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action.\n When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you.", // "enum": [ // "Allow", // "Terminate" @@ -769,7 +769,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // "type": "string" // } "recursive_loop": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The function recursion configuration.", + Description: "The status of your function's recursive loop detection configuration.\n When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action.\n When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -991,20 +991,20 @@ func functionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", + // "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.\n You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "A [tag](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", // "properties": { // "Key": { - // "description": "", + // "description": "The key for this tag.", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "", + // "description": "The value for this tag.", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -1023,7 +1023,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The key for this tag.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1036,7 +1036,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The value for this tag.", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -1048,7 +1048,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", + Description: "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.\n You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ @@ -1206,7 +1206,7 @@ func functionResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "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.\n 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. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see [Deploy Python Lambda functions with .zip file archives](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html).\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", + Description: "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.\n 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 these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html) LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", Version: 1, Attributes: attributes, } diff --git a/internal/aws/lambda/function_singular_data_source_gen.go b/internal/aws/lambda/function_singular_data_source_gen.go index 9e184fd76f..8e17dd0fc6 100644 --- a/internal/aws/lambda/function_singular_data_source_gen.go +++ b/internal/aws/lambda/function_singular_data_source_gen.go @@ -61,7 +61,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "additionalProperties": false, - // "description": "The code for the function.", + // "description": "The code for the function. You can define your function code in multiple ways:\n + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties.\n + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions.\n + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property.", // "properties": { // "ImageUri": { // "description": "URI of a [container image](https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html) in the Amazon ECR registry.", @@ -131,7 +131,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The code for the function.", + Description: "The code for the function. You can define your function code in multiple ways:\n + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties.\n + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions.\n + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property.", Computed: true, }, /*END ATTRIBUTE*/ // Property: CodeSigningConfigArn @@ -193,7 +193,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // "properties": { // "Variables": { // "additionalProperties": false, - // "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).", + // "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).\n If the value of the environment variable is a time or a duration, enclose the value in quotes.", // "patternProperties": { // "": { // "type": "string" @@ -210,7 +210,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { "variables": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).", + Description: "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).\n If the value of the environment variable is a time or a duration, enclose the value in quotes.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ @@ -380,12 +380,12 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "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.", + // "description": "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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", // "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "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.", + Description: "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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Layers @@ -506,7 +506,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The function recursion configuration.", + // "description": "The status of your function's recursive loop detection configuration.\n When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action.\n When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you.", // "enum": [ // "Allow", // "Terminate" @@ -514,7 +514,7 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // "type": "string" // } "recursive_loop": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The function recursion configuration.", + Description: "The status of your function's recursive loop detection configuration.\n When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action.\n When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReservedConcurrentExecutions @@ -672,20 +672,20 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", + // "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.\n You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "", + // "description": "A [tag](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", // "properties": { // "Key": { - // "description": "", + // "description": "The key for this tag.", // "maxLength": 128, // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "", + // "description": "The value for this tag.", // "maxLength": 256, // "minLength": 0, // "type": "string" @@ -704,17 +704,17 @@ func functionDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The key for this tag.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The value for this tag.", Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", + Description: "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.\n You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", Computed: true, }, /*END ATTRIBUTE*/ // Property: Timeout diff --git a/internal/aws/lambda/version_resource_gen.go b/internal/aws/lambda/version_resource_gen.go index 1dc76e52b5..70b916cb97 100644 --- a/internal/aws/lambda/version_resource_gen.go +++ b/internal/aws/lambda/version_resource_gen.go @@ -9,7 +9,6 @@ import ( "context" "regexp" - "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" @@ -87,10 +86,6 @@ func versionResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "anyOf": [ - // {}, - // {} - // ], // "description": "The name of the Lambda function.", // "maxLength": 140, // "minLength": 1, @@ -108,22 +103,6 @@ func versionResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ - // Property: Policy - // CloudFormation resource type schema: - // - // { - // "description": "The resource policy of your function", - // "type": "object" - // } - "policy": schema.StringAttribute{ /*START ATTRIBUTE*/ - CustomType: jsontypes.NormalizedType{}, - Description: "The resource policy of your function", - Optional: true, - Computed: true, - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ // Property: ProvisionedConcurrencyConfig // CloudFormation resource type schema: // @@ -264,7 +243,6 @@ func versionResource(ctx context.Context) (resource.Resource, error) { "description": "Description", "function_arn": "FunctionArn", "function_name": "FunctionName", - "policy": "Policy", "provisioned_concurrency_config": "ProvisionedConcurrencyConfig", "provisioned_concurrent_executions": "ProvisionedConcurrentExecutions", "runtime_policy": "RuntimePolicy", diff --git a/internal/aws/lambda/version_singular_data_source_gen.go b/internal/aws/lambda/version_singular_data_source_gen.go index 03c0ad4f36..1b91f8c1ee 100644 --- a/internal/aws/lambda/version_singular_data_source_gen.go +++ b/internal/aws/lambda/version_singular_data_source_gen.go @@ -8,7 +8,6 @@ package lambda import ( "context" - "github.com/hashicorp/terraform-plugin-framework-jsontypes/jsontypes" "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" "github.com/hashicorp/terraform-provider-awscc/internal/generic" @@ -63,10 +62,6 @@ func versionDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "anyOf": [ - // {}, - // {} - // ], // "description": "The name of the Lambda function.", // "maxLength": 140, // "minLength": 1, @@ -77,18 +72,6 @@ func versionDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The name of the Lambda function.", Computed: true, }, /*END ATTRIBUTE*/ - // Property: Policy - // CloudFormation resource type schema: - // - // { - // "description": "The resource policy of your function", - // "type": "object" - // } - "policy": schema.StringAttribute{ /*START ATTRIBUTE*/ - CustomType: jsontypes.NormalizedType{}, - Description: "The resource policy of your function", - Computed: true, - }, /*END ATTRIBUTE*/ // Property: ProvisionedConcurrencyConfig // CloudFormation resource type schema: // @@ -189,7 +172,6 @@ func versionDataSource(ctx context.Context) (datasource.DataSource, error) { "description": "Description", "function_arn": "FunctionArn", "function_name": "FunctionName", - "policy": "Policy", "provisioned_concurrency_config": "ProvisionedConcurrencyConfig", "provisioned_concurrent_executions": "ProvisionedConcurrentExecutions", "runtime_policy": "RuntimePolicy", diff --git a/internal/aws/logs/delivery_destination_resource_gen.go b/internal/aws/logs/delivery_destination_resource_gen.go index 1c68f2e625..eb00721305 100644 --- a/internal/aws/logs/delivery_destination_resource_gen.go +++ b/internal/aws/logs/delivery_destination_resource_gen.go @@ -127,6 +127,29 @@ func deliveryDestinationResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: OutputFormat + // CloudFormation resource type schema: + // + // { + // "description": "The format of the logs that are sent to this delivery destination.", + // "maxLength": 12, + // "minLength": 1, + // "pattern": "^[0-9A-Za-z]+$", + // "type": "string" + // } + "output_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The format of the logs that are sent to this delivery destination.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 12), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9A-Za-z]+$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -225,6 +248,7 @@ func deliveryDestinationResource(ctx context.Context) (resource.Resource, error) "destination_resource_arn": "DestinationResourceArn", "key": "Key", "name": "Name", + "output_format": "OutputFormat", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/logs/delivery_destination_singular_data_source_gen.go b/internal/aws/logs/delivery_destination_singular_data_source_gen.go index fe21ccd8f6..dcae137630 100644 --- a/internal/aws/logs/delivery_destination_singular_data_source_gen.go +++ b/internal/aws/logs/delivery_destination_singular_data_source_gen.go @@ -94,6 +94,20 @@ func deliveryDestinationDataSource(ctx context.Context) (datasource.DataSource, Description: "The name of this delivery destination.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: OutputFormat + // CloudFormation resource type schema: + // + // { + // "description": "The format of the logs that are sent to this delivery destination.", + // "maxLength": 12, + // "minLength": 1, + // "pattern": "^[0-9A-Za-z]+$", + // "type": "string" + // } + "output_format": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The format of the logs that are sent to this delivery destination.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -167,6 +181,7 @@ func deliveryDestinationDataSource(ctx context.Context) (datasource.DataSource, "destination_resource_arn": "DestinationResourceArn", "key": "Key", "name": "Name", + "output_format": "OutputFormat", "tags": "Tags", "value": "Value", }) diff --git a/internal/aws/logs/delivery_resource_gen.go b/internal/aws/logs/delivery_resource_gen.go index e4ce98d09d..fec86fa96e 100644 --- a/internal/aws/logs/delivery_resource_gen.go +++ b/internal/aws/logs/delivery_resource_gen.go @@ -9,13 +9,17 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" @@ -122,6 +126,88 @@ func deliveryResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: FieldDelimiter + // CloudFormation resource type schema: + // + // { + // "description": "The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format.", + // "maxLength": 5, + // "minLength": 1, + // "type": "string" + // } + "field_delimiter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 5), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: RecordFields + // CloudFormation resource type schema: + // + // { + // "description": "The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list.", + // "items": { + // "description": "A single record field to be delivered to the destination.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // }, + // "type": "array" + // } + "record_fields": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 50), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3EnableHiveCompatiblePath + // CloudFormation resource type schema: + // + // { + // "description": "This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive.", + // "type": "boolean" + // } + "s3_enable_hive_compatible_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: S3SuffixPath + // CloudFormation resource type schema: + // + // { + // "description": "This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + "s3_suffix_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -214,14 +300,18 @@ func deliveryResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::Logs::Delivery").WithTerraformTypeName("awscc_logs_delivery") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "delivery_destination_arn": "DeliveryDestinationArn", - "delivery_destination_type": "DeliveryDestinationType", - "delivery_id": "DeliveryId", - "delivery_source_name": "DeliverySourceName", - "key": "Key", - "tags": "Tags", - "value": "Value", + "arn": "Arn", + "delivery_destination_arn": "DeliveryDestinationArn", + "delivery_destination_type": "DeliveryDestinationType", + "delivery_id": "DeliveryId", + "delivery_source_name": "DeliverySourceName", + "field_delimiter": "FieldDelimiter", + "key": "Key", + "record_fields": "RecordFields", + "s3_enable_hive_compatible_path": "S3EnableHiveCompatiblePath", + "s3_suffix_path": "S3SuffixPath", + "tags": "Tags", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/logs/delivery_singular_data_source_gen.go b/internal/aws/logs/delivery_singular_data_source_gen.go index 6fc95520dc..d077f6908c 100644 --- a/internal/aws/logs/delivery_singular_data_source_gen.go +++ b/internal/aws/logs/delivery_singular_data_source_gen.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/terraform-plugin-framework/datasource" "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" ) @@ -92,6 +93,61 @@ func deliveryDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The name of the delivery source that is associated with this delivery.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: FieldDelimiter + // CloudFormation resource type schema: + // + // { + // "description": "The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format.", + // "maxLength": 5, + // "minLength": 1, + // "type": "string" + // } + "field_delimiter": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: RecordFields + // CloudFormation resource type schema: + // + // { + // "description": "The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list.", + // "items": { + // "description": "A single record field to be delivered to the destination.", + // "maxLength": 50, + // "minLength": 1, + // "type": "string" + // }, + // "type": "array" + // } + "record_fields": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3EnableHiveCompatiblePath + // CloudFormation resource type schema: + // + // { + // "description": "This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive.", + // "type": "boolean" + // } + "s3_enable_hive_compatible_path": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: S3SuffixPath + // CloudFormation resource type schema: + // + // { + // "description": "This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source.", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + "s3_suffix_path": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // @@ -159,14 +215,18 @@ func deliveryDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithCloudFormationTypeName("AWS::Logs::Delivery").WithTerraformTypeName("awscc_logs_delivery") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "delivery_destination_arn": "DeliveryDestinationArn", - "delivery_destination_type": "DeliveryDestinationType", - "delivery_id": "DeliveryId", - "delivery_source_name": "DeliverySourceName", - "key": "Key", - "tags": "Tags", - "value": "Value", + "arn": "Arn", + "delivery_destination_arn": "DeliveryDestinationArn", + "delivery_destination_type": "DeliveryDestinationType", + "delivery_id": "DeliveryId", + "delivery_source_name": "DeliverySourceName", + "field_delimiter": "FieldDelimiter", + "key": "Key", + "record_fields": "RecordFields", + "s3_enable_hive_compatible_path": "S3EnableHiveCompatiblePath", + "s3_suffix_path": "S3SuffixPath", + "tags": "Tags", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/nimblestudio/launch_profile_resource_gen.go b/internal/aws/nimblestudio/launch_profile_resource_gen.go index 08e6c3a82b..fca447566f 100644 --- a/internal/aws/nimblestudio/launch_profile_resource_gen.go +++ b/internal/aws/nimblestudio/launch_profile_resource_gen.go @@ -7,14 +7,9 @@ package nimblestudio import ( "context" - "regexp" - "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" - "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" - "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" - "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64default" "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" @@ -40,18 +35,11 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe description.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 256), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -60,21 +48,15 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types. \u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 6, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "ec_2_subnet_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.
", Required: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(0, 6), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -95,161 +77,82 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "items": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", - // "maxLength": 10, - // "minLength": 0, - // "pattern": "^2021\\-03\\-31$", // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "launch_profile_protocol_versions": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
", Required: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.ValueStringsAre( - stringvalidator.LengthBetween(0, 10), - stringvalidator.RegexMatches(regexp.MustCompile("^2021\\-03\\-31$"), ""), - ), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe name for the launch profile.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the launch profile.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 64), - }, /*END VALIDATORS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: StreamConfiguration // CloudFormation resource type schema: // // { // "additionalProperties": false, - // "description": "\u003cp\u003eA configuration for a streaming session.\u003c/p\u003e", // "properties": { // "AutomaticTerminationMode": { - // "enum": [ - // "DEACTIVATED", - // "ACTIVATED" - // ], // "type": "string" // }, // "ClipboardMode": { - // "enum": [ - // "ENABLED", - // "DISABLED" - // ], // "type": "string" // }, // "Ec2InstanceTypes": { - // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "enum": [ - // "g4dn.xlarge", - // "g4dn.2xlarge", - // "g4dn.4xlarge", - // "g4dn.8xlarge", - // "g4dn.12xlarge", - // "g4dn.16xlarge", - // "g3.4xlarge", - // "g3s.xlarge", - // "g5.xlarge", - // "g5.2xlarge", - // "g5.4xlarge", - // "g5.8xlarge", - // "g5.16xlarge" - // ], // "type": "string" // }, - // "maxItems": 30, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "MaxSessionLengthInMinutes": { - // "default": 690, - // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.\u003c/p\u003e", - // "maximum": 43200, - // "minimum": 1, // "type": "number" // }, // "MaxStoppedSessionLengthInMinutes": { - // "default": 0, - // "description": "\u003cp\u003eInteger that determines if you can start and stop your sessions and how long a session\n can stay in the \u003ccode\u003eSTOPPED\u003c/code\u003e state. The default value is 0. The maximum value is\n 5760.\u003c/p\u003e\n \u003cp\u003eThis field is allowed only when \u003ccode\u003esessionPersistenceMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e and \u003ccode\u003eautomaticTerminationMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e.\u003c/p\u003e\n \u003cp\u003eIf the value is set to 0, your sessions can?t be \u003ccode\u003eSTOPPED\u003c/code\u003e. If you then\n call \u003ccode\u003eStopStreamingSession\u003c/code\u003e, the session fails. If the time that a session\n stays in the \u003ccode\u003eREADY\u003c/code\u003e state exceeds the \u003ccode\u003emaxSessionLengthInMinutes\u003c/code\u003e\n value, the session will automatically be terminated (instead of\n \u003ccode\u003eSTOPPED\u003c/code\u003e).\u003c/p\u003e\n \u003cp\u003eIf the value is set to a positive number, the session can be stopped. You can call\n \u003ccode\u003eStopStreamingSession\u003c/code\u003e to stop sessions in the \u003ccode\u003eREADY\u003c/code\u003e state.\n If the time that a session stays in the \u003ccode\u003eREADY\u003c/code\u003e state exceeds the\n \u003ccode\u003emaxSessionLengthInMinutes\u003c/code\u003e value, the session will automatically be\n stopped (instead of terminated).\u003c/p\u003e", - // "maximum": 5760, - // "minimum": 0, // "type": "number" // }, // "SessionBackup": { // "additionalProperties": false, - // "description": "\u003cp\u003eConfigures how streaming sessions are backed up when launched from this launch\n profile.\u003c/p\u003e", // "properties": { // "MaxBackupsToRetain": { - // "default": 0, - // "description": "\u003cp\u003eThe maximum number of backups that each streaming session created from this launch\n profile can have.\u003c/p\u003e", - // "maximum": 10, - // "minimum": 0, // "type": "number" // }, // "Mode": { - // "enum": [ - // "AUTOMATIC", - // "DEACTIVATED" - // ], // "type": "string" // } // }, // "type": "object" // }, // "SessionPersistenceMode": { - // "enum": [ - // "DEACTIVATED", - // "ACTIVATED" - // ], // "type": "string" // }, // "SessionStorage": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a streaming session?s upload storage.\u003c/p\u003e", // "properties": { // "Mode": { - // "description": "\u003cp\u003eAllows artists to upload files to their workstations. The only valid option is\n \u003ccode\u003eUPLOAD\u003c/code\u003e.\u003c/p\u003e", // "items": { - // "enum": [ - // "UPLOAD" - // ], // "type": "string" // }, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "Root": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe upload storage root location (folder) on streaming workstations where files are\n uploaded.\u003c/p\u003e", // "properties": { // "Linux": { - // "description": "\u003cp\u003eThe folder path in Linux workstations where files are uploaded.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$", // "type": "string" // }, // "Windows": { - // "description": "\u003cp\u003eThe folder path in Windows workstations where files are uploaded.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", // "type": "string" // } // }, @@ -262,40 +165,22 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // "type": "object" // }, // "StreamingImageIds": { - // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "maxLength": 22, - // "minLength": 0, - // "pattern": "^[a-zA-Z0-9-_]*$", // "type": "string" // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "VolumeConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eCustom volume configuration for the root volumes that are attached to streaming\n sessions.\u003c/p\u003e\n \u003cp\u003eThis parameter is only allowed when \u003ccode\u003esessionPersistenceMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e.\u003c/p\u003e", // "properties": { // "Iops": { - // "default": 3000, - // "description": "\u003cp\u003eThe number of I/O operations per second for the root volume that is attached to\n streaming session.\u003c/p\u003e", - // "maximum": 16000, - // "minimum": 3000, // "type": "number" // }, // "Size": { - // "default": 500, - // "description": "\u003cp\u003eThe size of the root volume that is attached to the streaming session. The root volume\n size is measured in GiBs.\u003c/p\u003e", - // "maximum": 16000, - // "minimum": 100, // "type": "number" // }, // "Throughput": { - // "default": 125, - // "description": "\u003cp\u003eThe throughput to provision for the root volume that is attached to the streaming\n session. The throughput is measured in MiB/s.\u003c/p\u003e", - // "maximum": 1000, - // "minimum": 125, // "type": "number" // } // }, @@ -304,8 +189,8 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // }, // "required": [ // "ClipboardMode", - // "Ec2InstanceTypes", - // "StreamingImageIds" + // "StreamingImageIds", + // "Ec2InstanceTypes" // ], // "type": "object" // } @@ -315,12 +200,6 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { "automatic_termination_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "DEACTIVATED", - "ACTIVATED", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -328,61 +207,24 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // Property: ClipboardMode "clipboard_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "ENABLED", - "DISABLED", - ), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: Ec2InstanceTypes "ec_2_instance_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.
", Required: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 30), - listvalidator.ValueStringsAre( - stringvalidator.OneOf( - "g4dn.xlarge", - "g4dn.2xlarge", - "g4dn.4xlarge", - "g4dn.8xlarge", - "g4dn.12xlarge", - "g4dn.16xlarge", - "g3.4xlarge", - "g3s.xlarge", - "g5.xlarge", - "g5.2xlarge", - "g5.4xlarge", - "g5.8xlarge", - "g5.16xlarge", - ), - ), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: MaxSessionLengthInMinutes "max_session_length_in_minutes": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.
", - Optional: true, - Computed: true, - Default: float64default.StaticFloat64(690.000000), - Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(1.000000, 43200.000000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: MaxStoppedSessionLengthInMinutes "max_stopped_session_length_in_minutes": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED
state. The default value is 0. The maximum value is\n 5760.
This field is allowed only when sessionPersistenceMode
is\n ACTIVATED
and automaticTerminationMode
is\n ACTIVATED
.
If the value is set to 0, your sessions can?t be STOPPED
. If you then\n call StopStreamingSession
, the session fails. If the time that a session\n stays in the READY
state exceeds the maxSessionLengthInMinutes
\n value, the session will automatically be terminated (instead of\n STOPPED
).
If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession
to stop sessions in the READY
state.\n If the time that a session stays in the READY
state exceeds the\n maxSessionLengthInMinutes
value, the session will automatically be\n stopped (instead of terminated).
The maximum number of backups that each streaming session created from this launch\n profile can have.
", - Optional: true, - Computed: true, - Default: float64default.StaticFloat64(0.000000), - Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(0.000000, 10.000000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -407,20 +244,13 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { "mode": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "AUTOMATIC", - "DEACTIVATED", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Configures how streaming sessions are backed up when launched from this launch\n profile.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -429,12 +259,6 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { "session_persistence_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "DEACTIVATED", - "ACTIVATED", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -445,16 +269,9 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // Property: Mode "mode": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Allows artists to upload files to their workstations. The only valid option is\n UPLOAD
.
The folder path in Linux workstations where files are uploaded.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 128), - stringvalidator.RegexMatches(regexp.MustCompile("^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Windows "windows": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The folder path in Windows workstations where files are uploaded.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 128), - stringvalidator.RegexMatches(regexp.MustCompile("^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The upload storage root location (folder) on streaming workstations where files are\n uploaded.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a streaming session?s upload storage.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -509,100 +314,67 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // Property: StreamingImageIds "streaming_image_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The streaming images that users can select from when launching a streaming session\n with this launch profile.
", Required: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 20), - listvalidator.ValueStringsAre( - stringvalidator.LengthBetween(0, 22), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9-_]*$"), ""), - ), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: VolumeConfiguration "volume_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Iops "iops": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of I/O operations per second for the root volume that is attached to\n streaming session.
", - Optional: true, - Computed: true, - Default: float64default.StaticFloat64(3000.000000), - Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(3000.000000, 16000.000000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Size "size": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The size of the root volume that is attached to the streaming session. The root volume\n size is measured in GiBs.
", - Optional: true, - Computed: true, - Default: float64default.StaticFloat64(500.000000), - Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(100.000000, 16000.000000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Throughput "throughput": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The throughput to provision for the root volume that is attached to the streaming\n session. The throughput is measured in MiB/s.
", - Optional: true, - Computed: true, - Default: float64default.StaticFloat64(125.000000), - Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(125.000000, 1000.000000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ float64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Custom volume configuration for the root volumes that are attached to streaming\n sessions.
\nThis parameter is only allowed when sessionPersistenceMode
is\n ACTIVATED
.
A configuration for a streaming session.
", - Required: true, + Required: true, }, /*END ATTRIBUTE*/ // Property: StudioComponentIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this\n launch profile.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 100, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "studio_component_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Unique identifiers for a collection of studio components that can be used with this\n launch profile.
", Required: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(1, 100), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ // Property: StudioId // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio ID.
", - Required: true, + Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -611,7 +383,6 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "patternProperties": { // "": { // "type": "string" @@ -641,7 +412,7 @@ func launchProfileResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Represents a launch profile which delegates access to a collection of studio components to studio users", + Description: "Resource Type definition for AWS::NimbleStudio::LaunchProfile", Version: 1, Attributes: attributes, } diff --git a/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go b/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go index 79408a8629..e2681effd1 100644 --- a/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go +++ b/internal/aws/nimblestudio/launch_profile_singular_data_source_gen.go @@ -27,30 +27,23 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe description.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Ec2SubnetIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eSpecifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types. \u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 6, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "ec_2_subnet_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: LaunchProfileId @@ -66,152 +59,82 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", // "items": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", - // "maxLength": 10, - // "minLength": 0, - // "pattern": "^2021\\-03\\-31$", // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "launch_profile_protocol_versions": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe name for the launch profile.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the launch profile.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StreamConfiguration // CloudFormation resource type schema: // // { // "additionalProperties": false, - // "description": "\u003cp\u003eA configuration for a streaming session.\u003c/p\u003e", // "properties": { // "AutomaticTerminationMode": { - // "enum": [ - // "DEACTIVATED", - // "ACTIVATED" - // ], // "type": "string" // }, // "ClipboardMode": { - // "enum": [ - // "ENABLED", - // "DISABLED" - // ], // "type": "string" // }, // "Ec2InstanceTypes": { - // "description": "\u003cp\u003eThe EC2 instance types that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "enum": [ - // "g4dn.xlarge", - // "g4dn.2xlarge", - // "g4dn.4xlarge", - // "g4dn.8xlarge", - // "g4dn.12xlarge", - // "g4dn.16xlarge", - // "g3.4xlarge", - // "g3s.xlarge", - // "g5.xlarge", - // "g5.2xlarge", - // "g5.4xlarge", - // "g5.8xlarge", - // "g5.16xlarge" - // ], // "type": "string" // }, - // "maxItems": 30, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "MaxSessionLengthInMinutes": { - // "default": 690, - // "description": "\u003cp\u003eThe length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.\u003c/p\u003e", - // "maximum": 43200, - // "minimum": 1, // "type": "number" // }, // "MaxStoppedSessionLengthInMinutes": { - // "default": 0, - // "description": "\u003cp\u003eInteger that determines if you can start and stop your sessions and how long a session\n can stay in the \u003ccode\u003eSTOPPED\u003c/code\u003e state. The default value is 0. The maximum value is\n 5760.\u003c/p\u003e\n \u003cp\u003eThis field is allowed only when \u003ccode\u003esessionPersistenceMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e and \u003ccode\u003eautomaticTerminationMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e.\u003c/p\u003e\n \u003cp\u003eIf the value is set to 0, your sessions can?t be \u003ccode\u003eSTOPPED\u003c/code\u003e. If you then\n call \u003ccode\u003eStopStreamingSession\u003c/code\u003e, the session fails. If the time that a session\n stays in the \u003ccode\u003eREADY\u003c/code\u003e state exceeds the \u003ccode\u003emaxSessionLengthInMinutes\u003c/code\u003e\n value, the session will automatically be terminated (instead of\n \u003ccode\u003eSTOPPED\u003c/code\u003e).\u003c/p\u003e\n \u003cp\u003eIf the value is set to a positive number, the session can be stopped. You can call\n \u003ccode\u003eStopStreamingSession\u003c/code\u003e to stop sessions in the \u003ccode\u003eREADY\u003c/code\u003e state.\n If the time that a session stays in the \u003ccode\u003eREADY\u003c/code\u003e state exceeds the\n \u003ccode\u003emaxSessionLengthInMinutes\u003c/code\u003e value, the session will automatically be\n stopped (instead of terminated).\u003c/p\u003e", - // "maximum": 5760, - // "minimum": 0, // "type": "number" // }, // "SessionBackup": { // "additionalProperties": false, - // "description": "\u003cp\u003eConfigures how streaming sessions are backed up when launched from this launch\n profile.\u003c/p\u003e", // "properties": { // "MaxBackupsToRetain": { - // "default": 0, - // "description": "\u003cp\u003eThe maximum number of backups that each streaming session created from this launch\n profile can have.\u003c/p\u003e", - // "maximum": 10, - // "minimum": 0, // "type": "number" // }, // "Mode": { - // "enum": [ - // "AUTOMATIC", - // "DEACTIVATED" - // ], // "type": "string" // } // }, // "type": "object" // }, // "SessionPersistenceMode": { - // "enum": [ - // "DEACTIVATED", - // "ACTIVATED" - // ], // "type": "string" // }, // "SessionStorage": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a streaming session?s upload storage.\u003c/p\u003e", // "properties": { // "Mode": { - // "description": "\u003cp\u003eAllows artists to upload files to their workstations. The only valid option is\n \u003ccode\u003eUPLOAD\u003c/code\u003e.\u003c/p\u003e", // "items": { - // "enum": [ - // "UPLOAD" - // ], // "type": "string" // }, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "Root": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe upload storage root location (folder) on streaming workstations where files are\n uploaded.\u003c/p\u003e", // "properties": { // "Linux": { - // "description": "\u003cp\u003eThe folder path in Linux workstations where files are uploaded.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$", // "type": "string" // }, // "Windows": { - // "description": "\u003cp\u003eThe folder path in Windows workstations where files are uploaded.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 1, - // "pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", // "type": "string" // } // }, @@ -224,40 +147,22 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // "type": "object" // }, // "StreamingImageIds": { - // "description": "\u003cp\u003eThe streaming images that users can select from when launching a streaming session\n with this launch profile.\u003c/p\u003e", // "items": { - // "maxLength": 22, - // "minLength": 0, - // "pattern": "^[a-zA-Z0-9-_]*$", // "type": "string" // }, - // "maxItems": 20, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "VolumeConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eCustom volume configuration for the root volumes that are attached to streaming\n sessions.\u003c/p\u003e\n \u003cp\u003eThis parameter is only allowed when \u003ccode\u003esessionPersistenceMode\u003c/code\u003e is\n \u003ccode\u003eACTIVATED\u003c/code\u003e.\u003c/p\u003e", // "properties": { // "Iops": { - // "default": 3000, - // "description": "\u003cp\u003eThe number of I/O operations per second for the root volume that is attached to\n streaming session.\u003c/p\u003e", - // "maximum": 16000, - // "minimum": 3000, // "type": "number" // }, // "Size": { - // "default": 500, - // "description": "\u003cp\u003eThe size of the root volume that is attached to the streaming session. The root volume\n size is measured in GiBs.\u003c/p\u003e", - // "maximum": 16000, - // "minimum": 100, // "type": "number" // }, // "Throughput": { - // "default": 125, - // "description": "\u003cp\u003eThe throughput to provision for the root volume that is attached to the streaming\n session. The throughput is measured in MiB/s.\u003c/p\u003e", - // "maximum": 1000, - // "minimum": 125, // "type": "number" // } // }, @@ -266,8 +171,8 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "required": [ // "ClipboardMode", - // "Ec2InstanceTypes", - // "StreamingImageIds" + // "StreamingImageIds", + // "Ec2InstanceTypes" // ], // "type": "object" // } @@ -284,34 +189,29 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // Property: Ec2InstanceTypes "ec_2_instance_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: MaxSessionLengthInMinutes "max_session_length_in_minutes": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: MaxStoppedSessionLengthInMinutes "max_stopped_session_length_in_minutes": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED
state. The default value is 0. The maximum value is\n 5760.
This field is allowed only when sessionPersistenceMode
is\n ACTIVATED
and automaticTerminationMode
is\n ACTIVATED
.
If the value is set to 0, your sessions can?t be STOPPED
. If you then\n call StopStreamingSession
, the session fails. If the time that a session\n stays in the READY
state exceeds the maxSessionLengthInMinutes
\n value, the session will automatically be terminated (instead of\n STOPPED
).
If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession
to stop sessions in the READY
state.\n If the time that a session stays in the READY
state exceeds the\n maxSessionLengthInMinutes
value, the session will automatically be\n stopped (instead of terminated).
The maximum number of backups that each streaming session created from this launch\n profile can have.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Mode "mode": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Configures how streaming sessions are backed up when launched from this launch\n profile.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: SessionPersistenceMode "session_persistence_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -323,7 +223,6 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) // Property: Mode "mode": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Allows artists to upload files to their workstations. The only valid option is\n UPLOAD
.
The folder path in Linux workstations where files are uploaded.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Windows "windows": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The folder path in Windows workstations where files are uploaded.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The upload storage root location (folder) on streaming workstations where files are\n uploaded.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a streaming session?s upload storage.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StreamingImageIds "streaming_image_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The streaming images that users can select from when launching a streaming session\n with this launch profile.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: VolumeConfiguration @@ -358,60 +252,49 @@ func launchProfileDataSource(ctx context.Context) (datasource.DataSource, error) Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Iops "iops": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The number of I/O operations per second for the root volume that is attached to\n streaming session.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Size "size": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The size of the root volume that is attached to the streaming session. The root volume\n size is measured in GiBs.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Throughput "throughput": schema.Float64Attribute{ /*START ATTRIBUTE*/ - Description: "The throughput to provision for the root volume that is attached to the streaming\n session. The throughput is measured in MiB/s.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Custom volume configuration for the root volumes that are attached to streaming\n sessions.
\nThis parameter is only allowed when sessionPersistenceMode
is\n ACTIVATED
.
A configuration for a streaming session.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioComponentIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eUnique identifiers for a collection of studio components that can be used with this\n launch profile.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 100, - // "minItems": 1, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "studio_component_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "Unique identifiers for a collection of studio components that can be used with this\n launch profile.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioId // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio ID.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "patternProperties": { // "": { // "type": "string" diff --git a/internal/aws/nimblestudio/streaming_image_resource_gen.go b/internal/aws/nimblestudio/streaming_image_resource_gen.go index e06ebd0ae9..21d668a2d3 100644 --- a/internal/aws/nimblestudio/streaming_image_resource_gen.go +++ b/internal/aws/nimblestudio/streaming_image_resource_gen.go @@ -7,9 +7,7 @@ package nimblestudio import ( "context" - "regexp" - "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" @@ -17,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" - "github.com/hashicorp/terraform-plugin-framework/schema/validator" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" @@ -35,18 +32,11 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA human-readable description of the streaming image.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A human-readable description of the streaming image.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 256), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -55,16 +45,10 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe ID of an EC2 machine image with which to create this streaming image.\u003c/p\u003e", - // "pattern": "^ami-[0-9A-z]+$", // "type": "string" // } "ec_2_image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of an EC2 machine image with which to create this streaming image.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^ami-[0-9A-z]+$"), ""), - }, /*END VALIDATORS*/ + Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -74,19 +58,11 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "\u003cp\u003eTODO\u003c/p\u003e", // "properties": { // "KeyArn": { - // "description": "\u003cp\u003eThe ARN for a KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "minLength": 4, - // "pattern": "^arn:.*", // "type": "string" // }, // "KeyType": { - // "description": "\u003cp/\u003e", - // "enum": [ - // "CUSTOMER_MANAGED_KEY" - // ], // "type": "string" // } // }, @@ -99,34 +75,56 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: KeyArn "key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN for a KMS key that is used to encrypt studio data.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: KeyType "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "TODO
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EncryptionConfigurationKeyArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "encryption_configuration_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EncryptionConfigurationKeyType + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "encryption_configuration_key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: EulaIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "eula_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.
", Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), @@ -136,28 +134,19 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA friendly name for a streaming image resource.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly name for a streaming image resource.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 64), - }, /*END VALIDATORS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: Owner // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.\u003c/p\u003e", // "type": "string" // } "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -166,13 +155,10 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe platform of the streaming image, either WINDOWS or LINUX.\u003c/p\u003e", - // "pattern": "^[a-zA-Z]*$", // "type": "string" // } "platform": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The platform of the streaming image, either WINDOWS or LINUX.
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -193,12 +179,10 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studioId. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studioId.
", - Required: true, + Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -207,8 +191,6 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -219,7 +201,6 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { "tags": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -239,7 +220,7 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Represents a streaming session machine image that can be used to launch a streaming session", + Description: "Resource Type definition for AWS::NimbleStudio::StreamingImage", Version: 1, Attributes: attributes, } @@ -249,18 +230,20 @@ func streamingImageResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::NimbleStudio::StreamingImage").WithTerraformTypeName("awscc_nimblestudio_streaming_image") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "ec_2_image_id": "Ec2ImageId", - "encryption_configuration": "EncryptionConfiguration", - "eula_ids": "EulaIds", - "key_arn": "KeyArn", - "key_type": "KeyType", - "name": "Name", - "owner": "Owner", - "platform": "Platform", - "streaming_image_id": "StreamingImageId", - "studio_id": "StudioId", - "tags": "Tags", + "description": "Description", + "ec_2_image_id": "Ec2ImageId", + "encryption_configuration": "EncryptionConfiguration", + "encryption_configuration_key_arn": "EncryptionConfigurationKeyArn", + "encryption_configuration_key_type": "EncryptionConfigurationKeyType", + "eula_ids": "EulaIds", + "key_arn": "KeyArn", + "key_type": "KeyType", + "name": "Name", + "owner": "Owner", + "platform": "Platform", + "streaming_image_id": "StreamingImageId", + "studio_id": "StudioId", + "tags": "Tags", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/nimblestudio/streaming_image_singular_data_source_gen.go b/internal/aws/nimblestudio/streaming_image_singular_data_source_gen.go index 988487fd54..91f33742fd 100644 --- a/internal/aws/nimblestudio/streaming_image_singular_data_source_gen.go +++ b/internal/aws/nimblestudio/streaming_image_singular_data_source_gen.go @@ -27,45 +27,30 @@ func streamingImageDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA human-readable description of the streaming image.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A human-readable description of the streaming image.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Ec2ImageId // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe ID of an EC2 machine image with which to create this streaming image.\u003c/p\u003e", - // "pattern": "^ami-[0-9A-z]+$", // "type": "string" // } "ec_2_image_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ID of an EC2 machine image with which to create this streaming image.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: EncryptionConfiguration // CloudFormation resource type schema: // // { // "additionalProperties": false, - // "description": "\u003cp\u003eTODO\u003c/p\u003e", // "properties": { // "KeyArn": { - // "description": "\u003cp\u003eThe ARN for a KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "minLength": 4, - // "pattern": "^arn:.*", // "type": "string" // }, // "KeyType": { - // "description": "\u003cp/\u003e", - // "enum": [ - // "CUSTOMER_MANAGED_KEY" - // ], // "type": "string" // } // }, @@ -78,68 +63,73 @@ func streamingImageDataSource(ctx context.Context) (datasource.DataSource, error Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: KeyArn "key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN for a KMS key that is used to encrypt studio data.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: KeyType "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "TODO
", - Computed: true, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EncryptionConfigurationKeyArn + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "encryption_configuration_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EncryptionConfigurationKeyType + // CloudFormation resource type schema: + // + // { + // "type": "string" + // } + "encryption_configuration_key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, }, /*END ATTRIBUTE*/ // Property: EulaIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "eula_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA friendly name for a streaming image resource.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly name for a streaming image resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Owner // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.\u003c/p\u003e", // "type": "string" // } "owner": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Platform // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe platform of the streaming image, either WINDOWS or LINUX.\u003c/p\u003e", - // "pattern": "^[a-zA-Z]*$", // "type": "string" // } "platform": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The platform of the streaming image, either WINDOWS or LINUX.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StreamingImageId // CloudFormation resource type schema: @@ -154,19 +144,15 @@ func streamingImageDataSource(ctx context.Context) (datasource.DataSource, error // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studioId. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studioId.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -177,7 +163,6 @@ func streamingImageDataSource(ctx context.Context) (datasource.DataSource, error "tags": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "", Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -197,18 +182,20 @@ func streamingImageDataSource(ctx context.Context) (datasource.DataSource, error opts = opts.WithCloudFormationTypeName("AWS::NimbleStudio::StreamingImage").WithTerraformTypeName("awscc_nimblestudio_streaming_image") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "description": "Description", - "ec_2_image_id": "Ec2ImageId", - "encryption_configuration": "EncryptionConfiguration", - "eula_ids": "EulaIds", - "key_arn": "KeyArn", - "key_type": "KeyType", - "name": "Name", - "owner": "Owner", - "platform": "Platform", - "streaming_image_id": "StreamingImageId", - "studio_id": "StudioId", - "tags": "Tags", + "description": "Description", + "ec_2_image_id": "Ec2ImageId", + "encryption_configuration": "EncryptionConfiguration", + "encryption_configuration_key_arn": "EncryptionConfigurationKeyArn", + "encryption_configuration_key_type": "EncryptionConfigurationKeyType", + "eula_ids": "EulaIds", + "key_arn": "KeyArn", + "key_type": "KeyType", + "name": "Name", + "owner": "Owner", + "platform": "Platform", + "streaming_image_id": "StreamingImageId", + "studio_id": "StudioId", + "tags": "Tags", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/nimblestudio/studio_component_resource_gen.go b/internal/aws/nimblestudio/studio_component_resource_gen.go index e8b6d6ca76..f9dd312e2f 100644 --- a/internal/aws/nimblestudio/studio_component_resource_gen.go +++ b/internal/aws/nimblestudio/studio_component_resource_gen.go @@ -7,10 +7,7 @@ package nimblestudio import ( "context" - "regexp" - "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" - "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" @@ -18,7 +15,6 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" - "github.com/hashicorp/terraform-plugin-framework/schema/validator" "github.com/hashicorp/terraform-plugin-framework/types" "github.com/hashicorp/terraform-provider-awscc/internal/generic" "github.com/hashicorp/terraform-provider-awscc/internal/registry" @@ -36,45 +32,31 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe configuration of the studio component, based on component type.\u003c/p\u003e", + // "additionalProperties": false, // "properties": { // "ActiveDirectoryConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a Microsoft Active Directory (Microsoft AD) studio\n resource.\u003c/p\u003e", // "properties": { // "ComputerAttributes": { - // "description": "\u003cp\u003eA collection of custom attributes for an Active Directory computer.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eAn LDAP attribute of an Active Directory computer account, in the form of a name:value\n pair.\u003c/p\u003e", // "properties": { // "Name": { - // "description": "\u003cp\u003eThe name for the LDAP attribute.\u003c/p\u003e", - // "maxLength": 40, - // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "\u003cp\u003eThe value for the LDAP attribute.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "maxItems": 50, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "DirectoryId": { - // "description": "\u003cp\u003eThe directory ID of the Directory Service for Microsoft Active Directory to access\n using this studio component.\u003c/p\u003e", // "type": "string" // }, // "OrganizationalUnitDistinguishedName": { - // "description": "\u003cp\u003eThe distinguished name (DN) and organizational unit (OU) of an Active Directory\n computer.\u003c/p\u003e", - // "maxLength": 2000, - // "minLength": 1, // "type": "string" // } // }, @@ -82,14 +64,11 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // }, // "ComputeFarmConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a render farm that is associated with a studio resource.\u003c/p\u003e", // "properties": { // "ActiveDirectoryUser": { - // "description": "\u003cp\u003eThe name of an Active Directory user that is used on ComputeFarm worker\n instances.\u003c/p\u003e", // "type": "string" // }, // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the ComputeFarm that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // } // }, @@ -97,10 +76,8 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // }, // "LicenseServiceConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a license service that is associated with a studio\n resource.\u003c/p\u003e", // "properties": { // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the license service that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // } // }, @@ -108,30 +85,20 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // }, // "SharedFileSystemConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a shared file storage system that is associated with a studio\n resource.\u003c/p\u003e", // "properties": { // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the shared file system that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // }, // "FileSystemId": { - // "description": "\u003cp\u003eThe unique identifier for a file system.\u003c/p\u003e", // "type": "string" // }, // "LinuxMountPoint": { - // "description": "\u003cp\u003eThe mount location for a shared file system on a Linux virtual workstation.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 0, - // "pattern": "^(/?|(\\$HOME)?(/[^/\\n\\s\\\\]+)*)$", // "type": "string" // }, // "ShareName": { - // "description": "\u003cp\u003eThe name of the file share.\u003c/p\u003e", // "type": "string" // }, // "WindowsMountDrive": { - // "description": "\u003cp\u003eThe mount location for a shared file system on a Windows virtual workstation.\u003c/p\u003e", - // "pattern": "^[A-Z]$", // "type": "string" // } // }, @@ -151,65 +118,47 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the LDAP attribute.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 40), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value for the LDAP attribute.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 64), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A collection of custom attributes for an Active Directory computer.
", - Optional: true, - Computed: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(0, 50), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: DirectoryId "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The directory ID of the Directory Service for Microsoft Active Directory to access\n using this studio component.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: OrganizationalUnitDistinguishedName "organizational_unit_distinguished_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The distinguished name (DN) and organizational unit (OU) of an Active Directory\n computer.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 2000), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a Microsoft Active Directory (Microsoft AD) studio\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -219,26 +168,23 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ActiveDirectoryUser "active_directory_user": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of an Active Directory user that is used on ComputeFarm worker\n instances.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the ComputeFarm that is accessed by the studio component\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a render farm that is associated with a studio resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -248,17 +194,15 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the license service that is accessed by the studio component\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a license service that is associated with a studio\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -268,68 +212,54 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the shared file system that is accessed by the studio component\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: FileSystemId "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unique identifier for a file system.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: LinuxMountPoint "linux_mount_point": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mount location for a shared file system on a Linux virtual workstation.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 128), - stringvalidator.RegexMatches(regexp.MustCompile("^(/?|(\\$HOME)?(/[^/\\n\\s\\\\]+)*)$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ShareName "share_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the file share.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: WindowsMountDrive "windows_mount_drive": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mount location for a shared file system on a Windows virtual workstation.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^[A-Z]$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a shared file storage system that is associated with a studio\n resource.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration of the studio component, based on component type.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -338,18 +268,11 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe description.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 256), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -358,22 +281,16 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe EC2 security groups that control access to the studio component.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 30, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "ec_2_security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The EC2 security groups that control access to the studio component.
", Optional: true, Computed: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(0, 30), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -382,55 +299,34 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eInitialization scripts for studio components.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eInitialization scripts for studio components.\u003c/p\u003e", // "properties": { // "LaunchProfileProtocolVersion": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", - // "maxLength": 10, - // "minLength": 0, - // "pattern": "^2021\\-03\\-31$", // "type": "string" // }, // "Platform": { - // "enum": [ - // "LINUX", - // "WINDOWS" - // ], // "type": "string" // }, // "RunContext": { - // "enum": [ - // "SYSTEM_INITIALIZATION", - // "USER_INITIALIZATION" - // ], // "type": "string" // }, // "Script": { - // "description": "\u003cp\u003eThe initialization script.\u003c/p\u003e", - // "maxLength": 5120, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "initialization_scripts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: LaunchProfileProtocolVersion "launch_profile_protocol_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 10), - stringvalidator.RegexMatches(regexp.MustCompile("^2021\\-03\\-31$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -439,12 +335,6 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { "platform": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "LINUX", - "WINDOWS", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -453,33 +343,22 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { "run_context": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "SYSTEM_INITIALIZATION", - "USER_INITIALIZATION", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Script "script": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The initialization script.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 5120), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Initialization scripts for studio components.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -488,121 +367,55 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe name for the studio component.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the studio component.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 64), - }, /*END VALIDATORS*/ - }, /*END ATTRIBUTE*/ - // Property: RuntimeRoleArn - // CloudFormation resource type schema: - // - // { - // "maxLength": 2048, - // "minLength": 0, - // "type": "string" - // } - "runtime_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 2048), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: ScriptParameters // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eParameters for the studio component scripts.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eA parameter for a studio component script, in the form of a key:value pair.\u003c/p\u003e", // "properties": { // "Key": { - // "description": "\u003cp\u003eA script parameter key.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, - // "pattern": "^[a-zA-Z_][a-zA-Z0-9_]+$", // "type": "string" // }, // "Value": { - // "description": "\u003cp\u003eA script parameter value.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "maxItems": 30, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "script_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A script parameter key.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 64), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]+$"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A script parameter value.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(1, 256), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Parameters for the studio component scripts.
", - Optional: true, - Computed: true, - Validators: []validator.List{ /*START VALIDATORS*/ - listvalidator.SizeBetween(0, 30), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ - listplanmodifier.UseStateForUnknown(), - }, /*END PLAN MODIFIERS*/ - }, /*END ATTRIBUTE*/ - // Property: SecureInitializationRoleArn - // CloudFormation resource type schema: - // - // { - // "maxLength": 2048, - // "minLength": 0, - // "type": "string" - // } - "secure_initialization_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 2048), - }, /*END VALIDATORS*/ - PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.UseStateForUnknown(), + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: StudioComponentId @@ -621,12 +434,10 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio ID.
", - Required: true, + Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -635,25 +446,11 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "enum": [ - // "AWS_MANAGED_MICROSOFT_AD", - // "AMAZON_FSX_FOR_WINDOWS", - // "AMAZON_FSX_FOR_LUSTRE", - // "CUSTOM" - // ], // "type": "string" // } "subtype": schema.StringAttribute{ /*START ATTRIBUTE*/ Optional: true, Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "AWS_MANAGED_MICROSOFT_AD", - "AMAZON_FSX_FOR_WINDOWS", - "AMAZON_FSX_FOR_LUSTRE", - "CUSTOM", - ), - }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), stringplanmodifier.RequiresReplaceIfConfigured(), @@ -663,7 +460,6 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "patternProperties": { // "": { // "type": "string" @@ -685,26 +481,10 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "enum": [ - // "ACTIVE_DIRECTORY", - // "SHARED_FILE_SYSTEM", - // "COMPUTE_FARM", - // "LICENSE_SERVICE", - // "CUSTOM" - // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "ACTIVE_DIRECTORY", - "SHARED_FILE_SYSTEM", - "COMPUTE_FARM", - "LICENSE_SERVICE", - "CUSTOM", - ), - }, /*END VALIDATORS*/ }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -718,7 +498,7 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Represents a studio component that connects a non-Nimble Studio resource in your account to your studio", + Description: "Resource Type definition for AWS::NimbleStudio::StudioComponent", Version: 1, Attributes: attributes, } @@ -747,10 +527,8 @@ func studioComponentResource(ctx context.Context) (resource.Resource, error) { "organizational_unit_distinguished_name": "OrganizationalUnitDistinguishedName", "platform": "Platform", "run_context": "RunContext", - "runtime_role_arn": "RuntimeRoleArn", "script": "Script", "script_parameters": "ScriptParameters", - "secure_initialization_role_arn": "SecureInitializationRoleArn", "share_name": "ShareName", "shared_file_system_configuration": "SharedFileSystemConfiguration", "studio_component_id": "StudioComponentId", diff --git a/internal/aws/nimblestudio/studio_component_singular_data_source_gen.go b/internal/aws/nimblestudio/studio_component_singular_data_source_gen.go index e653e2aca8..142b600d1e 100644 --- a/internal/aws/nimblestudio/studio_component_singular_data_source_gen.go +++ b/internal/aws/nimblestudio/studio_component_singular_data_source_gen.go @@ -27,45 +27,31 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe configuration of the studio component, based on component type.\u003c/p\u003e", + // "additionalProperties": false, // "properties": { // "ActiveDirectoryConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a Microsoft Active Directory (Microsoft AD) studio\n resource.\u003c/p\u003e", // "properties": { // "ComputerAttributes": { - // "description": "\u003cp\u003eA collection of custom attributes for an Active Directory computer.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eAn LDAP attribute of an Active Directory computer account, in the form of a name:value\n pair.\u003c/p\u003e", // "properties": { // "Name": { - // "description": "\u003cp\u003eThe name for the LDAP attribute.\u003c/p\u003e", - // "maxLength": 40, - // "minLength": 1, // "type": "string" // }, // "Value": { - // "description": "\u003cp\u003eThe value for the LDAP attribute.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "maxItems": 50, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // }, // "DirectoryId": { - // "description": "\u003cp\u003eThe directory ID of the Directory Service for Microsoft Active Directory to access\n using this studio component.\u003c/p\u003e", // "type": "string" // }, // "OrganizationalUnitDistinguishedName": { - // "description": "\u003cp\u003eThe distinguished name (DN) and organizational unit (OU) of an Active Directory\n computer.\u003c/p\u003e", - // "maxLength": 2000, - // "minLength": 1, // "type": "string" // } // }, @@ -73,14 +59,11 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // }, // "ComputeFarmConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a render farm that is associated with a studio resource.\u003c/p\u003e", // "properties": { // "ActiveDirectoryUser": { - // "description": "\u003cp\u003eThe name of an Active Directory user that is used on ComputeFarm worker\n instances.\u003c/p\u003e", // "type": "string" // }, // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the ComputeFarm that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // } // }, @@ -88,10 +71,8 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // }, // "LicenseServiceConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a license service that is associated with a studio\n resource.\u003c/p\u003e", // "properties": { // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the license service that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // } // }, @@ -99,30 +80,20 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // }, // "SharedFileSystemConfiguration": { // "additionalProperties": false, - // "description": "\u003cp\u003eThe configuration for a shared file storage system that is associated with a studio\n resource.\u003c/p\u003e", // "properties": { // "Endpoint": { - // "description": "\u003cp\u003eThe endpoint of the shared file system that is accessed by the studio component\n resource.\u003c/p\u003e", // "type": "string" // }, // "FileSystemId": { - // "description": "\u003cp\u003eThe unique identifier for a file system.\u003c/p\u003e", // "type": "string" // }, // "LinuxMountPoint": { - // "description": "\u003cp\u003eThe mount location for a shared file system on a Linux virtual workstation.\u003c/p\u003e", - // "maxLength": 128, - // "minLength": 0, - // "pattern": "^(/?|(\\$HOME)?(/[^/\\n\\s\\\\]+)*)$", // "type": "string" // }, // "ShareName": { - // "description": "\u003cp\u003eThe name of the file share.\u003c/p\u003e", // "type": "string" // }, // "WindowsMountDrive": { - // "description": "\u003cp\u003eThe mount location for a shared file system on a Windows virtual workstation.\u003c/p\u003e", - // "pattern": "^[A-Z]$", // "type": "string" // } // }, @@ -142,176 +113,134 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Name "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the LDAP attribute.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The value for the LDAP attribute.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "A collection of custom attributes for an Active Directory computer.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: DirectoryId "directory_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The directory ID of the Directory Service for Microsoft Active Directory to access\n using this studio component.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: OrganizationalUnitDistinguishedName "organizational_unit_distinguished_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The distinguished name (DN) and organizational unit (OU) of an Active Directory\n computer.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a Microsoft Active Directory (Microsoft AD) studio\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: ComputeFarmConfiguration "compute_farm_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ActiveDirectoryUser "active_directory_user": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of an Active Directory user that is used on ComputeFarm worker\n instances.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the ComputeFarm that is accessed by the studio component\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a render farm that is associated with a studio resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: LicenseServiceConfiguration "license_service_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the license service that is accessed by the studio component\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a license service that is associated with a studio\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: SharedFileSystemConfiguration "shared_file_system_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Endpoint "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The endpoint of the shared file system that is accessed by the studio component\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: FileSystemId "file_system_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The unique identifier for a file system.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: LinuxMountPoint "linux_mount_point": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mount location for a shared file system on a Linux virtual workstation.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: ShareName "share_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name of the file share.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: WindowsMountDrive "windows_mount_drive": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The mount location for a shared file system on a Windows virtual workstation.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration for a shared file storage system that is associated with a studio\n resource.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "The configuration of the studio component, based on component type.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Description // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe description.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 0, // "type": "string" // } "description": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The description.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Ec2SecurityGroupIds // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe EC2 security groups that control access to the studio component.\u003c/p\u003e", // "items": { // "type": "string" // }, - // "maxItems": 30, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "ec_2_security_group_ids": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The EC2 security groups that control access to the studio component.
", Computed: true, }, /*END ATTRIBUTE*/ // Property: InitializationScripts // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eInitialization scripts for studio components.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eInitialization scripts for studio components.\u003c/p\u003e", // "properties": { // "LaunchProfileProtocolVersion": { - // "description": "\u003cp\u003eThe version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".\u003c/p\u003e", - // "maxLength": 10, - // "minLength": 0, - // "pattern": "^2021\\-03\\-31$", // "type": "string" // }, // "Platform": { - // "enum": [ - // "LINUX", - // "WINDOWS" - // ], // "type": "string" // }, // "RunContext": { - // "enum": [ - // "SYSTEM_INITIALIZATION", - // "USER_INITIALIZATION" - // ], // "type": "string" // }, // "Script": { - // "description": "\u003cp\u003eThe initialization script.\u003c/p\u003e", - // "maxLength": 5120, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "initialization_scripts": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: LaunchProfileProtocolVersion "launch_profile_protocol_version": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Platform "platform": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -323,94 +252,53 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro }, /*END ATTRIBUTE*/ // Property: Script "script": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The initialization script.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Initialization scripts for studio components.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Name // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe name for the studio component.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The name for the studio component.
", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: RuntimeRoleArn - // CloudFormation resource type schema: - // - // { - // "maxLength": 2048, - // "minLength": 0, - // "type": "string" - // } - "runtime_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ // Property: ScriptParameters // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eParameters for the studio component scripts.\u003c/p\u003e", // "items": { // "additionalProperties": false, - // "description": "\u003cp\u003eA parameter for a studio component script, in the form of a key:value pair.\u003c/p\u003e", // "properties": { // "Key": { - // "description": "\u003cp\u003eA script parameter key.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 1, - // "pattern": "^[a-zA-Z_][a-zA-Z0-9_]+$", // "type": "string" // }, // "Value": { - // "description": "\u003cp\u003eA script parameter value.\u003c/p\u003e", - // "maxLength": 256, - // "minLength": 1, // "type": "string" // } // }, // "type": "object" // }, - // "maxItems": 30, - // "minItems": 0, - // "type": "array" + // "type": "array", + // "uniqueItems": false // } "script_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A script parameter key.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A script parameter value.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ - Description: "Parameters for the studio component scripts.
", - Computed: true, - }, /*END ATTRIBUTE*/ - // Property: SecureInitializationRoleArn - // CloudFormation resource type schema: - // - // { - // "maxLength": 2048, - // "minLength": 0, - // "type": "string" - // } - "secure_initialization_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioComponentId @@ -426,23 +314,15 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio ID. \u003c/p\u003e", // "type": "string" // } "studio_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio ID.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Subtype // CloudFormation resource type schema: // // { - // "enum": [ - // "AWS_MANAGED_MICROSOFT_AD", - // "AMAZON_FSX_FOR_WINDOWS", - // "AMAZON_FSX_FOR_LUSTRE", - // "CUSTOM" - // ], // "type": "string" // } "subtype": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -452,7 +332,6 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "additionalProperties": false, // "patternProperties": { // "": { // "type": "string" @@ -469,13 +348,6 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro // CloudFormation resource type schema: // // { - // "enum": [ - // "ACTIVE_DIRECTORY", - // "SHARED_FILE_SYSTEM", - // "COMPUTE_FARM", - // "LICENSE_SERVICE", - // "CUSTOM" - // ], // "type": "string" // } "type": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -517,10 +389,8 @@ func studioComponentDataSource(ctx context.Context) (datasource.DataSource, erro "organizational_unit_distinguished_name": "OrganizationalUnitDistinguishedName", "platform": "Platform", "run_context": "RunContext", - "runtime_role_arn": "RuntimeRoleArn", "script": "Script", "script_parameters": "ScriptParameters", - "secure_initialization_role_arn": "SecureInitializationRoleArn", "share_name": "ShareName", "shared_file_system_configuration": "SharedFileSystemConfiguration", "studio_component_id": "StudioComponentId", diff --git a/internal/aws/nimblestudio/studio_resource_gen.go b/internal/aws/nimblestudio/studio_resource_gen.go index 48ef0e8477..e952d859f2 100644 --- a/internal/aws/nimblestudio/studio_resource_gen.go +++ b/internal/aws/nimblestudio/studio_resource_gen.go @@ -7,9 +7,7 @@ package nimblestudio import ( "context" - "regexp" - "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" @@ -35,42 +33,28 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "admin_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.
", - Required: true, + Required: true, }, /*END ATTRIBUTE*/ // Property: DisplayName // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA friendly name for the studio.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly name for the studio.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(0, 64), - }, /*END VALIDATORS*/ + Required: true, }, /*END ATTRIBUTE*/ // Property: HomeRegion // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe Amazon Web Services Region where the studio resource is located.\u003c/p\u003e", - // "maxLength": 50, - // "minLength": 0, - // "pattern": "[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]", // "type": "string" // } "home_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Web Services Region where the studio resource is located.
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -79,12 +63,10 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "sso_client_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -94,20 +76,11 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // // { // "additionalProperties": false, - // "description": "\u003cp\u003eConfiguration of the encryption method that is used for the studio.\u003c/p\u003e", // "properties": { // "KeyArn": { - // "description": "\u003cp\u003eThe ARN for a KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "minLength": 4, - // "pattern": "^arn:.*", // "type": "string" // }, // "KeyType": { - // "description": "\u003cp\u003eThe type of KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "enum": [ - // "AWS_OWNED_KEY", - // "CUSTOMER_MANAGED_KEY" - // ], // "type": "string" // } // }, @@ -120,27 +93,17 @@ func studioResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: KeyArn "key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN for a KMS key that is used to encrypt studio data.
", - Optional: true, - Computed: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthAtLeast(4), - stringvalidator.RegexMatches(regexp.MustCompile("^arn:.*"), ""), - }, /*END VALIDATORS*/ + Optional: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: KeyType "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of KMS key that is used to encrypt studio data.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.OneOf( - "AWS_OWNED_KEY", - "CUSTOMER_MANAGED_KEY", - ), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -148,9 +111,8 @@ func studioResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Configuration of the encryption method that is used for the studio.
", - Optional: true, - Computed: true, + Optional: true, + Computed: true, PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ objectplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -171,19 +133,10 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 3, - // "pattern": "^[a-z0-9]*$", // "type": "string" // } "studio_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.
", - Required: true, - Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.LengthBetween(3, 64), - stringvalidator.RegexMatches(regexp.MustCompile("^[a-z0-9]*$"), ""), - }, /*END VALIDATORS*/ + Required: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ @@ -192,12 +145,10 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe address of the web page for the studio.\u003c/p\u003e", // "type": "string" // } "studio_url": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The address of the web page for the studio.
", - Computed: true, + Computed: true, PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ @@ -206,8 +157,6 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -218,7 +167,6 @@ func studioResource(ctx context.Context) (resource.Resource, error) { "tags": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "", Optional: true, Computed: true, PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ @@ -230,12 +178,10 @@ func studioResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe IAM role that Studio Users will assume when logging in to the Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "user_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.
", - Required: true, + Required: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ @@ -249,7 +195,7 @@ func studioResource(ctx context.Context) (resource.Resource, error) { } schema := schema.Schema{ - Description: "Represents a studio that contains other Nimble Studio resources", + Description: "Resource Type definition for AWS::NimbleStudio::Studio", Version: 1, Attributes: attributes, } diff --git a/internal/aws/nimblestudio/studio_singular_data_source_gen.go b/internal/aws/nimblestudio/studio_singular_data_source_gen.go index 33198e9ee9..16f07b0f62 100644 --- a/internal/aws/nimblestudio/studio_singular_data_source_gen.go +++ b/internal/aws/nimblestudio/studio_singular_data_source_gen.go @@ -27,70 +27,48 @@ func studioDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "admin_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: DisplayName // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eA friendly name for the studio.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 0, // "type": "string" // } "display_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "A friendly name for the studio.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: HomeRegion // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe Amazon Web Services Region where the studio resource is located.\u003c/p\u003e", - // "maxLength": 50, - // "minLength": 0, - // "pattern": "[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]", // "type": "string" // } "home_region": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Web Services Region where the studio resource is located.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: SsoClientId // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "sso_client_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioEncryptionConfiguration // CloudFormation resource type schema: // // { // "additionalProperties": false, - // "description": "\u003cp\u003eConfiguration of the encryption method that is used for the studio.\u003c/p\u003e", // "properties": { // "KeyArn": { - // "description": "\u003cp\u003eThe ARN for a KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "minLength": 4, - // "pattern": "^arn:.*", // "type": "string" // }, // "KeyType": { - // "description": "\u003cp\u003eThe type of KMS key that is used to encrypt studio data.\u003c/p\u003e", - // "enum": [ - // "AWS_OWNED_KEY", - // "CUSTOMER_MANAGED_KEY" - // ], // "type": "string" // } // }, @@ -103,17 +81,14 @@ func studioDataSource(ctx context.Context) (datasource.DataSource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: KeyArn "key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The ARN for a KMS key that is used to encrypt studio data.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: KeyType "key_type": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The type of KMS key that is used to encrypt studio data.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Description: "Configuration of the encryption method that is used for the studio.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioId // CloudFormation resource type schema: @@ -128,33 +103,24 @@ func studioDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.\u003c/p\u003e", - // "maxLength": 64, - // "minLength": 3, - // "pattern": "^[a-z0-9]*$", // "type": "string" // } "studio_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: StudioUrl // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe address of the web page for the studio.\u003c/p\u003e", // "type": "string" // } "studio_url": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The address of the web page for the studio.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ // Property: Tags // CloudFormation resource type schema: // // { - // "additionalProperties": false, - // "description": "", // "patternProperties": { // "": { // "type": "string" @@ -165,19 +131,16 @@ func studioDataSource(ctx context.Context) (datasource.DataSource, error) { "tags": // Pattern: "" schema.MapAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: UserRoleArn // CloudFormation resource type schema: // // { - // "description": "\u003cp\u003eThe IAM role that Studio Users will assume when logging in to the Nimble Studio portal.\u003c/p\u003e", // "type": "string" // } "user_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.
", - Computed: true, + Computed: true, }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ diff --git a/internal/aws/rds/db_cluster_resource_gen.go b/internal/aws/rds/db_cluster_resource_gen.go index edfbc9c161..9d7d5de3dc 100644 --- a/internal/aws/rds/db_cluster_resource_gen.go +++ b/internal/aws/rds/db_cluster_resource_gen.go @@ -195,6 +195,23 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { int64planmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ClusterScalabilityType + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "cluster_scalability_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // ClusterScalabilityType is a write-only property. + }, /*END ATTRIBUTE*/ // Property: CopyTagsToSnapshot // CloudFormation resource type schema: // @@ -870,11 +887,11 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Optional: true, Computed: true, PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ @@ -1345,6 +1362,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { "availability_zones": "AvailabilityZones", "backtrack_window": "BacktrackWindow", "backup_retention_period": "BackupRetentionPeriod", + "cluster_scalability_type": "ClusterScalabilityType", "copy_tags_to_snapshot": "CopyTagsToSnapshot", "database_name": "DatabaseName", "db_cluster_arn": "DBClusterArn", @@ -1413,6 +1431,7 @@ func dBClusterResource(ctx context.Context) (resource.Resource, error) { }) opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/ClusterScalabilityType", "/properties/DBInstanceParameterGroupName", "/properties/MasterUserPassword", "/properties/RestoreToTime", diff --git a/internal/aws/rds/db_cluster_singular_data_source_gen.go b/internal/aws/rds/db_cluster_singular_data_source_gen.go index b6f6774bab..4691d59993 100644 --- a/internal/aws/rds/db_cluster_singular_data_source_gen.go +++ b/internal/aws/rds/db_cluster_singular_data_source_gen.go @@ -130,6 +130,17 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The number of days for which automated backups are retained.\n Default: 1\n Constraints:\n + Must be a value from 1 to 35\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ClusterScalabilityType + // CloudFormation resource type schema: + // + // { + // "description": "", + // "type": "string" + // } + "cluster_scalability_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: CopyTagsToSnapshot // CloudFormation resource type schema: // @@ -622,11 +633,11 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + // "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", // "type": "boolean" // } "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ - Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", + Description: "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", Computed: true, }, /*END ATTRIBUTE*/ // Property: ReadEndpoint @@ -959,6 +970,7 @@ func dBClusterDataSource(ctx context.Context) (datasource.DataSource, error) { "availability_zones": "AvailabilityZones", "backtrack_window": "BacktrackWindow", "backup_retention_period": "BackupRetentionPeriod", + "cluster_scalability_type": "ClusterScalabilityType", "copy_tags_to_snapshot": "CopyTagsToSnapshot", "database_name": "DatabaseName", "db_cluster_arn": "DBClusterArn", diff --git a/internal/aws/rds/db_shard_group_plural_data_source_gen.go b/internal/aws/rds/db_shard_group_plural_data_source_gen.go new file mode 100644 index 0000000000..2ee309c714 --- /dev/null +++ b/internal/aws/rds/db_shard_group_plural_data_source_gen.go @@ -0,0 +1,54 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_rds_db_shard_groups", dBShardGroupsDataSource) +} + +// dBShardGroupsDataSource returns the Terraform awscc_rds_db_shard_groups data source. +// This Terraform data source corresponds to the CloudFormation AWS::RDS::DBShardGroup resource. +func dBShardGroupsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ + "id": schema.StringAttribute{ + Description: "Uniquely identifies the data source.", + Computed: true, + }, + "ids": schema.SetAttribute{ + Description: "Set of Resource Identifiers.", + ElementType: types.StringType, + Computed: true, + }, + } + + schema := schema.Schema{ + Description: "Plural Data Source schema for AWS::RDS::DBShardGroup", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RDS::DBShardGroup").WithTerraformTypeName("awscc_rds_db_shard_groups") + opts = opts.WithTerraformSchema(schema) + + v, err := generic.NewPluralDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/rds/db_shard_group_plural_data_source_gen_test.go b/internal/aws/rds/db_shard_group_plural_data_source_gen_test.go new file mode 100644 index 0000000000..7832ba1f31 --- /dev/null +++ b/internal/aws/rds/db_shard_group_plural_data_source_gen_test.go @@ -0,0 +1,27 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/plural-data-source/main.go; DO NOT EDIT. + +package rds_test + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRDSDBShardGroupsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RDS::DBShardGroup", "awscc_rds_db_shard_groups", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(fmt.Sprintf("data.%s", td.ResourceName), "ids.#"), + ), + }, + }) +} diff --git a/internal/aws/rds/db_shard_group_resource_gen.go b/internal/aws/rds/db_shard_group_resource_gen.go new file mode 100644 index 0000000000..87167c0bf2 --- /dev/null +++ b/internal/aws/rds/db_shard_group_resource_gen.go @@ -0,0 +1,287 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework-validators/int64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/setvalidator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/int64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/setplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_rds_db_shard_group", dBShardGroupResource) +} + +// dBShardGroupResource returns the Terraform awscc_rds_db_shard_group resource. +// This Terraform resource corresponds to the CloudFormation AWS::RDS::DBShardGroup resource. +func dBShardGroupResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ComputeRedundancy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to create standby instances for the DB shard group.", + // "minimum": 0, + // "type": "integer" + // } + "compute_redundancy": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to create standby instances for the DB shard group.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.AtLeast(0), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DBClusterIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of the primary DB cluster for the DB shard group.", + // "maxLength": 63, + // "minLength": 1, + // "type": "string" + // } + "db_cluster_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the primary DB cluster for the DB shard group.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 63), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DBShardGroupIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of the DB shard group.", + // "maxLength": 63, + // "minLength": 1, + // "type": "string" + // } + "db_shard_group_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the DB shard group.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 63), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DBShardGroupResourceId + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Web Services Region-unique, immutable identifier for the DB shard group.", + // "type": "string" + // } + "db_shard_group_resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Web Services Region-unique, immutable identifier for the DB shard group.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Endpoint + // CloudFormation resource type schema: + // + // { + // "description": "The connection endpoint for the DB shard group.", + // "type": "string" + // } + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The connection endpoint for the DB shard group.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxACU + // CloudFormation resource type schema: + // + // { + // "description": "The maximum capacity of the DB shard group in Aurora capacity units (ACUs).", + // "type": "number" + // } + "max_acu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum capacity of the DB shard group in Aurora capacity units (ACUs).", + Required: true, + }, /*END ATTRIBUTE*/ + // Property: MinACU + // CloudFormation resource type schema: + // + // { + // "description": "The minimum capacity of the DB shard group in Aurora capacity units (ACUs).", + // "type": "number" + // } + "min_acu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum capacity of the DB shard group in Aurora capacity units (ACUs).", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // MinACU is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: PubliclyAccessible + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether the DB shard group is publicly accessible.", + // "type": "boolean" + // } + "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the DB shard group is publicly accessible.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + boolplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "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 -. ", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "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 -. ", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "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 -. ", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "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 -. ", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(0, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Optional: true, + Computed: true, + Validators: []validator.Set{ /*START VALIDATORS*/ + setvalidator.SizeAtMost(50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "The AWS::RDS::DBShardGroup resource creates an Amazon Aurora Limitless DB Shard Group.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RDS::DBShardGroup").WithTerraformTypeName("awscc_rds_db_shard_group") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "compute_redundancy": "ComputeRedundancy", + "db_cluster_identifier": "DBClusterIdentifier", + "db_shard_group_identifier": "DBShardGroupIdentifier", + "db_shard_group_resource_id": "DBShardGroupResourceId", + "endpoint": "Endpoint", + "key": "Key", + "max_acu": "MaxACU", + "min_acu": "MinACU", + "publicly_accessible": "PubliclyAccessible", + "tags": "Tags", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/MinACU", + }) + opts = opts.WithCreateTimeoutInMinutes(2160).WithDeleteTimeoutInMinutes(2160) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/rds/db_shard_group_resource_gen_test.go b/internal/aws/rds/db_shard_group_resource_gen_test.go new file mode 100644 index 0000000000..82adf8f5ed --- /dev/null +++ b/internal/aws/rds/db_shard_group_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package rds_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRDSDBShardGroup_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RDS::DBShardGroup", "awscc_rds_db_shard_group", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/rds/db_shard_group_singular_data_source_gen.go b/internal/aws/rds/db_shard_group_singular_data_source_gen.go new file mode 100644 index 0000000000..f63072307f --- /dev/null +++ b/internal/aws/rds/db_shard_group_singular_data_source_gen.go @@ -0,0 +1,205 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package rds + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_rds_db_shard_group", dBShardGroupDataSource) +} + +// dBShardGroupDataSource returns the Terraform awscc_rds_db_shard_group data source. +// This Terraform data source corresponds to the CloudFormation AWS::RDS::DBShardGroup resource. +func dBShardGroupDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ComputeRedundancy + // CloudFormation resource type schema: + // + // { + // "description": "Specifies whether to create standby instances for the DB shard group.", + // "minimum": 0, + // "type": "integer" + // } + "compute_redundancy": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies whether to create standby instances for the DB shard group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DBClusterIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of the primary DB cluster for the DB shard group.", + // "maxLength": 63, + // "minLength": 1, + // "type": "string" + // } + "db_cluster_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the primary DB cluster for the DB shard group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DBShardGroupIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The name of the DB shard group.", + // "maxLength": 63, + // "minLength": 1, + // "type": "string" + // } + "db_shard_group_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the DB shard group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DBShardGroupResourceId + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Web Services Region-unique, immutable identifier for the DB shard group.", + // "type": "string" + // } + "db_shard_group_resource_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Web Services Region-unique, immutable identifier for the DB shard group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Endpoint + // CloudFormation resource type schema: + // + // { + // "description": "The connection endpoint for the DB shard group.", + // "type": "string" + // } + "endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The connection endpoint for the DB shard group.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxACU + // CloudFormation resource type schema: + // + // { + // "description": "The maximum capacity of the DB shard group in Aurora capacity units (ACUs).", + // "type": "number" + // } + "max_acu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The maximum capacity of the DB shard group in Aurora capacity units (ACUs).", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MinACU + // CloudFormation resource type schema: + // + // { + // "description": "The minimum capacity of the DB shard group in Aurora capacity units (ACUs).", + // "type": "number" + // } + "min_acu": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "The minimum capacity of the DB shard group in Aurora capacity units (ACUs).", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: PubliclyAccessible + // CloudFormation resource type schema: + // + // { + // "description": "Indicates whether the DB shard group is publicly accessible.", + // "type": "boolean" + // } + "publicly_accessible": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "Indicates whether the DB shard group is publicly accessible.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "An array of key-value pairs to apply to this resource.", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "A key-value pair to associate with a resource.", + // "properties": { + // "Key": { + // "description": "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 -. ", + // "maxLength": 128, + // "minLength": 1, + // "type": "string" + // }, + // "Value": { + // "description": "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 -. ", + // "maxLength": 256, + // "minLength": 0, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "maxItems": 50, + // "type": "array", + // "uniqueItems": true + // } + "tags": schema.SetNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "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 -. ", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "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 -. ", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Description: "An array of key-value pairs to apply to this resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::RDS::DBShardGroup", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::RDS::DBShardGroup").WithTerraformTypeName("awscc_rds_db_shard_group") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "compute_redundancy": "ComputeRedundancy", + "db_cluster_identifier": "DBClusterIdentifier", + "db_shard_group_identifier": "DBShardGroupIdentifier", + "db_shard_group_resource_id": "DBShardGroupResourceId", + "endpoint": "Endpoint", + "key": "Key", + "max_acu": "MaxACU", + "min_acu": "MinACU", + "publicly_accessible": "PubliclyAccessible", + "tags": "Tags", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/rds/db_shard_group_singular_data_source_gen_test.go b/internal/aws/rds/db_shard_group_singular_data_source_gen_test.go new file mode 100644 index 0000000000..e253b04a13 --- /dev/null +++ b/internal/aws/rds/db_shard_group_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package rds_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSRDSDBShardGroupDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RDS::DBShardGroup", "awscc_rds_db_shard_group", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSRDSDBShardGroupDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::RDS::DBShardGroup", "awscc_rds_db_shard_group", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/ses/configuration_set_resource_gen.go b/internal/aws/ses/configuration_set_resource_gen.go index 9d3808c338..f30ab8afc8 100644 --- a/internal/aws/ses/configuration_set_resource_gen.go +++ b/internal/aws/ses/configuration_set_resource_gen.go @@ -9,11 +9,13 @@ import ( "context" "regexp" + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" "github.com/hashicorp/terraform-plugin-framework-validators/listvalidator" "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" "github.com/hashicorp/terraform-plugin-framework/resource" "github.com/hashicorp/terraform-plugin-framework/resource/schema" "github.com/hashicorp/terraform-plugin-framework/resource/schema/boolplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" @@ -40,6 +42,12 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.", // "properties": { + // "MaxDeliverySeconds": { + // "description": "Specifies the maximum time until which SES will retry sending emails", + // "maximum": 50400, + // "minimum": 300, + // "type": "number" + // }, // "SendingPoolName": { // "description": "The name of the dedicated IP pool to associate with the configuration set.", // "type": "string" @@ -54,6 +62,18 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { // } "delivery_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxDeliverySeconds + "max_delivery_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies the maximum time until which SES will retry sending emails", + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(300.000000, 50400.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SendingPoolName "sending_pool_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The name of the dedicated IP pool to associate with the configuration set.", @@ -374,6 +394,7 @@ func configurationSetResource(ctx context.Context) (resource.Resource, error) { "delivery_options": "DeliveryOptions", "engagement_metrics": "EngagementMetrics", "guardian_options": "GuardianOptions", + "max_delivery_seconds": "MaxDeliverySeconds", "name": "Name", "optimized_shared_delivery": "OptimizedSharedDelivery", "reputation_metrics_enabled": "ReputationMetricsEnabled", diff --git a/internal/aws/ses/configuration_set_singular_data_source_gen.go b/internal/aws/ses/configuration_set_singular_data_source_gen.go index a190c4d7e4..aac801185f 100644 --- a/internal/aws/ses/configuration_set_singular_data_source_gen.go +++ b/internal/aws/ses/configuration_set_singular_data_source_gen.go @@ -30,6 +30,12 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err // "additionalProperties": false, // "description": "An object that defines the dedicated IP pool that is used to send emails that you send using the configuration set.", // "properties": { + // "MaxDeliverySeconds": { + // "description": "Specifies the maximum time until which SES will retry sending emails", + // "maximum": 50400, + // "minimum": 300, + // "type": "number" + // }, // "SendingPoolName": { // "description": "The name of the dedicated IP pool to associate with the configuration set.", // "type": "string" @@ -44,6 +50,11 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err // } "delivery_options": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: MaxDeliverySeconds + "max_delivery_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Specifies the maximum time until which SES will retry sending emails", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SendingPoolName "sending_pool_name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The name of the dedicated IP pool to associate with the configuration set.", @@ -270,6 +281,7 @@ func configurationSetDataSource(ctx context.Context) (datasource.DataSource, err "delivery_options": "DeliveryOptions", "engagement_metrics": "EngagementMetrics", "guardian_options": "GuardianOptions", + "max_delivery_seconds": "MaxDeliverySeconds", "name": "Name", "optimized_shared_delivery": "OptimizedSharedDelivery", "reputation_metrics_enabled": "ReputationMetricsEnabled", diff --git a/internal/aws/wisdom/ai_agent_resource_gen.go b/internal/aws/wisdom/ai_agent_resource_gen.go new file mode 100644 index 0000000000..419ba5cda1 --- /dev/null +++ b/internal/aws/wisdom/ai_agent_resource_gen.go @@ -0,0 +1,1106 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/float64validator" + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/listplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/mapplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/objectplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" + fwvalidators "github.com/hashicorp/terraform-provider-awscc/internal/validators" +) + +func init() { + registry.AddResourceFactory("awscc_wisdom_ai_agent", aIAgentResource) +} + +// aIAgentResource returns the Terraform awscc_wisdom_ai_agent resource. +// This Terraform resource corresponds to the CloudFormation AWS::Wisdom::AIAgent resource. +func aIAgentResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIAgentArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "ai_agent_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIAgentId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_agent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Configuration + // CloudFormation resource type schema: + // + // { + // "properties": { + // "AnswerRecommendationAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "IntentLabelingGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "QueryReformulationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "ManualSearchAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerRecommendationAIAgentConfiguration + "answer_recommendation_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIPromptId + "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 100.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HYBRID", + "SEMANTIC", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KNOWLEDGE_BASE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: IntentLabelingGenerationAIPromptId + "intent_labeling_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: QueryReformulationAIPromptId + "query_reformulation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ManualSearchAIAgentConfiguration + "manual_search_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIPromptId + "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 128), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 256), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 100.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "HYBRID", + "SEMANTIC", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "KNOWLEDGE_BASE", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\s_.,-]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 255), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9\\s_.,-]+"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Map{ /*START PLAN MODIFIERS*/ + mapplanmodifier.UseStateForUnknown(), + mapplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "MANUAL_SEARCH", + // "ANSWER_RECOMMENDATION" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "MANUAL_SEARCH", + "ANSWER_RECOMMENDATION", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Wisdom::AIAgent Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgent").WithTerraformTypeName("awscc_wisdom_ai_agent") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "and_conditions": "AndConditions", + "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", + "answer_recommendation_ai_agent_configuration": "AnswerRecommendationAIAgentConfiguration", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "association_configuration_data": "AssociationConfigurationData", + "association_configurations": "AssociationConfigurations", + "association_id": "AssociationId", + "association_type": "AssociationType", + "configuration": "Configuration", + "content_tag_filter": "ContentTagFilter", + "description": "Description", + "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", + "key": "Key", + "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", + "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", + "max_results": "MaxResults", + "name": "Name", + "or_conditions": "OrConditions", + "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", + "query_reformulation_ai_prompt_id": "QueryReformulationAIPromptId", + "tag_condition": "TagCondition", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + opts = opts.WithUpdateTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_agent_resource_gen_test.go b/internal/aws/wisdom/ai_agent_resource_gen_test.go new file mode 100644 index 0000000000..bb23d7fdc4 --- /dev/null +++ b/internal/aws/wisdom/ai_agent_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIAgent_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgent", "awscc_wisdom_ai_agent", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_agent_singular_data_source_gen.go b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go new file mode 100644 index 0000000000..f2b419fd5e --- /dev/null +++ b/internal/aws/wisdom/ai_agent_singular_data_source_gen.go @@ -0,0 +1,746 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-plugin-framework/types" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_wisdom_ai_agent", aIAgentDataSource) +} + +// aIAgentDataSource returns the Terraform awscc_wisdom_ai_agent data source. +// This Terraform data source corresponds to the CloudFormation AWS::Wisdom::AIAgent resource. +func aIAgentDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIAgentArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "ai_agent_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIAgentId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_agent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Configuration + // CloudFormation resource type schema: + // + // { + // "properties": { + // "AnswerRecommendationAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "IntentLabelingGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "QueryReformulationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "ManualSearchAIAgentConfiguration": { + // "additionalProperties": false, + // "properties": { + // "AnswerGenerationAIPromptId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // }, + // "AssociationConfigurations": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "AssociationConfigurationData": { + // "properties": { + // "KnowledgeBaseAssociationConfigurationData": { + // "additionalProperties": false, + // "properties": { + // "ContentTagFilter": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "OrConditions": { + // "items": { + // "properties": { + // "AndConditions": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // }, + // "TagCondition": { + // "additionalProperties": false, + // "properties": { + // "Key": { + // "maxLength": 128, + // "minLength": 1, + // "pattern": "", + // "type": "string" + // }, + // "Value": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "required": [ + // "Key" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "MaxResults": { + // "maximum": 100, + // "minimum": 1, + // "type": "number" + // }, + // "OverrideKnowledgeBaseSearchType": { + // "enum": [ + // "HYBRID", + // "SEMANTIC" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // }, + // "AssociationId": { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // }, + // "AssociationType": { + // "enum": [ + // "KNOWLEDGE_BASE" + // ], + // "type": "string" + // } + // }, + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "type": "object" + // } + "configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerRecommendationAIAgentConfiguration + "answer_recommendation_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIPromptId + "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: IntentLabelingGenerationAIPromptId + "intent_labeling_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: QueryReformulationAIPromptId + "query_reformulation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ManualSearchAIAgentConfiguration + "manual_search_ai_agent_configuration": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AnswerGenerationAIPromptId + "answer_generation_ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationConfigurations + "association_configurations": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AssociationConfigurationData + "association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: KnowledgeBaseAssociationConfigurationData + "knowledge_base_association_configuration_data": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ContentTagFilter + "content_tag_filter": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OrConditions + "or_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AndConditions + "and_conditions": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TagCondition + "tag_condition": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: MaxResults + "max_results": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OverrideKnowledgeBaseSearchType + "override_knowledge_base_search_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationId + "association_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssociationType + "association_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "maxLength": 255, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9\\s_.,-]+", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "patternProperties": { + // "": { + // "maxLength": 256, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "tags": // Pattern: "" + schema.MapAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "MANUAL_SEARCH", + // "ANSWER_RECOMMENDATION" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Wisdom::AIAgent", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgent").WithTerraformTypeName("awscc_wisdom_ai_agent") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "and_conditions": "AndConditions", + "answer_generation_ai_prompt_id": "AnswerGenerationAIPromptId", + "answer_recommendation_ai_agent_configuration": "AnswerRecommendationAIAgentConfiguration", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "association_configuration_data": "AssociationConfigurationData", + "association_configurations": "AssociationConfigurations", + "association_id": "AssociationId", + "association_type": "AssociationType", + "configuration": "Configuration", + "content_tag_filter": "ContentTagFilter", + "description": "Description", + "intent_labeling_generation_ai_prompt_id": "IntentLabelingGenerationAIPromptId", + "key": "Key", + "knowledge_base_association_configuration_data": "KnowledgeBaseAssociationConfigurationData", + "manual_search_ai_agent_configuration": "ManualSearchAIAgentConfiguration", + "max_results": "MaxResults", + "name": "Name", + "or_conditions": "OrConditions", + "override_knowledge_base_search_type": "OverrideKnowledgeBaseSearchType", + "query_reformulation_ai_prompt_id": "QueryReformulationAIPromptId", + "tag_condition": "TagCondition", + "tags": "Tags", + "type": "Type", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_agent_singular_data_source_gen_test.go b/internal/aws/wisdom/ai_agent_singular_data_source_gen_test.go new file mode 100644 index 0000000000..236b8fb55e --- /dev/null +++ b/internal/aws/wisdom/ai_agent_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIAgentDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgent", "awscc_wisdom_ai_agent", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSWisdomAIAgentDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgent", "awscc_wisdom_ai_agent", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_agent_version_resource_gen.go b/internal/aws/wisdom/ai_agent_version_resource_gen.go new file mode 100644 index 0000000000..b53a0d443c --- /dev/null +++ b/internal/aws/wisdom/ai_agent_version_resource_gen.go @@ -0,0 +1,170 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_wisdom_ai_agent_version", aIAgentVersionResource) +} + +// aIAgentVersionResource returns the Terraform awscc_wisdom_ai_agent_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Wisdom::AIAgentVersion resource. +func aIAgentVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIAgentArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_agent_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIAgentId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_agent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIAgentVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_agent_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + float64planmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Wisdom::AIAgentVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgentVersion").WithTerraformTypeName("awscc_wisdom_ai_agent_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "ai_agent_version_id": "AIAgentVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_agent_version_resource_gen_test.go b/internal/aws/wisdom/ai_agent_version_resource_gen_test.go new file mode 100644 index 0000000000..a98376732c --- /dev/null +++ b/internal/aws/wisdom/ai_agent_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIAgentVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgentVersion", "awscc_wisdom_ai_agent_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_agent_version_singular_data_source_gen.go b/internal/aws/wisdom/ai_agent_version_singular_data_source_gen.go new file mode 100644 index 0000000000..ba070d83f0 --- /dev/null +++ b/internal/aws/wisdom/ai_agent_version_singular_data_source_gen.go @@ -0,0 +1,126 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_wisdom_ai_agent_version", aIAgentVersionDataSource) +} + +// aIAgentVersionDataSource returns the Terraform awscc_wisdom_ai_agent_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Wisdom::AIAgentVersion resource. +func aIAgentVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIAgentArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_agent_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIAgentId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_agent_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIAgentVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_agent_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Wisdom::AIAgentVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIAgentVersion").WithTerraformTypeName("awscc_wisdom_ai_agent_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_agent_arn": "AIAgentArn", + "ai_agent_id": "AIAgentId", + "ai_agent_version_id": "AIAgentVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_agent_version_singular_data_source_gen_test.go b/internal/aws/wisdom/ai_agent_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..2d5c6fd6d8 --- /dev/null +++ b/internal/aws/wisdom/ai_agent_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIAgentVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgentVersion", "awscc_wisdom_ai_agent_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSWisdomAIAgentVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIAgentVersion", "awscc_wisdom_ai_agent_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_prompt_version_resource_gen.go b/internal/aws/wisdom/ai_prompt_version_resource_gen.go new file mode 100644 index 0000000000..f4680385a3 --- /dev/null +++ b/internal/aws/wisdom/ai_prompt_version_resource_gen.go @@ -0,0 +1,170 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + "regexp" + + "github.com/hashicorp/terraform-plugin-framework-validators/stringvalidator" + "github.com/hashicorp/terraform-plugin-framework/resource" + "github.com/hashicorp/terraform-plugin-framework/resource/schema" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/float64planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier" + "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier" + "github.com/hashicorp/terraform-plugin-framework/schema/validator" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddResourceFactory("awscc_wisdom_ai_prompt_version", aIPromptVersionResource) +} + +// aIPromptVersionResource returns the Terraform awscc_wisdom_ai_prompt_version resource. +// This Terraform resource corresponds to the CloudFormation AWS::Wisdom::AIPromptVersion resource. +func aIPromptVersionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIPromptArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIPromptId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AIPromptVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_prompt_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + float64planmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + // Corresponds to CloudFormation primaryIdentifier. + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ + stringplanmodifier.UseStateForUnknown(), + }, + } + + schema := schema.Schema{ + Description: "Definition of AWS::Wisdom::AIPromptVersion Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIPromptVersion").WithTerraformTypeName("awscc_wisdom_ai_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_prompt_arn": "AIPromptArn", + "ai_prompt_id": "AIPromptId", + "ai_prompt_version_id": "AIPromptVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + opts = opts.IsImmutableType(true) + + opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + + v, err := generic.NewResource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_prompt_version_resource_gen_test.go b/internal/aws/wisdom/ai_prompt_version_resource_gen_test.go new file mode 100644 index 0000000000..551f721d17 --- /dev/null +++ b/internal/aws/wisdom/ai_prompt_version_resource_gen_test.go @@ -0,0 +1,25 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIPromptVersion_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIPromptVersion", "awscc_wisdom_ai_prompt_version", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen.go b/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen.go new file mode 100644 index 0000000000..b8f4ab34ff --- /dev/null +++ b/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen.go @@ -0,0 +1,126 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom + +import ( + "context" + + "github.com/hashicorp/terraform-plugin-framework/datasource" + "github.com/hashicorp/terraform-plugin-framework/datasource/schema" + "github.com/hashicorp/terraform-provider-awscc/internal/generic" + "github.com/hashicorp/terraform-provider-awscc/internal/registry" +) + +func init() { + registry.AddDataSourceFactory("awscc_wisdom_ai_prompt_version", aIPromptVersionDataSource) +} + +// aIPromptVersionDataSource returns the Terraform awscc_wisdom_ai_prompt_version data source. +// This Terraform data source corresponds to the CloudFormation AWS::Wisdom::AIPromptVersion resource. +func aIPromptVersionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AIPromptArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "ai_prompt_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIPromptId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "ai_prompt_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AIPromptVersionId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$", + // "type": "string" + // } + "ai_prompt_version_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantArn + // CloudFormation resource type schema: + // + // { + // "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$", + // "type": "string" + // } + "assistant_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AssistantId + // CloudFormation resource type schema: + // + // { + // "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$", + // "type": "string" + // } + "assistant_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ModifiedTimeSeconds + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "modified_time_seconds": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: VersionNumber + // CloudFormation resource type schema: + // + // { + // "type": "number" + // } + "version_number": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + } /*END SCHEMA*/ + + attributes["id"] = schema.StringAttribute{ + Description: "Uniquely identifies the resource.", + Required: true, + } + + schema := schema.Schema{ + Description: "Data Source schema for AWS::Wisdom::AIPromptVersion", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Wisdom::AIPromptVersion").WithTerraformTypeName("awscc_wisdom_ai_prompt_version") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "ai_prompt_arn": "AIPromptArn", + "ai_prompt_id": "AIPromptId", + "ai_prompt_version_id": "AIPromptVersionId", + "assistant_arn": "AssistantArn", + "assistant_id": "AssistantId", + "modified_time_seconds": "ModifiedTimeSeconds", + "version_number": "VersionNumber", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen_test.go b/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen_test.go new file mode 100644 index 0000000000..cb5bda6720 --- /dev/null +++ b/internal/aws/wisdom/ai_prompt_version_singular_data_source_gen_test.go @@ -0,0 +1,36 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package wisdom_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSWisdomAIPromptVersionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIPromptVersion", "awscc_wisdom_ai_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSWisdomAIPromptVersionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Wisdom::AIPromptVersion", "awscc_wisdom_ai_prompt_version", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 8fc42928c8..6546ab5078 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -379,6 +379,11 @@ resource_schema "aws_appsync_api" { cloudformation_type_name = "AWS::AppSync::Api" } +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + resource_schema "aws_appsync_data_source" { cloudformation_type_name = "AWS::AppSync::DataSource" suppress_plural_data_source_generation = true @@ -566,6 +571,10 @@ resource_schema "aws_bedrock_agent_alias" { suppress_plural_data_source_generation = true } +resource_schema "aws_bedrock_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + resource_schema "aws_bedrock_data_source" { cloudformation_type_name = "AWS::Bedrock::DataSource" suppress_plural_data_source_generation = true @@ -1172,7 +1181,7 @@ resource_schema "aws_controltower_landing_zone" { cloudformation_type_name = "AWS::ControlTower::LandingZone" # Suppression update: issue fixed on the latest schema. - + # Historical suppression Reason: Manifest is of unsupported type: . # https://github.com/hashicorp/terraform-provider-awscc/issues/1519 suppress_resource_generation = false @@ -1644,6 +1653,10 @@ resource_schema "aws_ec2_security_group_ingress" { cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" } +resource_schema "aws_ec2_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + resource_schema "aws_ec2_snapshot_block_public_access" { cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" } @@ -3762,6 +3775,10 @@ resource_schema "aws_rds_db_proxy_target_group" { cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" } +resource_schema "aws_rds_db_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + resource_schema "aws_rds_db_subnet_group" { cloudformation_type_name = "AWS::RDS::DBSubnetGroup" } @@ -4636,6 +4653,17 @@ resource_schema "aws_transfer_server" { cloudformation_type_name = "AWS::Transfer::Server" } +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true + + # Suppression Reason: + # PosixProfile/SecondaryGids is of unsupported type for list item validation: number + # Ref: https://github.com/hashicorp/terraform-provider-awscc/issues/2095 + suppress_resource_generation = true + suppress_singular_data_source_generation = true +} + resource_schema "aws_transfer_workflow" { cloudformation_type_name = "AWS::Transfer::Workflow" } @@ -4747,11 +4775,26 @@ resource_schema "aws_wafv2_web_acl_association" { suppress_plural_data_source_generation = true } +resource_schema "aws_wisdom_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_wisdom_ai_prompt" { cloudformation_type_name = "AWS::Wisdom::AIPrompt" suppress_plural_data_source_generation = true } +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + suppress_plural_data_source_generation = true +} + resource_schema "aws_wisdom_assistant" { cloudformation_type_name = "AWS::Wisdom::Assistant" } diff --git a/internal/provider/generators/allschemas/available_schemas.2024-11-08.hcl b/internal/provider/generators/allschemas/available_schemas.2024-11-08.hcl new file mode 100644 index 0000000000..6e5ac0fb68 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-11-08.hcl @@ -0,0 +1,4589 @@ +# 1081 CloudFormation resource types schemas are available for use with the Cloud Control API. + +resource_schema "aws_acmpca_certificate" { + cloudformation_type_name = "AWS::ACMPCA::Certificate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_certificate_authority" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthority" +} + +resource_schema "aws_acmpca_certificate_authority_activation" { + cloudformation_type_name = "AWS::ACMPCA::CertificateAuthorityActivation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_acmpca_permission" { + cloudformation_type_name = "AWS::ACMPCA::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_rule_groups_namespace" { + cloudformation_type_name = "AWS::APS::RuleGroupsNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_aps_scraper" { + cloudformation_type_name = "AWS::APS::Scraper" +} + +resource_schema "aws_aps_workspace" { + cloudformation_type_name = "AWS::APS::Workspace" +} + +resource_schema "aws_arczonalshift_autoshift_observer_notification_status" { + cloudformation_type_name = "AWS::ARCZonalShift::AutoshiftObserverNotificationStatus" +} + +resource_schema "aws_arczonalshift_zonal_autoshift_configuration" { + cloudformation_type_name = "AWS::ARCZonalShift::ZonalAutoshiftConfiguration" +} + +resource_schema "aws_accessanalyzer_analyzer" { + cloudformation_type_name = "AWS::AccessAnalyzer::Analyzer" +} + +resource_schema "aws_amazonmq_configuration" { + cloudformation_type_name = "AWS::AmazonMQ::Configuration" +} + +resource_schema "aws_amplify_app" { + cloudformation_type_name = "AWS::Amplify::App" +} + +resource_schema "aws_amplify_branch" { + cloudformation_type_name = "AWS::Amplify::Branch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplify_domain" { + cloudformation_type_name = "AWS::Amplify::Domain" +} + +resource_schema "aws_amplifyuibuilder_component" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_form" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Form" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_amplifyuibuilder_theme" { + cloudformation_type_name = "AWS::AmplifyUIBuilder::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_account" { + cloudformation_type_name = "AWS::ApiGateway::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_api_key" { + cloudformation_type_name = "AWS::ApiGateway::ApiKey" +} + +resource_schema "aws_apigateway_authorizer" { + cloudformation_type_name = "AWS::ApiGateway::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_base_path_mapping" { + cloudformation_type_name = "AWS::ApiGateway::BasePathMapping" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_client_certificate" { + cloudformation_type_name = "AWS::ApiGateway::ClientCertificate" +} + +resource_schema "aws_apigateway_deployment" { + cloudformation_type_name = "AWS::ApiGateway::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_part" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationPart" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_documentation_version" { + cloudformation_type_name = "AWS::ApiGateway::DocumentationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_domain_name" { + cloudformation_type_name = "AWS::ApiGateway::DomainName" +} + +resource_schema "aws_apigateway_gateway_response" { + cloudformation_type_name = "AWS::ApiGateway::GatewayResponse" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_method" { + cloudformation_type_name = "AWS::ApiGateway::Method" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_model" { + cloudformation_type_name = "AWS::ApiGateway::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_request_validator" { + cloudformation_type_name = "AWS::ApiGateway::RequestValidator" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_resource" { + cloudformation_type_name = "AWS::ApiGateway::Resource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_rest_api" { + cloudformation_type_name = "AWS::ApiGateway::RestApi" +} + +resource_schema "aws_apigateway_stage" { + cloudformation_type_name = "AWS::ApiGateway::Stage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_usage_plan" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlan" +} + +resource_schema "aws_apigateway_usage_plan_key" { + cloudformation_type_name = "AWS::ApiGateway::UsagePlanKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigateway_vpc_link" { + cloudformation_type_name = "AWS::ApiGateway::VpcLink" +} + +resource_schema "aws_apigatewayv2_api" { + cloudformation_type_name = "AWS::ApiGatewayV2::Api" +} + +resource_schema "aws_apigatewayv2_api_mapping" { + cloudformation_type_name = "AWS::ApiGatewayV2::ApiMapping" +} + +resource_schema "aws_apigatewayv2_authorizer" { + cloudformation_type_name = "AWS::ApiGatewayV2::Authorizer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_deployment" { + cloudformation_type_name = "AWS::ApiGatewayV2::Deployment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_domain_name" { + cloudformation_type_name = "AWS::ApiGatewayV2::DomainName" +} + +resource_schema "aws_apigatewayv2_integration" { + cloudformation_type_name = "AWS::ApiGatewayV2::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_integration_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::IntegrationResponse" +} + +resource_schema "aws_apigatewayv2_model" { + cloudformation_type_name = "AWS::ApiGatewayV2::Model" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route" { + cloudformation_type_name = "AWS::ApiGatewayV2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apigatewayv2_route_response" { + cloudformation_type_name = "AWS::ApiGatewayV2::RouteResponse" +} + +resource_schema "aws_apigatewayv2_vpc_link" { + cloudformation_type_name = "AWS::ApiGatewayV2::VpcLink" +} + +resource_schema "aws_appconfig_application" { + cloudformation_type_name = "AWS::AppConfig::Application" +} + +resource_schema "aws_appconfig_configuration_profile" { + cloudformation_type_name = "AWS::AppConfig::ConfigurationProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_deployment_strategy" { + cloudformation_type_name = "AWS::AppConfig::DeploymentStrategy" +} + +resource_schema "aws_appconfig_environment" { + cloudformation_type_name = "AWS::AppConfig::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appconfig_extension" { + cloudformation_type_name = "AWS::AppConfig::Extension" +} + +resource_schema "aws_appconfig_extension_association" { + cloudformation_type_name = "AWS::AppConfig::ExtensionAssociation" +} + +resource_schema "aws_appconfig_hosted_configuration_version" { + cloudformation_type_name = "AWS::AppConfig::HostedConfigurationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appflow_connector" { + cloudformation_type_name = "AWS::AppFlow::Connector" +} + +resource_schema "aws_appflow_connector_profile" { + cloudformation_type_name = "AWS::AppFlow::ConnectorProfile" +} + +resource_schema "aws_appflow_flow" { + cloudformation_type_name = "AWS::AppFlow::Flow" +} + +resource_schema "aws_appintegrations_application" { + cloudformation_type_name = "AWS::AppIntegrations::Application" +} + +resource_schema "aws_appintegrations_data_integration" { + cloudformation_type_name = "AWS::AppIntegrations::DataIntegration" +} + +resource_schema "aws_appintegrations_event_integration" { + cloudformation_type_name = "AWS::AppIntegrations::EventIntegration" +} + +resource_schema "aws_apprunner_auto_scaling_configuration" { + cloudformation_type_name = "AWS::AppRunner::AutoScalingConfiguration" +} + +resource_schema "aws_apprunner_observability_configuration" { + cloudformation_type_name = "AWS::AppRunner::ObservabilityConfiguration" +} + +resource_schema "aws_apprunner_service" { + cloudformation_type_name = "AWS::AppRunner::Service" +} + +resource_schema "aws_apprunner_vpc_connector" { + cloudformation_type_name = "AWS::AppRunner::VpcConnector" +} + +resource_schema "aws_apprunner_vpc_ingress_connection" { + cloudformation_type_name = "AWS::AppRunner::VpcIngressConnection" +} + +resource_schema "aws_appstream_app_block" { + cloudformation_type_name = "AWS::AppStream::AppBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_app_block_builder" { + cloudformation_type_name = "AWS::AppStream::AppBlockBuilder" +} + +resource_schema "aws_appstream_application" { + cloudformation_type_name = "AWS::AppStream::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_entitlement_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationEntitlementAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_application_fleet_association" { + cloudformation_type_name = "AWS::AppStream::ApplicationFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_directory_config" { + cloudformation_type_name = "AWS::AppStream::DirectoryConfig" +} + +resource_schema "aws_appstream_entitlement" { + cloudformation_type_name = "AWS::AppStream::Entitlement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appstream_image_builder" { + cloudformation_type_name = "AWS::AppStream::ImageBuilder" +} + +resource_schema "aws_appsync_api" { + cloudformation_type_name = "AWS::AppSync::Api" +} + +resource_schema "aws_appsync_channel_namespace" { + cloudformation_type_name = "AWS::AppSync::ChannelNamespace" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_data_source" { + cloudformation_type_name = "AWS::AppSync::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_domain_name" { + cloudformation_type_name = "AWS::AppSync::DomainName" +} + +resource_schema "aws_appsync_domain_name_api_association" { + cloudformation_type_name = "AWS::AppSync::DomainNameApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_function_configuration" { + cloudformation_type_name = "AWS::AppSync::FunctionConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_graph_ql_api" { + cloudformation_type_name = "AWS::AppSync::GraphQLApi" +} + +resource_schema "aws_appsync_resolver" { + cloudformation_type_name = "AWS::AppSync::Resolver" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_appsync_source_api_association" { + cloudformation_type_name = "AWS::AppSync::SourceApiAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_apptest_test_case" { + cloudformation_type_name = "AWS::AppTest::TestCase" +} + +resource_schema "aws_applicationautoscaling_scalable_target" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalableTarget" +} + +resource_schema "aws_applicationautoscaling_scaling_policy" { + cloudformation_type_name = "AWS::ApplicationAutoScaling::ScalingPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_applicationinsights_application" { + cloudformation_type_name = "AWS::ApplicationInsights::Application" +} + +resource_schema "aws_applicationsignals_service_level_objective" { + cloudformation_type_name = "AWS::ApplicationSignals::ServiceLevelObjective" +} + +resource_schema "aws_athena_capacity_reservation" { + cloudformation_type_name = "AWS::Athena::CapacityReservation" +} + +resource_schema "aws_athena_data_catalog" { + cloudformation_type_name = "AWS::Athena::DataCatalog" +} + +resource_schema "aws_athena_named_query" { + cloudformation_type_name = "AWS::Athena::NamedQuery" +} + +resource_schema "aws_athena_prepared_statement" { + cloudformation_type_name = "AWS::Athena::PreparedStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_athena_work_group" { + cloudformation_type_name = "AWS::Athena::WorkGroup" +} + +resource_schema "aws_auditmanager_assessment" { + cloudformation_type_name = "AWS::AuditManager::Assessment" +} + +resource_schema "aws_autoscaling_auto_scaling_group" { + cloudformation_type_name = "AWS::AutoScaling::AutoScalingGroup" +} + +resource_schema "aws_autoscaling_launch_configuration" { + cloudformation_type_name = "AWS::AutoScaling::LaunchConfiguration" +} + +resource_schema "aws_autoscaling_lifecycle_hook" { + cloudformation_type_name = "AWS::AutoScaling::LifecycleHook" +} + +resource_schema "aws_autoscaling_scaling_policy" { + cloudformation_type_name = "AWS::AutoScaling::ScalingPolicy" +} + +resource_schema "aws_autoscaling_scheduled_action" { + cloudformation_type_name = "AWS::AutoScaling::ScheduledAction" +} + +resource_schema "aws_autoscaling_warm_pool" { + cloudformation_type_name = "AWS::AutoScaling::WarmPool" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_b2bi_capability" { + cloudformation_type_name = "AWS::B2BI::Capability" +} + +resource_schema "aws_b2bi_partnership" { + cloudformation_type_name = "AWS::B2BI::Partnership" +} + +resource_schema "aws_b2bi_profile" { + cloudformation_type_name = "AWS::B2BI::Profile" +} + +resource_schema "aws_b2bi_transformer" { + cloudformation_type_name = "AWS::B2BI::Transformer" +} + +resource_schema "aws_bcmdataexports_export" { + cloudformation_type_name = "AWS::BCMDataExports::Export" +} + +resource_schema "aws_backup_backup_plan" { + cloudformation_type_name = "AWS::Backup::BackupPlan" +} + +resource_schema "aws_backup_backup_selection" { + cloudformation_type_name = "AWS::Backup::BackupSelection" +} + +resource_schema "aws_backup_backup_vault" { + cloudformation_type_name = "AWS::Backup::BackupVault" +} + +resource_schema "aws_backup_framework" { + cloudformation_type_name = "AWS::Backup::Framework" +} + +resource_schema "aws_backup_logically_air_gapped_backup_vault" { + cloudformation_type_name = "AWS::Backup::LogicallyAirGappedBackupVault" +} + +resource_schema "aws_backup_report_plan" { + cloudformation_type_name = "AWS::Backup::ReportPlan" +} + +resource_schema "aws_backup_restore_testing_plan" { + cloudformation_type_name = "AWS::Backup::RestoreTestingPlan" +} + +resource_schema "aws_backup_restore_testing_selection" { + cloudformation_type_name = "AWS::Backup::RestoreTestingSelection" +} + +resource_schema "aws_backupgateway_hypervisor" { + cloudformation_type_name = "AWS::BackupGateway::Hypervisor" +} + +resource_schema "aws_batch_compute_environment" { + cloudformation_type_name = "AWS::Batch::ComputeEnvironment" +} + +resource_schema "aws_batch_job_queue" { + cloudformation_type_name = "AWS::Batch::JobQueue" +} + +resource_schema "aws_batch_scheduling_policy" { + cloudformation_type_name = "AWS::Batch::SchedulingPolicy" +} + +resource_schema "aws_bedrock_agent" { + cloudformation_type_name = "AWS::Bedrock::Agent" +} + +resource_schema "aws_bedrock_agent_alias" { + cloudformation_type_name = "AWS::Bedrock::AgentAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_application_inference_profile" { + cloudformation_type_name = "AWS::Bedrock::ApplicationInferenceProfile" +} + +resource_schema "aws_bedrock_data_source" { + cloudformation_type_name = "AWS::Bedrock::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow" { + cloudformation_type_name = "AWS::Bedrock::Flow" +} + +resource_schema "aws_bedrock_flow_alias" { + cloudformation_type_name = "AWS::Bedrock::FlowAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_flow_version" { + cloudformation_type_name = "AWS::Bedrock::FlowVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_guardrail" { + cloudformation_type_name = "AWS::Bedrock::Guardrail" +} + +resource_schema "aws_bedrock_guardrail_version" { + cloudformation_type_name = "AWS::Bedrock::GuardrailVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_bedrock_knowledge_base" { + cloudformation_type_name = "AWS::Bedrock::KnowledgeBase" +} + +resource_schema "aws_bedrock_prompt" { + cloudformation_type_name = "AWS::Bedrock::Prompt" +} + +resource_schema "aws_bedrock_prompt_version" { + cloudformation_type_name = "AWS::Bedrock::PromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_billingconductor_billing_group" { + cloudformation_type_name = "AWS::BillingConductor::BillingGroup" +} + +resource_schema "aws_billingconductor_custom_line_item" { + cloudformation_type_name = "AWS::BillingConductor::CustomLineItem" +} + +resource_schema "aws_billingconductor_pricing_plan" { + cloudformation_type_name = "AWS::BillingConductor::PricingPlan" +} + +resource_schema "aws_billingconductor_pricing_rule" { + cloudformation_type_name = "AWS::BillingConductor::PricingRule" +} + +resource_schema "aws_budgets_budgets_action" { + cloudformation_type_name = "AWS::Budgets::BudgetsAction" +} + +resource_schema "aws_ce_anomaly_monitor" { + cloudformation_type_name = "AWS::CE::AnomalyMonitor" +} + +resource_schema "aws_ce_anomaly_subscription" { + cloudformation_type_name = "AWS::CE::AnomalySubscription" +} + +resource_schema "aws_ce_cost_category" { + cloudformation_type_name = "AWS::CE::CostCategory" +} + +resource_schema "aws_cur_report_definition" { + cloudformation_type_name = "AWS::CUR::ReportDefinition" +} + +resource_schema "aws_cassandra_keyspace" { + cloudformation_type_name = "AWS::Cassandra::Keyspace" +} + +resource_schema "aws_cassandra_table" { + cloudformation_type_name = "AWS::Cassandra::Table" +} + +resource_schema "aws_certificatemanager_account" { + cloudformation_type_name = "AWS::CertificateManager::Account" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_chatbot_microsoft_teams_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::MicrosoftTeamsChannelConfiguration" +} + +resource_schema "aws_chatbot_slack_channel_configuration" { + cloudformation_type_name = "AWS::Chatbot::SlackChannelConfiguration" +} + +resource_schema "aws_cleanrooms_analysis_template" { + cloudformation_type_name = "AWS::CleanRooms::AnalysisTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_collaboration" { + cloudformation_type_name = "AWS::CleanRooms::Collaboration" +} + +resource_schema "aws_cleanrooms_configured_table" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTable" +} + +resource_schema "aws_cleanrooms_configured_table_association" { + cloudformation_type_name = "AWS::CleanRooms::ConfiguredTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_mapping_table" { + cloudformation_type_name = "AWS::CleanRooms::IdMappingTable" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_id_namespace_association" { + cloudformation_type_name = "AWS::CleanRooms::IdNamespaceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanrooms_membership" { + cloudformation_type_name = "AWS::CleanRooms::Membership" +} + +resource_schema "aws_cleanrooms_privacy_budget_template" { + cloudformation_type_name = "AWS::CleanRooms::PrivacyBudgetTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cleanroomsml_training_dataset" { + cloudformation_type_name = "AWS::CleanRoomsML::TrainingDataset" +} + +resource_schema "aws_cloudformation_hook_default_version" { + cloudformation_type_name = "AWS::CloudFormation::HookDefaultVersion" +} + +resource_schema "aws_cloudformation_hook_type_config" { + cloudformation_type_name = "AWS::CloudFormation::HookTypeConfig" +} + +resource_schema "aws_cloudformation_hook_version" { + cloudformation_type_name = "AWS::CloudFormation::HookVersion" +} + +resource_schema "aws_cloudformation_module_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleDefaultVersion" +} + +resource_schema "aws_cloudformation_module_version" { + cloudformation_type_name = "AWS::CloudFormation::ModuleVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudformation_public_type_version" { + cloudformation_type_name = "AWS::CloudFormation::PublicTypeVersion" +} + +resource_schema "aws_cloudformation_publisher" { + cloudformation_type_name = "AWS::CloudFormation::Publisher" +} + +resource_schema "aws_cloudformation_resource_default_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceDefaultVersion" +} + +resource_schema "aws_cloudformation_resource_version" { + cloudformation_type_name = "AWS::CloudFormation::ResourceVersion" +} + +resource_schema "aws_cloudformation_stack" { + cloudformation_type_name = "AWS::CloudFormation::Stack" +} + +resource_schema "aws_cloudformation_stack_set" { + cloudformation_type_name = "AWS::CloudFormation::StackSet" +} + +resource_schema "aws_cloudformation_type_activation" { + cloudformation_type_name = "AWS::CloudFormation::TypeActivation" +} + +resource_schema "aws_cloudfront_cache_policy" { + cloudformation_type_name = "AWS::CloudFront::CachePolicy" +} + +resource_schema "aws_cloudfront_cloudfront_origin_access_identity" { + cloudformation_type_name = "AWS::CloudFront::CloudFrontOriginAccessIdentity" +} + +resource_schema "aws_cloudfront_continuous_deployment_policy" { + cloudformation_type_name = "AWS::CloudFront::ContinuousDeploymentPolicy" +} + +resource_schema "aws_cloudfront_distribution" { + cloudformation_type_name = "AWS::CloudFront::Distribution" +} + +resource_schema "aws_cloudfront_function" { + cloudformation_type_name = "AWS::CloudFront::Function" +} + +resource_schema "aws_cloudfront_key_group" { + cloudformation_type_name = "AWS::CloudFront::KeyGroup" +} + +resource_schema "aws_cloudfront_key_value_store" { + cloudformation_type_name = "AWS::CloudFront::KeyValueStore" +} + +resource_schema "aws_cloudfront_monitoring_subscription" { + cloudformation_type_name = "AWS::CloudFront::MonitoringSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudfront_origin_access_control" { + cloudformation_type_name = "AWS::CloudFront::OriginAccessControl" +} + +resource_schema "aws_cloudfront_origin_request_policy" { + cloudformation_type_name = "AWS::CloudFront::OriginRequestPolicy" +} + +resource_schema "aws_cloudfront_public_key" { + cloudformation_type_name = "AWS::CloudFront::PublicKey" +} + +resource_schema "aws_cloudfront_realtime_log_config" { + cloudformation_type_name = "AWS::CloudFront::RealtimeLogConfig" +} + +resource_schema "aws_cloudfront_response_headers_policy" { + cloudformation_type_name = "AWS::CloudFront::ResponseHeadersPolicy" +} + +resource_schema "aws_cloudtrail_channel" { + cloudformation_type_name = "AWS::CloudTrail::Channel" +} + +resource_schema "aws_cloudtrail_event_data_store" { + cloudformation_type_name = "AWS::CloudTrail::EventDataStore" +} + +resource_schema "aws_cloudtrail_resource_policy" { + cloudformation_type_name = "AWS::CloudTrail::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cloudtrail_trail" { + cloudformation_type_name = "AWS::CloudTrail::Trail" +} + +resource_schema "aws_cloudwatch_alarm" { + cloudformation_type_name = "AWS::CloudWatch::Alarm" +} + +resource_schema "aws_cloudwatch_composite_alarm" { + cloudformation_type_name = "AWS::CloudWatch::CompositeAlarm" +} + +resource_schema "aws_cloudwatch_dashboard" { + cloudformation_type_name = "AWS::CloudWatch::Dashboard" +} + +resource_schema "aws_cloudwatch_metric_stream" { + cloudformation_type_name = "AWS::CloudWatch::MetricStream" +} + +resource_schema "aws_codeartifact_domain" { + cloudformation_type_name = "AWS::CodeArtifact::Domain" +} + +resource_schema "aws_codeartifact_package_group" { + cloudformation_type_name = "AWS::CodeArtifact::PackageGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_codeartifact_repository" { + cloudformation_type_name = "AWS::CodeArtifact::Repository" +} + +resource_schema "aws_codebuild_fleet" { + cloudformation_type_name = "AWS::CodeBuild::Fleet" +} + +resource_schema "aws_codeconnections_connection" { + cloudformation_type_name = "AWS::CodeConnections::Connection" +} + +resource_schema "aws_codedeploy_application" { + cloudformation_type_name = "AWS::CodeDeploy::Application" +} + +resource_schema "aws_codedeploy_deployment_config" { + cloudformation_type_name = "AWS::CodeDeploy::DeploymentConfig" +} + +resource_schema "aws_codeguruprofiler_profiling_group" { + cloudformation_type_name = "AWS::CodeGuruProfiler::ProfilingGroup" +} + +resource_schema "aws_codegurureviewer_repository_association" { + cloudformation_type_name = "AWS::CodeGuruReviewer::RepositoryAssociation" +} + +resource_schema "aws_codepipeline_custom_action_type" { + cloudformation_type_name = "AWS::CodePipeline::CustomActionType" +} + +resource_schema "aws_codepipeline_pipeline" { + cloudformation_type_name = "AWS::CodePipeline::Pipeline" +} + +resource_schema "aws_codestarconnections_connection" { + cloudformation_type_name = "AWS::CodeStarConnections::Connection" +} + +resource_schema "aws_codestarconnections_repository_link" { + cloudformation_type_name = "AWS::CodeStarConnections::RepositoryLink" +} + +resource_schema "aws_codestarconnections_sync_configuration" { + cloudformation_type_name = "AWS::CodeStarConnections::SyncConfiguration" +} + +resource_schema "aws_codestarnotifications_notification_rule" { + cloudformation_type_name = "AWS::CodeStarNotifications::NotificationRule" +} + +resource_schema "aws_cognito_identity_pool" { + cloudformation_type_name = "AWS::Cognito::IdentityPool" +} + +resource_schema "aws_cognito_identity_pool_principal_tag" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolPrincipalTag" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_identity_pool_role_attachment" { + cloudformation_type_name = "AWS::Cognito::IdentityPoolRoleAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_log_delivery_configuration" { + cloudformation_type_name = "AWS::Cognito::LogDeliveryConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool" { + cloudformation_type_name = "AWS::Cognito::UserPool" +} + +resource_schema "aws_cognito_user_pool_client" { + cloudformation_type_name = "AWS::Cognito::UserPoolClient" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_group" { + cloudformation_type_name = "AWS::Cognito::UserPoolGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_identity_provider" { + cloudformation_type_name = "AWS::Cognito::UserPoolIdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_resource_server" { + cloudformation_type_name = "AWS::Cognito::UserPoolResourceServer" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_risk_configuration_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolRiskConfigurationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_ui_customization_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUICustomizationAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user" { + cloudformation_type_name = "AWS::Cognito::UserPoolUser" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_cognito_user_pool_user_to_group_attachment" { + cloudformation_type_name = "AWS::Cognito::UserPoolUserToGroupAttachment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_comprehend_document_classifier" { + cloudformation_type_name = "AWS::Comprehend::DocumentClassifier" +} + +resource_schema "aws_comprehend_flywheel" { + cloudformation_type_name = "AWS::Comprehend::Flywheel" +} + +resource_schema "aws_config_aggregation_authorization" { + cloudformation_type_name = "AWS::Config::AggregationAuthorization" +} + +resource_schema "aws_config_config_rule" { + cloudformation_type_name = "AWS::Config::ConfigRule" +} + +resource_schema "aws_config_configuration_aggregator" { + cloudformation_type_name = "AWS::Config::ConfigurationAggregator" +} + +resource_schema "aws_config_conformance_pack" { + cloudformation_type_name = "AWS::Config::ConformancePack" +} + +resource_schema "aws_config_organization_conformance_pack" { + cloudformation_type_name = "AWS::Config::OrganizationConformancePack" +} + +resource_schema "aws_config_stored_query" { + cloudformation_type_name = "AWS::Config::StoredQuery" +} + +resource_schema "aws_connect_agent_status" { + cloudformation_type_name = "AWS::Connect::AgentStatus" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_approved_origin" { + cloudformation_type_name = "AWS::Connect::ApprovedOrigin" +} + +resource_schema "aws_connect_contact_flow" { + cloudformation_type_name = "AWS::Connect::ContactFlow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_contact_flow_module" { + cloudformation_type_name = "AWS::Connect::ContactFlowModule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_evaluation_form" { + cloudformation_type_name = "AWS::Connect::EvaluationForm" +} + +resource_schema "aws_connect_hours_of_operation" { + cloudformation_type_name = "AWS::Connect::HoursOfOperation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_instance" { + cloudformation_type_name = "AWS::Connect::Instance" +} + +resource_schema "aws_connect_instance_storage_config" { + cloudformation_type_name = "AWS::Connect::InstanceStorageConfig" +} + +resource_schema "aws_connect_integration_association" { + cloudformation_type_name = "AWS::Connect::IntegrationAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_phone_number" { + cloudformation_type_name = "AWS::Connect::PhoneNumber" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_predefined_attribute" { + cloudformation_type_name = "AWS::Connect::PredefinedAttribute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_prompt" { + cloudformation_type_name = "AWS::Connect::Prompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_queue" { + cloudformation_type_name = "AWS::Connect::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_quick_connect" { + cloudformation_type_name = "AWS::Connect::QuickConnect" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_routing_profile" { + cloudformation_type_name = "AWS::Connect::RoutingProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_rule" { + cloudformation_type_name = "AWS::Connect::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_security_key" { + cloudformation_type_name = "AWS::Connect::SecurityKey" +} + +resource_schema "aws_connect_security_profile" { + cloudformation_type_name = "AWS::Connect::SecurityProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_task_template" { + cloudformation_type_name = "AWS::Connect::TaskTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_traffic_distribution_group" { + cloudformation_type_name = "AWS::Connect::TrafficDistributionGroup" +} + +resource_schema "aws_connect_user" { + cloudformation_type_name = "AWS::Connect::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_group" { + cloudformation_type_name = "AWS::Connect::UserHierarchyGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_user_hierarchy_structure" { + cloudformation_type_name = "AWS::Connect::UserHierarchyStructure" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view" { + cloudformation_type_name = "AWS::Connect::View" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connect_view_version" { + cloudformation_type_name = "AWS::Connect::ViewVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_connectcampaigns_campaign" { + cloudformation_type_name = "AWS::ConnectCampaigns::Campaign" +} + +resource_schema "aws_controltower_enabled_baseline" { + cloudformation_type_name = "AWS::ControlTower::EnabledBaseline" +} + +resource_schema "aws_controltower_enabled_control" { + cloudformation_type_name = "AWS::ControlTower::EnabledControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_controltower_landing_zone" { + cloudformation_type_name = "AWS::ControlTower::LandingZone" +} + +resource_schema "aws_customerprofiles_calculated_attribute_definition" { + cloudformation_type_name = "AWS::CustomerProfiles::CalculatedAttributeDefinition" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_domain" { + cloudformation_type_name = "AWS::CustomerProfiles::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_event_stream" { + cloudformation_type_name = "AWS::CustomerProfiles::EventStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_integration" { + cloudformation_type_name = "AWS::CustomerProfiles::Integration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_customerprofiles_object_type" { + cloudformation_type_name = "AWS::CustomerProfiles::ObjectType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_dms_data_migration" { + cloudformation_type_name = "AWS::DMS::DataMigration" +} + +resource_schema "aws_dms_data_provider" { + cloudformation_type_name = "AWS::DMS::DataProvider" +} + +resource_schema "aws_dms_instance_profile" { + cloudformation_type_name = "AWS::DMS::InstanceProfile" +} + +resource_schema "aws_dms_migration_project" { + cloudformation_type_name = "AWS::DMS::MigrationProject" +} + +resource_schema "aws_dms_replication_config" { + cloudformation_type_name = "AWS::DMS::ReplicationConfig" +} + +resource_schema "aws_databrew_dataset" { + cloudformation_type_name = "AWS::DataBrew::Dataset" +} + +resource_schema "aws_databrew_job" { + cloudformation_type_name = "AWS::DataBrew::Job" +} + +resource_schema "aws_databrew_project" { + cloudformation_type_name = "AWS::DataBrew::Project" +} + +resource_schema "aws_databrew_recipe" { + cloudformation_type_name = "AWS::DataBrew::Recipe" +} + +resource_schema "aws_databrew_ruleset" { + cloudformation_type_name = "AWS::DataBrew::Ruleset" +} + +resource_schema "aws_databrew_schedule" { + cloudformation_type_name = "AWS::DataBrew::Schedule" +} + +resource_schema "aws_datapipeline_pipeline" { + cloudformation_type_name = "AWS::DataPipeline::Pipeline" +} + +resource_schema "aws_datasync_agent" { + cloudformation_type_name = "AWS::DataSync::Agent" +} + +resource_schema "aws_datasync_location_azure_blob" { + cloudformation_type_name = "AWS::DataSync::LocationAzureBlob" +} + +resource_schema "aws_datasync_location_efs" { + cloudformation_type_name = "AWS::DataSync::LocationEFS" +} + +resource_schema "aws_datasync_location_fsx_lustre" { + cloudformation_type_name = "AWS::DataSync::LocationFSxLustre" +} + +resource_schema "aws_datasync_location_fsx_ontap" { + cloudformation_type_name = "AWS::DataSync::LocationFSxONTAP" +} + +resource_schema "aws_datasync_location_fsx_open_zfs" { + cloudformation_type_name = "AWS::DataSync::LocationFSxOpenZFS" +} + +resource_schema "aws_datasync_location_fsx_windows" { + cloudformation_type_name = "AWS::DataSync::LocationFSxWindows" +} + +resource_schema "aws_datasync_location_hdfs" { + cloudformation_type_name = "AWS::DataSync::LocationHDFS" +} + +resource_schema "aws_datasync_location_nfs" { + cloudformation_type_name = "AWS::DataSync::LocationNFS" +} + +resource_schema "aws_datasync_location_object_storage" { + cloudformation_type_name = "AWS::DataSync::LocationObjectStorage" +} + +resource_schema "aws_datasync_location_s3" { + cloudformation_type_name = "AWS::DataSync::LocationS3" +} + +resource_schema "aws_datasync_location_smb" { + cloudformation_type_name = "AWS::DataSync::LocationSMB" +} + +resource_schema "aws_datasync_storage_system" { + cloudformation_type_name = "AWS::DataSync::StorageSystem" +} + +resource_schema "aws_datasync_task" { + cloudformation_type_name = "AWS::DataSync::Task" +} + +resource_schema "aws_datazone_data_source" { + cloudformation_type_name = "AWS::DataZone::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_domain" { + cloudformation_type_name = "AWS::DataZone::Domain" +} + +resource_schema "aws_datazone_environment" { + cloudformation_type_name = "AWS::DataZone::Environment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_actions" { + cloudformation_type_name = "AWS::DataZone::EnvironmentActions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_blueprint_configuration" { + cloudformation_type_name = "AWS::DataZone::EnvironmentBlueprintConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_environment_profile" { + cloudformation_type_name = "AWS::DataZone::EnvironmentProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_group_profile" { + cloudformation_type_name = "AWS::DataZone::GroupProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project" { + cloudformation_type_name = "AWS::DataZone::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_project_membership" { + cloudformation_type_name = "AWS::DataZone::ProjectMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_subscription_target" { + cloudformation_type_name = "AWS::DataZone::SubscriptionTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_datazone_user_profile" { + cloudformation_type_name = "AWS::DataZone::UserProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_farm" { + cloudformation_type_name = "AWS::Deadline::Farm" +} + +resource_schema "aws_deadline_fleet" { + cloudformation_type_name = "AWS::Deadline::Fleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_license_endpoint" { + cloudformation_type_name = "AWS::Deadline::LicenseEndpoint" +} + +resource_schema "aws_deadline_metered_product" { + cloudformation_type_name = "AWS::Deadline::MeteredProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_monitor" { + cloudformation_type_name = "AWS::Deadline::Monitor" +} + +resource_schema "aws_deadline_queue" { + cloudformation_type_name = "AWS::Deadline::Queue" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_environment" { + cloudformation_type_name = "AWS::Deadline::QueueEnvironment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_queue_fleet_association" { + cloudformation_type_name = "AWS::Deadline::QueueFleetAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_deadline_storage_profile" { + cloudformation_type_name = "AWS::Deadline::StorageProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_detective_graph" { + cloudformation_type_name = "AWS::Detective::Graph" +} + +resource_schema "aws_detective_member_invitation" { + cloudformation_type_name = "AWS::Detective::MemberInvitation" +} + +resource_schema "aws_detective_organization_admin" { + cloudformation_type_name = "AWS::Detective::OrganizationAdmin" +} + +resource_schema "aws_devopsguru_log_anomaly_detection_integration" { + cloudformation_type_name = "AWS::DevOpsGuru::LogAnomalyDetectionIntegration" +} + +resource_schema "aws_devopsguru_notification_channel" { + cloudformation_type_name = "AWS::DevOpsGuru::NotificationChannel" +} + +resource_schema "aws_devopsguru_resource_collection" { + cloudformation_type_name = "AWS::DevOpsGuru::ResourceCollection" +} + +resource_schema "aws_directoryservice_simple_ad" { + cloudformation_type_name = "AWS::DirectoryService::SimpleAD" +} + +resource_schema "aws_docdbelastic_cluster" { + cloudformation_type_name = "AWS::DocDBElastic::Cluster" +} + +resource_schema "aws_dynamodb_global_table" { + cloudformation_type_name = "AWS::DynamoDB::GlobalTable" +} + +resource_schema "aws_dynamodb_table" { + cloudformation_type_name = "AWS::DynamoDB::Table" +} + +resource_schema "aws_ec2_capacity_reservation" { + cloudformation_type_name = "AWS::EC2::CapacityReservation" +} + +resource_schema "aws_ec2_capacity_reservation_fleet" { + cloudformation_type_name = "AWS::EC2::CapacityReservationFleet" +} + +resource_schema "aws_ec2_carrier_gateway" { + cloudformation_type_name = "AWS::EC2::CarrierGateway" +} + +resource_schema "aws_ec2_customer_gateway" { + cloudformation_type_name = "AWS::EC2::CustomerGateway" +} + +resource_schema "aws_ec2_dhcp_options" { + cloudformation_type_name = "AWS::EC2::DHCPOptions" +} + +resource_schema "aws_ec2_ec2_fleet" { + cloudformation_type_name = "AWS::EC2::EC2Fleet" +} + +resource_schema "aws_ec2_eip" { + cloudformation_type_name = "AWS::EC2::EIP" +} + +resource_schema "aws_ec2_eip_association" { + cloudformation_type_name = "AWS::EC2::EIPAssociation" +} + +resource_schema "aws_ec2_egress_only_internet_gateway" { + cloudformation_type_name = "AWS::EC2::EgressOnlyInternetGateway" +} + +resource_schema "aws_ec2_enclave_certificate_iam_role_association" { + cloudformation_type_name = "AWS::EC2::EnclaveCertificateIamRoleAssociation" +} + +resource_schema "aws_ec2_flow_log" { + cloudformation_type_name = "AWS::EC2::FlowLog" +} + +resource_schema "aws_ec2_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::GatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_host" { + cloudformation_type_name = "AWS::EC2::Host" +} + +resource_schema "aws_ec2_ipam" { + cloudformation_type_name = "AWS::EC2::IPAM" +} + +resource_schema "aws_ec2_ipam_allocation" { + cloudformation_type_name = "AWS::EC2::IPAMAllocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_pool" { + cloudformation_type_name = "AWS::EC2::IPAMPool" +} + +resource_schema "aws_ec2_ipam_pool_cidr" { + cloudformation_type_name = "AWS::EC2::IPAMPoolCidr" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_ipam_resource_discovery" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscovery" +} + +resource_schema "aws_ec2_ipam_resource_discovery_association" { + cloudformation_type_name = "AWS::EC2::IPAMResourceDiscoveryAssociation" +} + +resource_schema "aws_ec2_ipam_scope" { + cloudformation_type_name = "AWS::EC2::IPAMScope" +} + +resource_schema "aws_ec2_instance" { + cloudformation_type_name = "AWS::EC2::Instance" +} + +resource_schema "aws_ec2_instance_connect_endpoint" { + cloudformation_type_name = "AWS::EC2::InstanceConnectEndpoint" +} + +resource_schema "aws_ec2_internet_gateway" { + cloudformation_type_name = "AWS::EC2::InternetGateway" +} + +resource_schema "aws_ec2_key_pair" { + cloudformation_type_name = "AWS::EC2::KeyPair" +} + +resource_schema "aws_ec2_launch_template" { + cloudformation_type_name = "AWS::EC2::LaunchTemplate" +} + +resource_schema "aws_ec2_local_gateway_route" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRoute" +} + +resource_schema "aws_ec2_local_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTable" +} + +resource_schema "aws_ec2_local_gateway_route_table_vpc_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVPCAssociation" +} + +resource_schema "aws_ec2_local_gateway_route_table_virtual_interface_group_association" { + cloudformation_type_name = "AWS::EC2::LocalGatewayRouteTableVirtualInterfaceGroupAssociation" +} + +resource_schema "aws_ec2_nat_gateway" { + cloudformation_type_name = "AWS::EC2::NatGateway" +} + +resource_schema "aws_ec2_network_acl" { + cloudformation_type_name = "AWS::EC2::NetworkAcl" +} + +resource_schema "aws_ec2_network_insights_access_scope" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScope" +} + +resource_schema "aws_ec2_network_insights_access_scope_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAccessScopeAnalysis" +} + +resource_schema "aws_ec2_network_insights_analysis" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsAnalysis" +} + +resource_schema "aws_ec2_network_insights_path" { + cloudformation_type_name = "AWS::EC2::NetworkInsightsPath" +} + +resource_schema "aws_ec2_network_interface" { + cloudformation_type_name = "AWS::EC2::NetworkInterface" +} + +resource_schema "aws_ec2_network_interface_attachment" { + cloudformation_type_name = "AWS::EC2::NetworkInterfaceAttachment" +} + +resource_schema "aws_ec2_network_performance_metric_subscription" { + cloudformation_type_name = "AWS::EC2::NetworkPerformanceMetricSubscription" +} + +resource_schema "aws_ec2_placement_group" { + cloudformation_type_name = "AWS::EC2::PlacementGroup" +} + +resource_schema "aws_ec2_prefix_list" { + cloudformation_type_name = "AWS::EC2::PrefixList" +} + +resource_schema "aws_ec2_route" { + cloudformation_type_name = "AWS::EC2::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_route_table" { + cloudformation_type_name = "AWS::EC2::RouteTable" +} + +resource_schema "aws_ec2_security_group" { + cloudformation_type_name = "AWS::EC2::SecurityGroup" +} + +resource_schema "aws_ec2_security_group_egress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupEgress" +} + +resource_schema "aws_ec2_security_group_ingress" { + cloudformation_type_name = "AWS::EC2::SecurityGroupIngress" +} + +resource_schema "aws_ec2_security_group_vpc_association" { + cloudformation_type_name = "AWS::EC2::SecurityGroupVpcAssociation" +} + +resource_schema "aws_ec2_snapshot_block_public_access" { + cloudformation_type_name = "AWS::EC2::SnapshotBlockPublicAccess" +} + +resource_schema "aws_ec2_spot_fleet" { + cloudformation_type_name = "AWS::EC2::SpotFleet" +} + +resource_schema "aws_ec2_subnet" { + cloudformation_type_name = "AWS::EC2::Subnet" +} + +resource_schema "aws_ec2_subnet_cidr_block" { + cloudformation_type_name = "AWS::EC2::SubnetCidrBlock" +} + +resource_schema "aws_ec2_subnet_network_acl_association" { + cloudformation_type_name = "AWS::EC2::SubnetNetworkAclAssociation" +} + +resource_schema "aws_ec2_subnet_route_table_association" { + cloudformation_type_name = "AWS::EC2::SubnetRouteTableAssociation" +} + +resource_schema "aws_ec2_transit_gateway" { + cloudformation_type_name = "AWS::EC2::TransitGateway" +} + +resource_schema "aws_ec2_transit_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayAttachment" +} + +resource_schema "aws_ec2_transit_gateway_connect" { + cloudformation_type_name = "AWS::EC2::TransitGatewayConnect" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomain" +} + +resource_schema "aws_ec2_transit_gateway_multicast_domain_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastDomainAssociation" +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_member" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupMember" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_multicast_group_source" { + cloudformation_type_name = "AWS::EC2::TransitGatewayMulticastGroupSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_peering_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayPeeringAttachment" +} + +resource_schema "aws_ec2_transit_gateway_route" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRoute" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTable" +} + +resource_schema "aws_ec2_transit_gateway_route_table_association" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTableAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_route_table_propagation" { + cloudformation_type_name = "AWS::EC2::TransitGatewayRouteTablePropagation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_transit_gateway_vpc_attachment" { + cloudformation_type_name = "AWS::EC2::TransitGatewayVpcAttachment" +} + +resource_schema "aws_ec2_vpc" { + cloudformation_type_name = "AWS::EC2::VPC" +} + +resource_schema "aws_ec2_vpc_cidr_block" { + cloudformation_type_name = "AWS::EC2::VPCCidrBlock" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ec2_vpcdhcp_options_association" { + cloudformation_type_name = "AWS::EC2::VPCDHCPOptionsAssociation" +} + +resource_schema "aws_ec2_vpc_endpoint" { + cloudformation_type_name = "AWS::EC2::VPCEndpoint" +} + +resource_schema "aws_ec2_vpc_endpoint_connection_notification" { + cloudformation_type_name = "AWS::EC2::VPCEndpointConnectionNotification" +} + +resource_schema "aws_ec2_vpc_endpoint_service" { + cloudformation_type_name = "AWS::EC2::VPCEndpointService" +} + +resource_schema "aws_ec2_vpc_endpoint_service_permissions" { + cloudformation_type_name = "AWS::EC2::VPCEndpointServicePermissions" +} + +resource_schema "aws_ec2_vpc_gateway_attachment" { + cloudformation_type_name = "AWS::EC2::VPCGatewayAttachment" +} + +resource_schema "aws_ec2_vpc_peering_connection" { + cloudformation_type_name = "AWS::EC2::VPCPeeringConnection" +} + +resource_schema "aws_ec2_vpn_connection" { + cloudformation_type_name = "AWS::EC2::VPNConnection" +} + +resource_schema "aws_ec2_vpn_connection_route" { + cloudformation_type_name = "AWS::EC2::VPNConnectionRoute" +} + +resource_schema "aws_ec2_vpn_gateway" { + cloudformation_type_name = "AWS::EC2::VPNGateway" +} + +resource_schema "aws_ec2_verified_access_endpoint" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessEndpoint" +} + +resource_schema "aws_ec2_verified_access_group" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessGroup" +} + +resource_schema "aws_ec2_verified_access_instance" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessInstance" +} + +resource_schema "aws_ec2_verified_access_trust_provider" { + cloudformation_type_name = "AWS::EC2::VerifiedAccessTrustProvider" +} + +resource_schema "aws_ec2_volume" { + cloudformation_type_name = "AWS::EC2::Volume" +} + +resource_schema "aws_ec2_volume_attachment" { + cloudformation_type_name = "AWS::EC2::VolumeAttachment" +} + +resource_schema "aws_ecr_public_repository" { + cloudformation_type_name = "AWS::ECR::PublicRepository" +} + +resource_schema "aws_ecr_pull_through_cache_rule" { + cloudformation_type_name = "AWS::ECR::PullThroughCacheRule" +} + +resource_schema "aws_ecr_registry_policy" { + cloudformation_type_name = "AWS::ECR::RegistryPolicy" +} + +resource_schema "aws_ecr_replication_configuration" { + cloudformation_type_name = "AWS::ECR::ReplicationConfiguration" +} + +resource_schema "aws_ecr_repository" { + cloudformation_type_name = "AWS::ECR::Repository" +} + +resource_schema "aws_ecr_repository_creation_template" { + cloudformation_type_name = "AWS::ECR::RepositoryCreationTemplate" +} + +resource_schema "aws_ecs_capacity_provider" { + cloudformation_type_name = "AWS::ECS::CapacityProvider" +} + +resource_schema "aws_ecs_cluster" { + cloudformation_type_name = "AWS::ECS::Cluster" +} + +resource_schema "aws_ecs_cluster_capacity_provider_associations" { + cloudformation_type_name = "AWS::ECS::ClusterCapacityProviderAssociations" +} + +resource_schema "aws_ecs_primary_task_set" { + cloudformation_type_name = "AWS::ECS::PrimaryTaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ecs_service" { + cloudformation_type_name = "AWS::ECS::Service" +} + +resource_schema "aws_ecs_task_definition" { + cloudformation_type_name = "AWS::ECS::TaskDefinition" +} + +resource_schema "aws_ecs_task_set" { + cloudformation_type_name = "AWS::ECS::TaskSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_efs_access_point" { + cloudformation_type_name = "AWS::EFS::AccessPoint" +} + +resource_schema "aws_efs_file_system" { + cloudformation_type_name = "AWS::EFS::FileSystem" +} + +resource_schema "aws_efs_mount_target" { + cloudformation_type_name = "AWS::EFS::MountTarget" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_access_entry" { + cloudformation_type_name = "AWS::EKS::AccessEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_addon" { + cloudformation_type_name = "AWS::EKS::Addon" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_cluster" { + cloudformation_type_name = "AWS::EKS::Cluster" +} + +resource_schema "aws_eks_fargate_profile" { + cloudformation_type_name = "AWS::EKS::FargateProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_identity_provider_config" { + cloudformation_type_name = "AWS::EKS::IdentityProviderConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_nodegroup" { + cloudformation_type_name = "AWS::EKS::Nodegroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eks_pod_identity_association" { + cloudformation_type_name = "AWS::EKS::PodIdentityAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_emr_security_configuration" { + cloudformation_type_name = "AWS::EMR::SecurityConfiguration" +} + +resource_schema "aws_emr_studio" { + cloudformation_type_name = "AWS::EMR::Studio" +} + +resource_schema "aws_emr_studio_session_mapping" { + cloudformation_type_name = "AWS::EMR::StudioSessionMapping" +} + +resource_schema "aws_emr_wal_workspace" { + cloudformation_type_name = "AWS::EMR::WALWorkspace" +} + +resource_schema "aws_emrcontainers_virtual_cluster" { + cloudformation_type_name = "AWS::EMRContainers::VirtualCluster" +} + +resource_schema "aws_emrserverless_application" { + cloudformation_type_name = "AWS::EMRServerless::Application" +} + +resource_schema "aws_elasticache_global_replication_group" { + cloudformation_type_name = "AWS::ElastiCache::GlobalReplicationGroup" +} + +resource_schema "aws_elasticache_parameter_group" { + cloudformation_type_name = "AWS::ElastiCache::ParameterGroup" +} + +resource_schema "aws_elasticache_serverless_cache" { + cloudformation_type_name = "AWS::ElastiCache::ServerlessCache" +} + +resource_schema "aws_elasticache_subnet_group" { + cloudformation_type_name = "AWS::ElastiCache::SubnetGroup" +} + +resource_schema "aws_elasticache_user" { + cloudformation_type_name = "AWS::ElastiCache::User" +} + +resource_schema "aws_elasticache_user_group" { + cloudformation_type_name = "AWS::ElastiCache::UserGroup" +} + +resource_schema "aws_elasticbeanstalk_application" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Application" +} + +resource_schema "aws_elasticbeanstalk_application_version" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ApplicationVersion" +} + +resource_schema "aws_elasticbeanstalk_configuration_template" { + cloudformation_type_name = "AWS::ElasticBeanstalk::ConfigurationTemplate" +} + +resource_schema "aws_elasticbeanstalk_environment" { + cloudformation_type_name = "AWS::ElasticBeanstalk::Environment" +} + +resource_schema "aws_elasticloadbalancingv2_listener" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_listener_rule" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::ListenerRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_elasticloadbalancingv2_load_balancer" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::LoadBalancer" +} + +resource_schema "aws_elasticloadbalancingv2_target_group" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TargetGroup" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStore" +} + +resource_schema "aws_elasticloadbalancingv2_trust_store_revocation" { + cloudformation_type_name = "AWS::ElasticLoadBalancingV2::TrustStoreRevocation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_id_mapping_workflow" { + cloudformation_type_name = "AWS::EntityResolution::IdMappingWorkflow" +} + +resource_schema "aws_entityresolution_id_namespace" { + cloudformation_type_name = "AWS::EntityResolution::IdNamespace" +} + +resource_schema "aws_entityresolution_matching_workflow" { + cloudformation_type_name = "AWS::EntityResolution::MatchingWorkflow" +} + +resource_schema "aws_entityresolution_policy_statement" { + cloudformation_type_name = "AWS::EntityResolution::PolicyStatement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_entityresolution_schema_mapping" { + cloudformation_type_name = "AWS::EntityResolution::SchemaMapping" +} + +resource_schema "aws_eventschemas_discoverer" { + cloudformation_type_name = "AWS::EventSchemas::Discoverer" +} + +resource_schema "aws_eventschemas_registry" { + cloudformation_type_name = "AWS::EventSchemas::Registry" +} + +resource_schema "aws_eventschemas_registry_policy" { + cloudformation_type_name = "AWS::EventSchemas::RegistryPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_eventschemas_schema" { + cloudformation_type_name = "AWS::EventSchemas::Schema" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_events_api_destination" { + cloudformation_type_name = "AWS::Events::ApiDestination" +} + +resource_schema "aws_events_archive" { + cloudformation_type_name = "AWS::Events::Archive" +} + +resource_schema "aws_events_connection" { + cloudformation_type_name = "AWS::Events::Connection" +} + +resource_schema "aws_events_endpoint" { + cloudformation_type_name = "AWS::Events::Endpoint" +} + +resource_schema "aws_events_event_bus" { + cloudformation_type_name = "AWS::Events::EventBus" +} + +resource_schema "aws_events_rule" { + cloudformation_type_name = "AWS::Events::Rule" +} + +resource_schema "aws_evidently_experiment" { + cloudformation_type_name = "AWS::Evidently::Experiment" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_feature" { + cloudformation_type_name = "AWS::Evidently::Feature" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_launch" { + cloudformation_type_name = "AWS::Evidently::Launch" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_project" { + cloudformation_type_name = "AWS::Evidently::Project" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_evidently_segment" { + cloudformation_type_name = "AWS::Evidently::Segment" +} + +resource_schema "aws_fis_experiment_template" { + cloudformation_type_name = "AWS::FIS::ExperimentTemplate" +} + +resource_schema "aws_fis_target_account_configuration" { + cloudformation_type_name = "AWS::FIS::TargetAccountConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_fms_notification_channel" { + cloudformation_type_name = "AWS::FMS::NotificationChannel" +} + +resource_schema "aws_fms_policy" { + cloudformation_type_name = "AWS::FMS::Policy" +} + +resource_schema "aws_fms_resource_set" { + cloudformation_type_name = "AWS::FMS::ResourceSet" +} + +resource_schema "aws_fsx_data_repository_association" { + cloudformation_type_name = "AWS::FSx::DataRepositoryAssociation" +} + +resource_schema "aws_finspace_environment" { + cloudformation_type_name = "AWS::FinSpace::Environment" +} + +resource_schema "aws_forecast_dataset" { + cloudformation_type_name = "AWS::Forecast::Dataset" +} + +resource_schema "aws_forecast_dataset_group" { + cloudformation_type_name = "AWS::Forecast::DatasetGroup" +} + +resource_schema "aws_frauddetector_detector" { + cloudformation_type_name = "AWS::FraudDetector::Detector" +} + +resource_schema "aws_frauddetector_entity_type" { + cloudformation_type_name = "AWS::FraudDetector::EntityType" +} + +resource_schema "aws_frauddetector_event_type" { + cloudformation_type_name = "AWS::FraudDetector::EventType" +} + +resource_schema "aws_frauddetector_label" { + cloudformation_type_name = "AWS::FraudDetector::Label" +} + +resource_schema "aws_frauddetector_list" { + cloudformation_type_name = "AWS::FraudDetector::List" +} + +resource_schema "aws_frauddetector_outcome" { + cloudformation_type_name = "AWS::FraudDetector::Outcome" +} + +resource_schema "aws_frauddetector_variable" { + cloudformation_type_name = "AWS::FraudDetector::Variable" +} + +resource_schema "aws_gamelift_alias" { + cloudformation_type_name = "AWS::GameLift::Alias" +} + +resource_schema "aws_gamelift_build" { + cloudformation_type_name = "AWS::GameLift::Build" +} + +resource_schema "aws_gamelift_container_group_definition" { + cloudformation_type_name = "AWS::GameLift::ContainerGroupDefinition" +} + +resource_schema "aws_gamelift_fleet" { + cloudformation_type_name = "AWS::GameLift::Fleet" +} + +resource_schema "aws_gamelift_game_server_group" { + cloudformation_type_name = "AWS::GameLift::GameServerGroup" +} + +resource_schema "aws_gamelift_game_session_queue" { + cloudformation_type_name = "AWS::GameLift::GameSessionQueue" +} + +resource_schema "aws_gamelift_location" { + cloudformation_type_name = "AWS::GameLift::Location" +} + +resource_schema "aws_gamelift_matchmaking_configuration" { + cloudformation_type_name = "AWS::GameLift::MatchmakingConfiguration" +} + +resource_schema "aws_gamelift_matchmaking_rule_set" { + cloudformation_type_name = "AWS::GameLift::MatchmakingRuleSet" +} + +resource_schema "aws_gamelift_script" { + cloudformation_type_name = "AWS::GameLift::Script" +} + +resource_schema "aws_globalaccelerator_accelerator" { + cloudformation_type_name = "AWS::GlobalAccelerator::Accelerator" +} + +resource_schema "aws_globalaccelerator_cross_account_attachment" { + cloudformation_type_name = "AWS::GlobalAccelerator::CrossAccountAttachment" +} + +resource_schema "aws_globalaccelerator_endpoint_group" { + cloudformation_type_name = "AWS::GlobalAccelerator::EndpointGroup" +} + +resource_schema "aws_globalaccelerator_listener" { + cloudformation_type_name = "AWS::GlobalAccelerator::Listener" +} + +resource_schema "aws_glue_crawler" { + cloudformation_type_name = "AWS::Glue::Crawler" +} + +resource_schema "aws_glue_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +resource_schema "aws_glue_job" { + cloudformation_type_name = "AWS::Glue::Job" +} + +resource_schema "aws_glue_registry" { + cloudformation_type_name = "AWS::Glue::Registry" +} + +resource_schema "aws_glue_schema" { + cloudformation_type_name = "AWS::Glue::Schema" +} + +resource_schema "aws_glue_schema_version" { + cloudformation_type_name = "AWS::Glue::SchemaVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_schema_version_metadata" { + cloudformation_type_name = "AWS::Glue::SchemaVersionMetadata" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_glue_trigger" { + cloudformation_type_name = "AWS::Glue::Trigger" +} + +resource_schema "aws_glue_usage_profile" { + cloudformation_type_name = "AWS::Glue::UsageProfile" +} + +resource_schema "aws_grafana_workspace" { + cloudformation_type_name = "AWS::Grafana::Workspace" +} + +resource_schema "aws_greengrassv2_component_version" { + cloudformation_type_name = "AWS::GreengrassV2::ComponentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_greengrassv2_deployment" { + cloudformation_type_name = "AWS::GreengrassV2::Deployment" +} + +resource_schema "aws_groundstation_config" { + cloudformation_type_name = "AWS::GroundStation::Config" +} + +resource_schema "aws_groundstation_dataflow_endpoint_group" { + cloudformation_type_name = "AWS::GroundStation::DataflowEndpointGroup" +} + +resource_schema "aws_groundstation_mission_profile" { + cloudformation_type_name = "AWS::GroundStation::MissionProfile" +} + +resource_schema "aws_guardduty_detector" { + cloudformation_type_name = "AWS::GuardDuty::Detector" +} + +resource_schema "aws_guardduty_filter" { + cloudformation_type_name = "AWS::GuardDuty::Filter" +} + +resource_schema "aws_guardduty_ip_set" { + cloudformation_type_name = "AWS::GuardDuty::IPSet" +} + +resource_schema "aws_guardduty_malware_protection_plan" { + cloudformation_type_name = "AWS::GuardDuty::MalwareProtectionPlan" +} + +resource_schema "aws_guardduty_master" { + cloudformation_type_name = "AWS::GuardDuty::Master" +} + +resource_schema "aws_guardduty_member" { + cloudformation_type_name = "AWS::GuardDuty::Member" +} + +resource_schema "aws_guardduty_threat_intel_set" { + cloudformation_type_name = "AWS::GuardDuty::ThreatIntelSet" +} + +resource_schema "aws_healthimaging_datastore" { + cloudformation_type_name = "AWS::HealthImaging::Datastore" +} + +resource_schema "aws_healthlake_fhir_datastore" { + cloudformation_type_name = "AWS::HealthLake::FHIRDatastore" +} + +resource_schema "aws_iam_group" { + cloudformation_type_name = "AWS::IAM::Group" +} + +resource_schema "aws_iam_group_policy" { + cloudformation_type_name = "AWS::IAM::GroupPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_instance_profile" { + cloudformation_type_name = "AWS::IAM::InstanceProfile" +} + +resource_schema "aws_iam_managed_policy" { + cloudformation_type_name = "AWS::IAM::ManagedPolicy" +} + +resource_schema "aws_iam_oidc_provider" { + cloudformation_type_name = "AWS::IAM::OIDCProvider" +} + +resource_schema "aws_iam_role" { + cloudformation_type_name = "AWS::IAM::Role" +} + +resource_schema "aws_iam_role_policy" { + cloudformation_type_name = "AWS::IAM::RolePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_saml_provider" { + cloudformation_type_name = "AWS::IAM::SAMLProvider" +} + +resource_schema "aws_iam_server_certificate" { + cloudformation_type_name = "AWS::IAM::ServerCertificate" +} + +resource_schema "aws_iam_service_linked_role" { + cloudformation_type_name = "AWS::IAM::ServiceLinkedRole" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_user" { + cloudformation_type_name = "AWS::IAM::User" +} + +resource_schema "aws_iam_user_policy" { + cloudformation_type_name = "AWS::IAM::UserPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iam_virtual_mfa_device" { + cloudformation_type_name = "AWS::IAM::VirtualMFADevice" +} + +resource_schema "aws_ivs_channel" { + cloudformation_type_name = "AWS::IVS::Channel" +} + +resource_schema "aws_ivs_encoder_configuration" { + cloudformation_type_name = "AWS::IVS::EncoderConfiguration" +} + +resource_schema "aws_ivs_playback_key_pair" { + cloudformation_type_name = "AWS::IVS::PlaybackKeyPair" +} + +resource_schema "aws_ivs_playback_restriction_policy" { + cloudformation_type_name = "AWS::IVS::PlaybackRestrictionPolicy" +} + +resource_schema "aws_ivs_public_key" { + cloudformation_type_name = "AWS::IVS::PublicKey" +} + +resource_schema "aws_ivs_recording_configuration" { + cloudformation_type_name = "AWS::IVS::RecordingConfiguration" +} + +resource_schema "aws_ivs_stage" { + cloudformation_type_name = "AWS::IVS::Stage" +} + +resource_schema "aws_ivs_storage_configuration" { + cloudformation_type_name = "AWS::IVS::StorageConfiguration" +} + +resource_schema "aws_ivs_stream_key" { + cloudformation_type_name = "AWS::IVS::StreamKey" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ivschat_logging_configuration" { + cloudformation_type_name = "AWS::IVSChat::LoggingConfiguration" +} + +resource_schema "aws_ivschat_room" { + cloudformation_type_name = "AWS::IVSChat::Room" +} + +resource_schema "aws_identitystore_group" { + cloudformation_type_name = "AWS::IdentityStore::Group" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_identitystore_group_membership" { + cloudformation_type_name = "AWS::IdentityStore::GroupMembership" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_component" { + cloudformation_type_name = "AWS::ImageBuilder::Component" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_container_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ContainerRecipe" +} + +resource_schema "aws_imagebuilder_distribution_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::DistributionConfiguration" +} + +resource_schema "aws_imagebuilder_image" { + cloudformation_type_name = "AWS::ImageBuilder::Image" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_imagebuilder_image_pipeline" { + cloudformation_type_name = "AWS::ImageBuilder::ImagePipeline" +} + +resource_schema "aws_imagebuilder_image_recipe" { + cloudformation_type_name = "AWS::ImageBuilder::ImageRecipe" +} + +resource_schema "aws_imagebuilder_infrastructure_configuration" { + cloudformation_type_name = "AWS::ImageBuilder::InfrastructureConfiguration" +} + +resource_schema "aws_imagebuilder_lifecycle_policy" { + cloudformation_type_name = "AWS::ImageBuilder::LifecyclePolicy" +} + +resource_schema "aws_imagebuilder_workflow" { + cloudformation_type_name = "AWS::ImageBuilder::Workflow" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspector_assessment_target" { + cloudformation_type_name = "AWS::Inspector::AssessmentTarget" +} + +resource_schema "aws_inspector_assessment_template" { + cloudformation_type_name = "AWS::Inspector::AssessmentTemplate" +} + +resource_schema "aws_inspector_resource_group" { + cloudformation_type_name = "AWS::Inspector::ResourceGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_inspectorv2_cis_scan_configuration" { + cloudformation_type_name = "AWS::InspectorV2::CisScanConfiguration" +} + +resource_schema "aws_inspectorv2_filter" { + cloudformation_type_name = "AWS::InspectorV2::Filter" +} + +resource_schema "aws_internetmonitor_monitor" { + cloudformation_type_name = "AWS::InternetMonitor::Monitor" +} + +resource_schema "aws_iot_account_audit_configuration" { + cloudformation_type_name = "AWS::IoT::AccountAuditConfiguration" +} + +resource_schema "aws_iot_authorizer" { + cloudformation_type_name = "AWS::IoT::Authorizer" +} + +resource_schema "aws_iot_billing_group" { + cloudformation_type_name = "AWS::IoT::BillingGroup" +} + +resource_schema "aws_iot_ca_certificate" { + cloudformation_type_name = "AWS::IoT::CACertificate" +} + +resource_schema "aws_iot_certificate" { + cloudformation_type_name = "AWS::IoT::Certificate" +} + +resource_schema "aws_iot_certificate_provider" { + cloudformation_type_name = "AWS::IoT::CertificateProvider" +} + +resource_schema "aws_iot_custom_metric" { + cloudformation_type_name = "AWS::IoT::CustomMetric" +} + +resource_schema "aws_iot_dimension" { + cloudformation_type_name = "AWS::IoT::Dimension" +} + +resource_schema "aws_iot_domain_configuration" { + cloudformation_type_name = "AWS::IoT::DomainConfiguration" +} + +resource_schema "aws_iot_fleet_metric" { + cloudformation_type_name = "AWS::IoT::FleetMetric" +} + +resource_schema "aws_iot_job_template" { + cloudformation_type_name = "AWS::IoT::JobTemplate" +} + +resource_schema "aws_iot_logging" { + cloudformation_type_name = "AWS::IoT::Logging" +} + +resource_schema "aws_iot_mitigation_action" { + cloudformation_type_name = "AWS::IoT::MitigationAction" +} + +resource_schema "aws_iot_policy" { + cloudformation_type_name = "AWS::IoT::Policy" +} + +resource_schema "aws_iot_provisioning_template" { + cloudformation_type_name = "AWS::IoT::ProvisioningTemplate" +} + +resource_schema "aws_iot_resource_specific_logging" { + cloudformation_type_name = "AWS::IoT::ResourceSpecificLogging" +} + +resource_schema "aws_iot_role_alias" { + cloudformation_type_name = "AWS::IoT::RoleAlias" +} + +resource_schema "aws_iot_scheduled_audit" { + cloudformation_type_name = "AWS::IoT::ScheduledAudit" +} + +resource_schema "aws_iot_security_profile" { + cloudformation_type_name = "AWS::IoT::SecurityProfile" +} + +resource_schema "aws_iot_software_package" { + cloudformation_type_name = "AWS::IoT::SoftwarePackage" +} + +resource_schema "aws_iot_software_package_version" { + cloudformation_type_name = "AWS::IoT::SoftwarePackageVersion" +} + +resource_schema "aws_iot_thing" { + cloudformation_type_name = "AWS::IoT::Thing" +} + +resource_schema "aws_iot_thing_group" { + cloudformation_type_name = "AWS::IoT::ThingGroup" +} + +resource_schema "aws_iot_thing_type" { + cloudformation_type_name = "AWS::IoT::ThingType" +} + +resource_schema "aws_iot_topic_rule" { + cloudformation_type_name = "AWS::IoT::TopicRule" +} + +resource_schema "aws_iot_topic_rule_destination" { + cloudformation_type_name = "AWS::IoT::TopicRuleDestination" +} + +resource_schema "aws_iotanalytics_channel" { + cloudformation_type_name = "AWS::IoTAnalytics::Channel" +} + +resource_schema "aws_iotanalytics_dataset" { + cloudformation_type_name = "AWS::IoTAnalytics::Dataset" +} + +resource_schema "aws_iotanalytics_datastore" { + cloudformation_type_name = "AWS::IoTAnalytics::Datastore" +} + +resource_schema "aws_iotanalytics_pipeline" { + cloudformation_type_name = "AWS::IoTAnalytics::Pipeline" +} + +resource_schema "aws_iotcoredeviceadvisor_suite_definition" { + cloudformation_type_name = "AWS::IoTCoreDeviceAdvisor::SuiteDefinition" +} + +resource_schema "aws_iotevents_alarm_model" { + cloudformation_type_name = "AWS::IoTEvents::AlarmModel" +} + +resource_schema "aws_iotevents_detector_model" { + cloudformation_type_name = "AWS::IoTEvents::DetectorModel" +} + +resource_schema "aws_iotevents_input" { + cloudformation_type_name = "AWS::IoTEvents::Input" +} + +resource_schema "aws_iotfleethub_application" { + cloudformation_type_name = "AWS::IoTFleetHub::Application" +} + +resource_schema "aws_iotfleetwise_campaign" { + cloudformation_type_name = "AWS::IoTFleetWise::Campaign" +} + +resource_schema "aws_iotfleetwise_decoder_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::DecoderManifest" +} + +resource_schema "aws_iotfleetwise_fleet" { + cloudformation_type_name = "AWS::IoTFleetWise::Fleet" +} + +resource_schema "aws_iotfleetwise_model_manifest" { + cloudformation_type_name = "AWS::IoTFleetWise::ModelManifest" +} + +resource_schema "aws_iotfleetwise_signal_catalog" { + cloudformation_type_name = "AWS::IoTFleetWise::SignalCatalog" +} + +resource_schema "aws_iotfleetwise_vehicle" { + cloudformation_type_name = "AWS::IoTFleetWise::Vehicle" +} + +resource_schema "aws_iotsitewise_access_policy" { + cloudformation_type_name = "AWS::IoTSiteWise::AccessPolicy" +} + +resource_schema "aws_iotsitewise_asset" { + cloudformation_type_name = "AWS::IoTSiteWise::Asset" +} + +resource_schema "aws_iotsitewise_asset_model" { + cloudformation_type_name = "AWS::IoTSiteWise::AssetModel" +} + +resource_schema "aws_iotsitewise_dashboard" { + cloudformation_type_name = "AWS::IoTSiteWise::Dashboard" +} + +resource_schema "aws_iotsitewise_gateway" { + cloudformation_type_name = "AWS::IoTSiteWise::Gateway" +} + +resource_schema "aws_iotsitewise_portal" { + cloudformation_type_name = "AWS::IoTSiteWise::Portal" +} + +resource_schema "aws_iotsitewise_project" { + cloudformation_type_name = "AWS::IoTSiteWise::Project" +} + +resource_schema "aws_iottwinmaker_component_type" { + cloudformation_type_name = "AWS::IoTTwinMaker::ComponentType" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_entity" { + cloudformation_type_name = "AWS::IoTTwinMaker::Entity" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_scene" { + cloudformation_type_name = "AWS::IoTTwinMaker::Scene" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_sync_job" { + cloudformation_type_name = "AWS::IoTTwinMaker::SyncJob" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_iottwinmaker_workspace" { + cloudformation_type_name = "AWS::IoTTwinMaker::Workspace" +} + +resource_schema "aws_iotwireless_destination" { + cloudformation_type_name = "AWS::IoTWireless::Destination" +} + +resource_schema "aws_iotwireless_device_profile" { + cloudformation_type_name = "AWS::IoTWireless::DeviceProfile" +} + +resource_schema "aws_iotwireless_fuota_task" { + cloudformation_type_name = "AWS::IoTWireless::FuotaTask" +} + +resource_schema "aws_iotwireless_multicast_group" { + cloudformation_type_name = "AWS::IoTWireless::MulticastGroup" +} + +resource_schema "aws_iotwireless_network_analyzer_configuration" { + cloudformation_type_name = "AWS::IoTWireless::NetworkAnalyzerConfiguration" +} + +resource_schema "aws_iotwireless_partner_account" { + cloudformation_type_name = "AWS::IoTWireless::PartnerAccount" +} + +resource_schema "aws_iotwireless_service_profile" { + cloudformation_type_name = "AWS::IoTWireless::ServiceProfile" +} + +resource_schema "aws_iotwireless_task_definition" { + cloudformation_type_name = "AWS::IoTWireless::TaskDefinition" +} + +resource_schema "aws_iotwireless_wireless_device" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDevice" +} + +resource_schema "aws_iotwireless_wireless_device_import_task" { + cloudformation_type_name = "AWS::IoTWireless::WirelessDeviceImportTask" +} + +resource_schema "aws_iotwireless_wireless_gateway" { + cloudformation_type_name = "AWS::IoTWireless::WirelessGateway" +} + +resource_schema "aws_kms_alias" { + cloudformation_type_name = "AWS::KMS::Alias" +} + +resource_schema "aws_kms_key" { + cloudformation_type_name = "AWS::KMS::Key" +} + +resource_schema "aws_kms_replica_key" { + cloudformation_type_name = "AWS::KMS::ReplicaKey" +} + +resource_schema "aws_kafkaconnect_connector" { + cloudformation_type_name = "AWS::KafkaConnect::Connector" +} + +resource_schema "aws_kafkaconnect_custom_plugin" { + cloudformation_type_name = "AWS::KafkaConnect::CustomPlugin" +} + +resource_schema "aws_kafkaconnect_worker_configuration" { + cloudformation_type_name = "AWS::KafkaConnect::WorkerConfiguration" +} + +resource_schema "aws_kendra_data_source" { + cloudformation_type_name = "AWS::Kendra::DataSource" +} + +resource_schema "aws_kendra_faq" { + cloudformation_type_name = "AWS::Kendra::Faq" +} + +resource_schema "aws_kendra_index" { + cloudformation_type_name = "AWS::Kendra::Index" +} + +resource_schema "aws_kendraranking_execution_plan" { + cloudformation_type_name = "AWS::KendraRanking::ExecutionPlan" +} + +resource_schema "aws_kinesis_resource_policy" { + cloudformation_type_name = "AWS::Kinesis::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesis_stream" { + cloudformation_type_name = "AWS::Kinesis::Stream" +} + +resource_schema "aws_kinesisanalyticsv2_application" { + cloudformation_type_name = "AWS::KinesisAnalyticsV2::Application" +} + +resource_schema "aws_kinesisfirehose_delivery_stream" { + cloudformation_type_name = "AWS::KinesisFirehose::DeliveryStream" +} + +resource_schema "aws_kinesisvideo_signaling_channel" { + cloudformation_type_name = "AWS::KinesisVideo::SignalingChannel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_kinesisvideo_stream" { + cloudformation_type_name = "AWS::KinesisVideo::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_data_cells_filter" { + cloudformation_type_name = "AWS::LakeFormation::DataCellsFilter" +} + +resource_schema "aws_lakeformation_principal_permissions" { + cloudformation_type_name = "AWS::LakeFormation::PrincipalPermissions" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lakeformation_tag" { + cloudformation_type_name = "AWS::LakeFormation::Tag" +} + +resource_schema "aws_lakeformation_tag_association" { + cloudformation_type_name = "AWS::LakeFormation::TagAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_alias" { + cloudformation_type_name = "AWS::Lambda::Alias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_code_signing_config" { + cloudformation_type_name = "AWS::Lambda::CodeSigningConfig" +} + +resource_schema "aws_lambda_event_invoke_config" { + cloudformation_type_name = "AWS::Lambda::EventInvokeConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_event_source_mapping" { + cloudformation_type_name = "AWS::Lambda::EventSourceMapping" +} + +resource_schema "aws_lambda_function" { + cloudformation_type_name = "AWS::Lambda::Function" +} + +resource_schema "aws_lambda_layer_version" { + cloudformation_type_name = "AWS::Lambda::LayerVersion" +} + +resource_schema "aws_lambda_layer_version_permission" { + cloudformation_type_name = "AWS::Lambda::LayerVersionPermission" +} + +resource_schema "aws_lambda_permission" { + cloudformation_type_name = "AWS::Lambda::Permission" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_url" { + cloudformation_type_name = "AWS::Lambda::Url" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lambda_version" { + cloudformation_type_name = "AWS::Lambda::Version" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_launchwizard_deployment" { + cloudformation_type_name = "AWS::LaunchWizard::Deployment" +} + +resource_schema "aws_lex_bot" { + cloudformation_type_name = "AWS::Lex::Bot" +} + +resource_schema "aws_lex_bot_alias" { + cloudformation_type_name = "AWS::Lex::BotAlias" +} + +resource_schema "aws_lex_bot_version" { + cloudformation_type_name = "AWS::Lex::BotVersion" +} + +resource_schema "aws_lex_resource_policy" { + cloudformation_type_name = "AWS::Lex::ResourcePolicy" +} + +resource_schema "aws_licensemanager_grant" { + cloudformation_type_name = "AWS::LicenseManager::Grant" +} + +resource_schema "aws_licensemanager_license" { + cloudformation_type_name = "AWS::LicenseManager::License" +} + +resource_schema "aws_lightsail_alarm" { + cloudformation_type_name = "AWS::Lightsail::Alarm" +} + +resource_schema "aws_lightsail_bucket" { + cloudformation_type_name = "AWS::Lightsail::Bucket" +} + +resource_schema "aws_lightsail_certificate" { + cloudformation_type_name = "AWS::Lightsail::Certificate" +} + +resource_schema "aws_lightsail_container" { + cloudformation_type_name = "AWS::Lightsail::Container" +} + +resource_schema "aws_lightsail_database" { + cloudformation_type_name = "AWS::Lightsail::Database" +} + +resource_schema "aws_lightsail_disk" { + cloudformation_type_name = "AWS::Lightsail::Disk" +} + +resource_schema "aws_lightsail_distribution" { + cloudformation_type_name = "AWS::Lightsail::Distribution" +} + +resource_schema "aws_lightsail_instance" { + cloudformation_type_name = "AWS::Lightsail::Instance" +} + +resource_schema "aws_lightsail_load_balancer" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancer" +} + +resource_schema "aws_lightsail_load_balancer_tls_certificate" { + cloudformation_type_name = "AWS::Lightsail::LoadBalancerTlsCertificate" +} + +resource_schema "aws_lightsail_static_ip" { + cloudformation_type_name = "AWS::Lightsail::StaticIp" +} + +resource_schema "aws_location_api_key" { + cloudformation_type_name = "AWS::Location::APIKey" +} + +resource_schema "aws_location_geofence_collection" { + cloudformation_type_name = "AWS::Location::GeofenceCollection" +} + +resource_schema "aws_location_map" { + cloudformation_type_name = "AWS::Location::Map" +} + +resource_schema "aws_location_place_index" { + cloudformation_type_name = "AWS::Location::PlaceIndex" +} + +resource_schema "aws_location_route_calculator" { + cloudformation_type_name = "AWS::Location::RouteCalculator" +} + +resource_schema "aws_location_tracker" { + cloudformation_type_name = "AWS::Location::Tracker" +} + +resource_schema "aws_location_tracker_consumer" { + cloudformation_type_name = "AWS::Location::TrackerConsumer" +} + +resource_schema "aws_logs_account_policy" { + cloudformation_type_name = "AWS::Logs::AccountPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_delivery" { + cloudformation_type_name = "AWS::Logs::Delivery" +} + +resource_schema "aws_logs_delivery_destination" { + cloudformation_type_name = "AWS::Logs::DeliveryDestination" +} + +resource_schema "aws_logs_delivery_source" { + cloudformation_type_name = "AWS::Logs::DeliverySource" +} + +resource_schema "aws_logs_destination" { + cloudformation_type_name = "AWS::Logs::Destination" +} + +resource_schema "aws_logs_log_anomaly_detector" { + cloudformation_type_name = "AWS::Logs::LogAnomalyDetector" +} + +resource_schema "aws_logs_log_group" { + cloudformation_type_name = "AWS::Logs::LogGroup" +} + +resource_schema "aws_logs_log_stream" { + cloudformation_type_name = "AWS::Logs::LogStream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_logs_metric_filter" { + cloudformation_type_name = "AWS::Logs::MetricFilter" +} + +resource_schema "aws_logs_query_definition" { + cloudformation_type_name = "AWS::Logs::QueryDefinition" +} + +resource_schema "aws_logs_resource_policy" { + cloudformation_type_name = "AWS::Logs::ResourcePolicy" +} + +resource_schema "aws_logs_subscription_filter" { + cloudformation_type_name = "AWS::Logs::SubscriptionFilter" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_lookoutequipment_inference_scheduler" { + cloudformation_type_name = "AWS::LookoutEquipment::InferenceScheduler" +} + +resource_schema "aws_lookoutmetrics_alert" { + cloudformation_type_name = "AWS::LookoutMetrics::Alert" +} + +resource_schema "aws_lookoutmetrics_anomaly_detector" { + cloudformation_type_name = "AWS::LookoutMetrics::AnomalyDetector" +} + +resource_schema "aws_lookoutvision_project" { + cloudformation_type_name = "AWS::LookoutVision::Project" +} + +resource_schema "aws_m2_application" { + cloudformation_type_name = "AWS::M2::Application" +} + +resource_schema "aws_m2_environment" { + cloudformation_type_name = "AWS::M2::Environment" +} + +resource_schema "aws_msk_batch_scram_secret" { + cloudformation_type_name = "AWS::MSK::BatchScramSecret" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_cluster" { + cloudformation_type_name = "AWS::MSK::Cluster" +} + +resource_schema "aws_msk_cluster_policy" { + cloudformation_type_name = "AWS::MSK::ClusterPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_msk_configuration" { + cloudformation_type_name = "AWS::MSK::Configuration" +} + +resource_schema "aws_msk_replicator" { + cloudformation_type_name = "AWS::MSK::Replicator" +} + +resource_schema "aws_msk_serverless_cluster" { + cloudformation_type_name = "AWS::MSK::ServerlessCluster" +} + +resource_schema "aws_msk_vpc_connection" { + cloudformation_type_name = "AWS::MSK::VpcConnection" +} + +resource_schema "aws_mwaa_environment" { + cloudformation_type_name = "AWS::MWAA::Environment" +} + +resource_schema "aws_macie_allow_list" { + cloudformation_type_name = "AWS::Macie::AllowList" +} + +resource_schema "aws_macie_custom_data_identifier" { + cloudformation_type_name = "AWS::Macie::CustomDataIdentifier" +} + +resource_schema "aws_macie_findings_filter" { + cloudformation_type_name = "AWS::Macie::FindingsFilter" +} + +resource_schema "aws_macie_session" { + cloudformation_type_name = "AWS::Macie::Session" +} + +resource_schema "aws_managedblockchain_accessor" { + cloudformation_type_name = "AWS::ManagedBlockchain::Accessor" +} + +resource_schema "aws_mediaconnect_bridge" { + cloudformation_type_name = "AWS::MediaConnect::Bridge" +} + +resource_schema "aws_mediaconnect_bridge_output" { + cloudformation_type_name = "AWS::MediaConnect::BridgeOutput" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_bridge_source" { + cloudformation_type_name = "AWS::MediaConnect::BridgeSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediaconnect_flow" { + cloudformation_type_name = "AWS::MediaConnect::Flow" +} + +resource_schema "aws_mediaconnect_flow_entitlement" { + cloudformation_type_name = "AWS::MediaConnect::FlowEntitlement" +} + +resource_schema "aws_mediaconnect_flow_output" { + cloudformation_type_name = "AWS::MediaConnect::FlowOutput" +} + +resource_schema "aws_mediaconnect_flow_source" { + cloudformation_type_name = "AWS::MediaConnect::FlowSource" +} + +resource_schema "aws_mediaconnect_flow_vpc_interface" { + cloudformation_type_name = "AWS::MediaConnect::FlowVpcInterface" +} + +resource_schema "aws_mediaconnect_gateway" { + cloudformation_type_name = "AWS::MediaConnect::Gateway" +} + +resource_schema "aws_medialive_channel_placement_group" { + cloudformation_type_name = "AWS::MediaLive::ChannelPlacementGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_cloudwatch_alarm_template" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplate" +} + +resource_schema "aws_medialive_cloudwatch_alarm_template_group" { + cloudformation_type_name = "AWS::MediaLive::CloudWatchAlarmTemplateGroup" +} + +resource_schema "aws_medialive_cluster" { + cloudformation_type_name = "AWS::MediaLive::Cluster" +} + +resource_schema "aws_medialive_event_bridge_rule_template" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplate" +} + +resource_schema "aws_medialive_event_bridge_rule_template_group" { + cloudformation_type_name = "AWS::MediaLive::EventBridgeRuleTemplateGroup" +} + +resource_schema "aws_medialive_multiplex" { + cloudformation_type_name = "AWS::MediaLive::Multiplex" +} + +resource_schema "aws_medialive_multiplexprogram" { + cloudformation_type_name = "AWS::MediaLive::Multiplexprogram" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_medialive_network" { + cloudformation_type_name = "AWS::MediaLive::Network" +} + +resource_schema "aws_medialive_sdi_source" { + cloudformation_type_name = "AWS::MediaLive::SdiSource" +} + +resource_schema "aws_medialive_signal_map" { + cloudformation_type_name = "AWS::MediaLive::SignalMap" +} + +resource_schema "aws_mediapackage_asset" { + cloudformation_type_name = "AWS::MediaPackage::Asset" +} + +resource_schema "aws_mediapackage_channel" { + cloudformation_type_name = "AWS::MediaPackage::Channel" +} + +resource_schema "aws_mediapackage_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackage::OriginEndpoint" +} + +resource_schema "aws_mediapackage_packaging_configuration" { + cloudformation_type_name = "AWS::MediaPackage::PackagingConfiguration" +} + +resource_schema "aws_mediapackage_packaging_group" { + cloudformation_type_name = "AWS::MediaPackage::PackagingGroup" +} + +resource_schema "aws_mediapackagev2_channel" { + cloudformation_type_name = "AWS::MediaPackageV2::Channel" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_channel_group" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelGroup" +} + +resource_schema "aws_mediapackagev2_channel_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpoint" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediapackagev2_origin_endpoint_policy" { + cloudformation_type_name = "AWS::MediaPackageV2::OriginEndpointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_channel" { + cloudformation_type_name = "AWS::MediaTailor::Channel" +} + +resource_schema "aws_mediatailor_channel_policy" { + cloudformation_type_name = "AWS::MediaTailor::ChannelPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_live_source" { + cloudformation_type_name = "AWS::MediaTailor::LiveSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_mediatailor_playback_configuration" { + cloudformation_type_name = "AWS::MediaTailor::PlaybackConfiguration" +} + +resource_schema "aws_mediatailor_source_location" { + cloudformation_type_name = "AWS::MediaTailor::SourceLocation" +} + +resource_schema "aws_mediatailor_vod_source" { + cloudformation_type_name = "AWS::MediaTailor::VodSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_memorydb_acl" { + cloudformation_type_name = "AWS::MemoryDB::ACL" +} + +resource_schema "aws_memorydb_cluster" { + cloudformation_type_name = "AWS::MemoryDB::Cluster" +} + +resource_schema "aws_memorydb_parameter_group" { + cloudformation_type_name = "AWS::MemoryDB::ParameterGroup" +} + +resource_schema "aws_memorydb_subnet_group" { + cloudformation_type_name = "AWS::MemoryDB::SubnetGroup" +} + +resource_schema "aws_memorydb_user" { + cloudformation_type_name = "AWS::MemoryDB::User" +} + +resource_schema "aws_neptune_db_cluster" { + cloudformation_type_name = "AWS::Neptune::DBCluster" +} + +resource_schema "aws_neptunegraph_graph" { + cloudformation_type_name = "AWS::NeptuneGraph::Graph" +} + +resource_schema "aws_neptunegraph_private_graph_endpoint" { + cloudformation_type_name = "AWS::NeptuneGraph::PrivateGraphEndpoint" +} + +resource_schema "aws_networkfirewall_firewall" { + cloudformation_type_name = "AWS::NetworkFirewall::Firewall" +} + +resource_schema "aws_networkfirewall_firewall_policy" { + cloudformation_type_name = "AWS::NetworkFirewall::FirewallPolicy" +} + +resource_schema "aws_networkfirewall_logging_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::LoggingConfiguration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkfirewall_rule_group" { + cloudformation_type_name = "AWS::NetworkFirewall::RuleGroup" +} + +resource_schema "aws_networkfirewall_tls_inspection_configuration" { + cloudformation_type_name = "AWS::NetworkFirewall::TLSInspectionConfiguration" +} + +resource_schema "aws_networkmanager_connect_attachment" { + cloudformation_type_name = "AWS::NetworkManager::ConnectAttachment" +} + +resource_schema "aws_networkmanager_connect_peer" { + cloudformation_type_name = "AWS::NetworkManager::ConnectPeer" +} + +resource_schema "aws_networkmanager_core_network" { + cloudformation_type_name = "AWS::NetworkManager::CoreNetwork" +} + +resource_schema "aws_networkmanager_customer_gateway_association" { + cloudformation_type_name = "AWS::NetworkManager::CustomerGatewayAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_device" { + cloudformation_type_name = "AWS::NetworkManager::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_global_network" { + cloudformation_type_name = "AWS::NetworkManager::GlobalNetwork" +} + +resource_schema "aws_networkmanager_link" { + cloudformation_type_name = "AWS::NetworkManager::Link" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_link_association" { + cloudformation_type_name = "AWS::NetworkManager::LinkAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site" { + cloudformation_type_name = "AWS::NetworkManager::Site" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_site_to_site_vpn_attachment" { + cloudformation_type_name = "AWS::NetworkManager::SiteToSiteVpnAttachment" +} + +resource_schema "aws_networkmanager_transit_gateway_peering" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayPeering" +} + +resource_schema "aws_networkmanager_transit_gateway_registration" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRegistration" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_networkmanager_transit_gateway_route_table_attachment" { + cloudformation_type_name = "AWS::NetworkManager::TransitGatewayRouteTableAttachment" +} + +resource_schema "aws_networkmanager_vpc_attachment" { + cloudformation_type_name = "AWS::NetworkManager::VpcAttachment" +} + +resource_schema "aws_osis_pipeline" { + cloudformation_type_name = "AWS::OSIS::Pipeline" +} + +resource_schema "aws_oam_link" { + cloudformation_type_name = "AWS::Oam::Link" +} + +resource_schema "aws_oam_sink" { + cloudformation_type_name = "AWS::Oam::Sink" +} + +resource_schema "aws_omics_annotation_store" { + cloudformation_type_name = "AWS::Omics::AnnotationStore" +} + +resource_schema "aws_omics_reference_store" { + cloudformation_type_name = "AWS::Omics::ReferenceStore" +} + +resource_schema "aws_omics_run_group" { + cloudformation_type_name = "AWS::Omics::RunGroup" +} + +resource_schema "aws_omics_sequence_store" { + cloudformation_type_name = "AWS::Omics::SequenceStore" +} + +resource_schema "aws_omics_variant_store" { + cloudformation_type_name = "AWS::Omics::VariantStore" +} + +resource_schema "aws_omics_workflow" { + cloudformation_type_name = "AWS::Omics::Workflow" +} + +resource_schema "aws_opensearchserverless_access_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::AccessPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_collection" { + cloudformation_type_name = "AWS::OpenSearchServerless::Collection" +} + +resource_schema "aws_opensearchserverless_lifecycle_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::LifecyclePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_config" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityConfig" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_security_policy" { + cloudformation_type_name = "AWS::OpenSearchServerless::SecurityPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opensearchserverless_vpc_endpoint" { + cloudformation_type_name = "AWS::OpenSearchServerless::VpcEndpoint" +} + +resource_schema "aws_opensearchservice_application" { + cloudformation_type_name = "AWS::OpenSearchService::Application" +} + +resource_schema "aws_opensearchservice_domain" { + cloudformation_type_name = "AWS::OpenSearchService::Domain" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_opsworkscm_server" { + cloudformation_type_name = "AWS::OpsWorksCM::Server" +} + +resource_schema "aws_organizations_account" { + cloudformation_type_name = "AWS::Organizations::Account" +} + +resource_schema "aws_organizations_organization" { + cloudformation_type_name = "AWS::Organizations::Organization" +} + +resource_schema "aws_organizations_organizational_unit" { + cloudformation_type_name = "AWS::Organizations::OrganizationalUnit" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_policy" { + cloudformation_type_name = "AWS::Organizations::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_organizations_resource_policy" { + cloudformation_type_name = "AWS::Organizations::ResourcePolicy" +} + +resource_schema "aws_pcaconnectorad_connector" { + cloudformation_type_name = "AWS::PCAConnectorAD::Connector" +} + +resource_schema "aws_pcaconnectorad_directory_registration" { + cloudformation_type_name = "AWS::PCAConnectorAD::DirectoryRegistration" +} + +resource_schema "aws_pcaconnectorad_service_principal_name" { + cloudformation_type_name = "AWS::PCAConnectorAD::ServicePrincipalName" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template" { + cloudformation_type_name = "AWS::PCAConnectorAD::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorad_template_group_access_control_entry" { + cloudformation_type_name = "AWS::PCAConnectorAD::TemplateGroupAccessControlEntry" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_challenge" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Challenge" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_pcaconnectorscep_connector" { + cloudformation_type_name = "AWS::PCAConnectorSCEP::Connector" +} + +resource_schema "aws_panorama_application_instance" { + cloudformation_type_name = "AWS::Panorama::ApplicationInstance" +} + +resource_schema "aws_panorama_package" { + cloudformation_type_name = "AWS::Panorama::Package" +} + +resource_schema "aws_panorama_package_version" { + cloudformation_type_name = "AWS::Panorama::PackageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_paymentcryptography_alias" { + cloudformation_type_name = "AWS::PaymentCryptography::Alias" +} + +resource_schema "aws_paymentcryptography_key" { + cloudformation_type_name = "AWS::PaymentCryptography::Key" +} + +resource_schema "aws_personalize_dataset" { + cloudformation_type_name = "AWS::Personalize::Dataset" +} + +resource_schema "aws_personalize_dataset_group" { + cloudformation_type_name = "AWS::Personalize::DatasetGroup" +} + +resource_schema "aws_personalize_schema" { + cloudformation_type_name = "AWS::Personalize::Schema" +} + +resource_schema "aws_personalize_solution" { + cloudformation_type_name = "AWS::Personalize::Solution" +} + +resource_schema "aws_pinpoint_in_app_template" { + cloudformation_type_name = "AWS::Pinpoint::InAppTemplate" +} + +resource_schema "aws_pipes_pipe" { + cloudformation_type_name = "AWS::Pipes::Pipe" +} + +resource_schema "aws_proton_environment_account_connection" { + cloudformation_type_name = "AWS::Proton::EnvironmentAccountConnection" +} + +resource_schema "aws_proton_environment_template" { + cloudformation_type_name = "AWS::Proton::EnvironmentTemplate" +} + +resource_schema "aws_proton_service_template" { + cloudformation_type_name = "AWS::Proton::ServiceTemplate" +} + +resource_schema "aws_qbusiness_application" { + cloudformation_type_name = "AWS::QBusiness::Application" +} + +resource_schema "aws_qbusiness_data_source" { + cloudformation_type_name = "AWS::QBusiness::DataSource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_index" { + cloudformation_type_name = "AWS::QBusiness::Index" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_plugin" { + cloudformation_type_name = "AWS::QBusiness::Plugin" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_retriever" { + cloudformation_type_name = "AWS::QBusiness::Retriever" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qbusiness_web_experience" { + cloudformation_type_name = "AWS::QBusiness::WebExperience" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_qldb_stream" { + cloudformation_type_name = "AWS::QLDB::Stream" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_analysis" { + cloudformation_type_name = "AWS::QuickSight::Analysis" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_dashboard" { + cloudformation_type_name = "AWS::QuickSight::Dashboard" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_data_set" { + cloudformation_type_name = "AWS::QuickSight::DataSet" +} + +resource_schema "aws_quicksight_data_source" { + cloudformation_type_name = "AWS::QuickSight::DataSource" +} + +resource_schema "aws_quicksight_folder" { + cloudformation_type_name = "AWS::QuickSight::Folder" +} + +resource_schema "aws_quicksight_refresh_schedule" { + cloudformation_type_name = "AWS::QuickSight::RefreshSchedule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_template" { + cloudformation_type_name = "AWS::QuickSight::Template" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_theme" { + cloudformation_type_name = "AWS::QuickSight::Theme" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_quicksight_topic" { + cloudformation_type_name = "AWS::QuickSight::Topic" +} + +resource_schema "aws_quicksight_vpc_connection" { + cloudformation_type_name = "AWS::QuickSight::VPCConnection" +} + +resource_schema "aws_ram_permission" { + cloudformation_type_name = "AWS::RAM::Permission" +} + +resource_schema "aws_rds_custom_db_engine_version" { + cloudformation_type_name = "AWS::RDS::CustomDBEngineVersion" +} + +resource_schema "aws_rds_db_cluster" { + cloudformation_type_name = "AWS::RDS::DBCluster" +} + +resource_schema "aws_rds_db_cluster_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBClusterParameterGroup" +} + +resource_schema "aws_rds_db_instance" { + cloudformation_type_name = "AWS::RDS::DBInstance" +} + +resource_schema "aws_rds_db_parameter_group" { + cloudformation_type_name = "AWS::RDS::DBParameterGroup" +} + +resource_schema "aws_rds_db_proxy" { + cloudformation_type_name = "AWS::RDS::DBProxy" +} + +resource_schema "aws_rds_db_proxy_endpoint" { + cloudformation_type_name = "AWS::RDS::DBProxyEndpoint" +} + +resource_schema "aws_rds_db_proxy_target_group" { + cloudformation_type_name = "AWS::RDS::DBProxyTargetGroup" +} + +resource_schema "aws_rds_db_shard_group" { + cloudformation_type_name = "AWS::RDS::DBShardGroup" +} + +resource_schema "aws_rds_db_subnet_group" { + cloudformation_type_name = "AWS::RDS::DBSubnetGroup" +} + +resource_schema "aws_rds_event_subscription" { + cloudformation_type_name = "AWS::RDS::EventSubscription" +} + +resource_schema "aws_rds_global_cluster" { + cloudformation_type_name = "AWS::RDS::GlobalCluster" +} + +resource_schema "aws_rds_integration" { + cloudformation_type_name = "AWS::RDS::Integration" +} + +resource_schema "aws_rds_option_group" { + cloudformation_type_name = "AWS::RDS::OptionGroup" +} + +resource_schema "aws_rum_app_monitor" { + cloudformation_type_name = "AWS::RUM::AppMonitor" +} + +resource_schema "aws_redshift_cluster" { + cloudformation_type_name = "AWS::Redshift::Cluster" +} + +resource_schema "aws_redshift_cluster_parameter_group" { + cloudformation_type_name = "AWS::Redshift::ClusterParameterGroup" +} + +resource_schema "aws_redshift_cluster_subnet_group" { + cloudformation_type_name = "AWS::Redshift::ClusterSubnetGroup" +} + +resource_schema "aws_redshift_endpoint_access" { + cloudformation_type_name = "AWS::Redshift::EndpointAccess" +} + +resource_schema "aws_redshift_endpoint_authorization" { + cloudformation_type_name = "AWS::Redshift::EndpointAuthorization" +} + +resource_schema "aws_redshift_event_subscription" { + cloudformation_type_name = "AWS::Redshift::EventSubscription" +} + +resource_schema "aws_redshift_integration" { + cloudformation_type_name = "AWS::Redshift::Integration" +} + +resource_schema "aws_redshift_scheduled_action" { + cloudformation_type_name = "AWS::Redshift::ScheduledAction" +} + +resource_schema "aws_redshiftserverless_namespace" { + cloudformation_type_name = "AWS::RedshiftServerless::Namespace" +} + +resource_schema "aws_redshiftserverless_workgroup" { + cloudformation_type_name = "AWS::RedshiftServerless::Workgroup" +} + +resource_schema "aws_refactorspaces_application" { + cloudformation_type_name = "AWS::RefactorSpaces::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_environment" { + cloudformation_type_name = "AWS::RefactorSpaces::Environment" +} + +resource_schema "aws_refactorspaces_route" { + cloudformation_type_name = "AWS::RefactorSpaces::Route" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_refactorspaces_service" { + cloudformation_type_name = "AWS::RefactorSpaces::Service" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rekognition_collection" { + cloudformation_type_name = "AWS::Rekognition::Collection" +} + +resource_schema "aws_rekognition_project" { + cloudformation_type_name = "AWS::Rekognition::Project" +} + +resource_schema "aws_rekognition_stream_processor" { + cloudformation_type_name = "AWS::Rekognition::StreamProcessor" +} + +resource_schema "aws_resiliencehub_app" { + cloudformation_type_name = "AWS::ResilienceHub::App" +} + +resource_schema "aws_resiliencehub_resiliency_policy" { + cloudformation_type_name = "AWS::ResilienceHub::ResiliencyPolicy" +} + +resource_schema "aws_resourceexplorer2_default_view_association" { + cloudformation_type_name = "AWS::ResourceExplorer2::DefaultViewAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_resourceexplorer2_index" { + cloudformation_type_name = "AWS::ResourceExplorer2::Index" +} + +resource_schema "aws_resourceexplorer2_view" { + cloudformation_type_name = "AWS::ResourceExplorer2::View" +} + +resource_schema "aws_resourcegroups_group" { + cloudformation_type_name = "AWS::ResourceGroups::Group" +} + +resource_schema "aws_robomaker_fleet" { + cloudformation_type_name = "AWS::RoboMaker::Fleet" +} + +resource_schema "aws_robomaker_robot" { + cloudformation_type_name = "AWS::RoboMaker::Robot" +} + +resource_schema "aws_robomaker_robot_application" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplication" +} + +resource_schema "aws_robomaker_robot_application_version" { + cloudformation_type_name = "AWS::RoboMaker::RobotApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_robomaker_simulation_application" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplication" +} + +resource_schema "aws_robomaker_simulation_application_version" { + cloudformation_type_name = "AWS::RoboMaker::SimulationApplicationVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_rolesanywhere_crl" { + cloudformation_type_name = "AWS::RolesAnywhere::CRL" +} + +resource_schema "aws_rolesanywhere_profile" { + cloudformation_type_name = "AWS::RolesAnywhere::Profile" +} + +resource_schema "aws_rolesanywhere_trust_anchor" { + cloudformation_type_name = "AWS::RolesAnywhere::TrustAnchor" +} + +resource_schema "aws_route53_cidr_collection" { + cloudformation_type_name = "AWS::Route53::CidrCollection" +} + +resource_schema "aws_route53_dnssec" { + cloudformation_type_name = "AWS::Route53::DNSSEC" +} + +resource_schema "aws_route53_health_check" { + cloudformation_type_name = "AWS::Route53::HealthCheck" +} + +resource_schema "aws_route53_hosted_zone" { + cloudformation_type_name = "AWS::Route53::HostedZone" +} + +resource_schema "aws_route53_key_signing_key" { + cloudformation_type_name = "AWS::Route53::KeySigningKey" +} + +resource_schema "aws_route53profiles_profile" { + cloudformation_type_name = "AWS::Route53Profiles::Profile" +} + +resource_schema "aws_route53profiles_profile_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileAssociation" +} + +resource_schema "aws_route53profiles_profile_resource_association" { + cloudformation_type_name = "AWS::Route53Profiles::ProfileResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_cluster" { + cloudformation_type_name = "AWS::Route53RecoveryControl::Cluster" +} + +resource_schema "aws_route53recoverycontrol_control_panel" { + cloudformation_type_name = "AWS::Route53RecoveryControl::ControlPanel" +} + +resource_schema "aws_route53recoverycontrol_routing_control" { + cloudformation_type_name = "AWS::Route53RecoveryControl::RoutingControl" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoverycontrol_safety_rule" { + cloudformation_type_name = "AWS::Route53RecoveryControl::SafetyRule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_route53recoveryreadiness_cell" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::Cell" +} + +resource_schema "aws_route53recoveryreadiness_readiness_check" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ReadinessCheck" +} + +resource_schema "aws_route53recoveryreadiness_recovery_group" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::RecoveryGroup" +} + +resource_schema "aws_route53recoveryreadiness_resource_set" { + cloudformation_type_name = "AWS::Route53RecoveryReadiness::ResourceSet" +} + +resource_schema "aws_route53resolver_firewall_domain_list" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallDomainList" +} + +resource_schema "aws_route53resolver_firewall_rule_group" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroup" +} + +resource_schema "aws_route53resolver_firewall_rule_group_association" { + cloudformation_type_name = "AWS::Route53Resolver::FirewallRuleGroupAssociation" +} + +resource_schema "aws_route53resolver_outpost_resolver" { + cloudformation_type_name = "AWS::Route53Resolver::OutpostResolver" +} + +resource_schema "aws_route53resolver_resolver_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverConfig" +} + +resource_schema "aws_route53resolver_resolver_dnssec_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverDNSSECConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfig" +} + +resource_schema "aws_route53resolver_resolver_query_logging_config_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation" +} + +resource_schema "aws_route53resolver_resolver_rule" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRule" +} + +resource_schema "aws_route53resolver_resolver_rule_association" { + cloudformation_type_name = "AWS::Route53Resolver::ResolverRuleAssociation" +} + +resource_schema "aws_s3_access_grant" { + cloudformation_type_name = "AWS::S3::AccessGrant" +} + +resource_schema "aws_s3_access_grants_instance" { + cloudformation_type_name = "AWS::S3::AccessGrantsInstance" +} + +resource_schema "aws_s3_access_grants_location" { + cloudformation_type_name = "AWS::S3::AccessGrantsLocation" +} + +resource_schema "aws_s3_access_point" { + cloudformation_type_name = "AWS::S3::AccessPoint" +} + +resource_schema "aws_s3_bucket" { + cloudformation_type_name = "AWS::S3::Bucket" +} + +resource_schema "aws_s3_bucket_policy" { + cloudformation_type_name = "AWS::S3::BucketPolicy" +} + +resource_schema "aws_s3_multi_region_access_point" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPoint" +} + +resource_schema "aws_s3_multi_region_access_point_policy" { + cloudformation_type_name = "AWS::S3::MultiRegionAccessPointPolicy" +} + +resource_schema "aws_s3_storage_lens" { + cloudformation_type_name = "AWS::S3::StorageLens" +} + +resource_schema "aws_s3_storage_lens_group" { + cloudformation_type_name = "AWS::S3::StorageLensGroup" +} + +resource_schema "aws_s3express_bucket_policy" { + cloudformation_type_name = "AWS::S3Express::BucketPolicy" +} + +resource_schema "aws_s3express_directory_bucket" { + cloudformation_type_name = "AWS::S3Express::DirectoryBucket" +} + +resource_schema "aws_s3objectlambda_access_point" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPoint" +} + +resource_schema "aws_s3objectlambda_access_point_policy" { + cloudformation_type_name = "AWS::S3ObjectLambda::AccessPointPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_access_point" { + cloudformation_type_name = "AWS::S3Outposts::AccessPoint" +} + +resource_schema "aws_s3outposts_bucket" { + cloudformation_type_name = "AWS::S3Outposts::Bucket" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_bucket_policy" { + cloudformation_type_name = "AWS::S3Outposts::BucketPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_s3outposts_endpoint" { + cloudformation_type_name = "AWS::S3Outposts::Endpoint" +} + +resource_schema "aws_ses_configuration_set" { + cloudformation_type_name = "AWS::SES::ConfigurationSet" +} + +resource_schema "aws_ses_configuration_set_event_destination" { + cloudformation_type_name = "AWS::SES::ConfigurationSetEventDestination" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ses_contact_list" { + cloudformation_type_name = "AWS::SES::ContactList" +} + +resource_schema "aws_ses_dedicated_ip_pool" { + cloudformation_type_name = "AWS::SES::DedicatedIpPool" +} + +resource_schema "aws_ses_email_identity" { + cloudformation_type_name = "AWS::SES::EmailIdentity" +} + +resource_schema "aws_ses_mail_manager_addon_instance" { + cloudformation_type_name = "AWS::SES::MailManagerAddonInstance" +} + +resource_schema "aws_ses_mail_manager_addon_subscription" { + cloudformation_type_name = "AWS::SES::MailManagerAddonSubscription" +} + +resource_schema "aws_ses_mail_manager_archive" { + cloudformation_type_name = "AWS::SES::MailManagerArchive" +} + +resource_schema "aws_ses_mail_manager_ingress_point" { + cloudformation_type_name = "AWS::SES::MailManagerIngressPoint" +} + +resource_schema "aws_ses_mail_manager_relay" { + cloudformation_type_name = "AWS::SES::MailManagerRelay" +} + +resource_schema "aws_ses_mail_manager_rule_set" { + cloudformation_type_name = "AWS::SES::MailManagerRuleSet" +} + +resource_schema "aws_ses_mail_manager_traffic_policy" { + cloudformation_type_name = "AWS::SES::MailManagerTrafficPolicy" +} + +resource_schema "aws_ses_template" { + cloudformation_type_name = "AWS::SES::Template" +} + +resource_schema "aws_ses_vdm_attributes" { + cloudformation_type_name = "AWS::SES::VdmAttributes" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sns_subscription" { + cloudformation_type_name = "AWS::SNS::Subscription" +} + +resource_schema "aws_sns_topic" { + cloudformation_type_name = "AWS::SNS::Topic" +} + +resource_schema "aws_sns_topic_inline_policy" { + cloudformation_type_name = "AWS::SNS::TopicInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sqs_queue" { + cloudformation_type_name = "AWS::SQS::Queue" +} + +resource_schema "aws_sqs_queue_inline_policy" { + cloudformation_type_name = "AWS::SQS::QueueInlinePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssm_association" { + cloudformation_type_name = "AWS::SSM::Association" +} + +resource_schema "aws_ssm_document" { + cloudformation_type_name = "AWS::SSM::Document" +} + +resource_schema "aws_ssm_parameter" { + cloudformation_type_name = "AWS::SSM::Parameter" +} + +resource_schema "aws_ssm_patch_baseline" { + cloudformation_type_name = "AWS::SSM::PatchBaseline" +} + +resource_schema "aws_ssm_resource_data_sync" { + cloudformation_type_name = "AWS::SSM::ResourceDataSync" +} + +resource_schema "aws_ssm_resource_policy" { + cloudformation_type_name = "AWS::SSM::ResourcePolicy" +} + +resource_schema "aws_ssmcontacts_contact" { + cloudformation_type_name = "AWS::SSMContacts::Contact" +} + +resource_schema "aws_ssmcontacts_contact_channel" { + cloudformation_type_name = "AWS::SSMContacts::ContactChannel" +} + +resource_schema "aws_ssmcontacts_plan" { + cloudformation_type_name = "AWS::SSMContacts::Plan" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_ssmcontacts_rotation" { + cloudformation_type_name = "AWS::SSMContacts::Rotation" +} + +resource_schema "aws_ssmincidents_replication_set" { + cloudformation_type_name = "AWS::SSMIncidents::ReplicationSet" +} + +resource_schema "aws_ssmincidents_response_plan" { + cloudformation_type_name = "AWS::SSMIncidents::ResponsePlan" +} + +resource_schema "aws_ssmquicksetup_configuration_manager" { + cloudformation_type_name = "AWS::SSMQuickSetup::ConfigurationManager" +} + +resource_schema "aws_sso_application" { + cloudformation_type_name = "AWS::SSO::Application" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sso_application_assignment" { + cloudformation_type_name = "AWS::SSO::ApplicationAssignment" +} + +resource_schema "aws_sso_assignment" { + cloudformation_type_name = "AWS::SSO::Assignment" +} + +resource_schema "aws_sso_instance" { + cloudformation_type_name = "AWS::SSO::Instance" +} + +resource_schema "aws_sso_instance_access_control_attribute_configuration" { + cloudformation_type_name = "AWS::SSO::InstanceAccessControlAttributeConfiguration" +} + +resource_schema "aws_sso_permission_set" { + cloudformation_type_name = "AWS::SSO::PermissionSet" +} + +resource_schema "aws_sagemaker_app" { + cloudformation_type_name = "AWS::SageMaker::App" +} + +resource_schema "aws_sagemaker_app_image_config" { + cloudformation_type_name = "AWS::SageMaker::AppImageConfig" +} + +resource_schema "aws_sagemaker_cluster" { + cloudformation_type_name = "AWS::SageMaker::Cluster" +} + +resource_schema "aws_sagemaker_data_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::DataQualityJobDefinition" +} + +resource_schema "aws_sagemaker_device" { + cloudformation_type_name = "AWS::SageMaker::Device" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_device_fleet" { + cloudformation_type_name = "AWS::SageMaker::DeviceFleet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_domain" { + cloudformation_type_name = "AWS::SageMaker::Domain" +} + +resource_schema "aws_sagemaker_endpoint" { + cloudformation_type_name = "AWS::SageMaker::Endpoint" +} + +resource_schema "aws_sagemaker_feature_group" { + cloudformation_type_name = "AWS::SageMaker::FeatureGroup" +} + +resource_schema "aws_sagemaker_image" { + cloudformation_type_name = "AWS::SageMaker::Image" +} + +resource_schema "aws_sagemaker_image_version" { + cloudformation_type_name = "AWS::SageMaker::ImageVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_sagemaker_inference_component" { + cloudformation_type_name = "AWS::SageMaker::InferenceComponent" +} + +resource_schema "aws_sagemaker_inference_experiment" { + cloudformation_type_name = "AWS::SageMaker::InferenceExperiment" +} + +resource_schema "aws_sagemaker_mlflow_tracking_server" { + cloudformation_type_name = "AWS::SageMaker::MlflowTrackingServer" +} + +resource_schema "aws_sagemaker_model_bias_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelBiasJobDefinition" +} + +resource_schema "aws_sagemaker_model_card" { + cloudformation_type_name = "AWS::SageMaker::ModelCard" +} + +resource_schema "aws_sagemaker_model_explainability_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelExplainabilityJobDefinition" +} + +resource_schema "aws_sagemaker_model_package" { + cloudformation_type_name = "AWS::SageMaker::ModelPackage" +} + +resource_schema "aws_sagemaker_model_package_group" { + cloudformation_type_name = "AWS::SageMaker::ModelPackageGroup" +} + +resource_schema "aws_sagemaker_model_quality_job_definition" { + cloudformation_type_name = "AWS::SageMaker::ModelQualityJobDefinition" +} + +resource_schema "aws_sagemaker_monitoring_schedule" { + cloudformation_type_name = "AWS::SageMaker::MonitoringSchedule" +} + +resource_schema "aws_sagemaker_pipeline" { + cloudformation_type_name = "AWS::SageMaker::Pipeline" +} + +resource_schema "aws_sagemaker_project" { + cloudformation_type_name = "AWS::SageMaker::Project" +} + +resource_schema "aws_sagemaker_space" { + cloudformation_type_name = "AWS::SageMaker::Space" +} + +resource_schema "aws_sagemaker_studio_lifecycle_config" { + cloudformation_type_name = "AWS::SageMaker::StudioLifecycleConfig" +} + +resource_schema "aws_sagemaker_user_profile" { + cloudformation_type_name = "AWS::SageMaker::UserProfile" +} + +resource_schema "aws_scheduler_schedule" { + cloudformation_type_name = "AWS::Scheduler::Schedule" +} + +resource_schema "aws_scheduler_schedule_group" { + cloudformation_type_name = "AWS::Scheduler::ScheduleGroup" +} + +resource_schema "aws_secretsmanager_resource_policy" { + cloudformation_type_name = "AWS::SecretsManager::ResourcePolicy" +} + +resource_schema "aws_secretsmanager_rotation_schedule" { + cloudformation_type_name = "AWS::SecretsManager::RotationSchedule" +} + +resource_schema "aws_secretsmanager_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +resource_schema "aws_secretsmanager_secret_target_attachment" { + cloudformation_type_name = "AWS::SecretsManager::SecretTargetAttachment" +} + +resource_schema "aws_securityhub_automation_rule" { + cloudformation_type_name = "AWS::SecurityHub::AutomationRule" +} + +resource_schema "aws_securityhub_configuration_policy" { + cloudformation_type_name = "AWS::SecurityHub::ConfigurationPolicy" +} + +resource_schema "aws_securityhub_delegated_admin" { + cloudformation_type_name = "AWS::SecurityHub::DelegatedAdmin" +} + +resource_schema "aws_securityhub_finding_aggregator" { + cloudformation_type_name = "AWS::SecurityHub::FindingAggregator" +} + +resource_schema "aws_securityhub_hub" { + cloudformation_type_name = "AWS::SecurityHub::Hub" +} + +resource_schema "aws_securityhub_insight" { + cloudformation_type_name = "AWS::SecurityHub::Insight" +} + +resource_schema "aws_securityhub_organization_configuration" { + cloudformation_type_name = "AWS::SecurityHub::OrganizationConfiguration" +} + +resource_schema "aws_securityhub_policy_association" { + cloudformation_type_name = "AWS::SecurityHub::PolicyAssociation" +} + +resource_schema "aws_securityhub_product_subscription" { + cloudformation_type_name = "AWS::SecurityHub::ProductSubscription" +} + +resource_schema "aws_securityhub_security_control" { + cloudformation_type_name = "AWS::SecurityHub::SecurityControl" +} + +resource_schema "aws_securityhub_standard" { + cloudformation_type_name = "AWS::SecurityHub::Standard" +} + +resource_schema "aws_securitylake_aws_log_source" { + cloudformation_type_name = "AWS::SecurityLake::AwsLogSource" +} + +resource_schema "aws_securitylake_data_lake" { + cloudformation_type_name = "AWS::SecurityLake::DataLake" +} + +resource_schema "aws_securitylake_subscriber" { + cloudformation_type_name = "AWS::SecurityLake::Subscriber" +} + +resource_schema "aws_securitylake_subscriber_notification" { + cloudformation_type_name = "AWS::SecurityLake::SubscriberNotification" +} + +resource_schema "aws_servicecatalog_cloudformation_provisioned_product" { + cloudformation_type_name = "AWS::ServiceCatalog::CloudFormationProvisionedProduct" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalog_service_action" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceAction" +} + +resource_schema "aws_servicecatalog_service_action_association" { + cloudformation_type_name = "AWS::ServiceCatalog::ServiceActionAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_application" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::Application" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroup" +} + +resource_schema "aws_servicecatalogappregistry_attribute_group_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_servicecatalogappregistry_resource_association" { + cloudformation_type_name = "AWS::ServiceCatalogAppRegistry::ResourceAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_shield_drt_access" { + cloudformation_type_name = "AWS::Shield::DRTAccess" +} + +resource_schema "aws_shield_proactive_engagement" { + cloudformation_type_name = "AWS::Shield::ProactiveEngagement" +} + +resource_schema "aws_shield_protection" { + cloudformation_type_name = "AWS::Shield::Protection" +} + +resource_schema "aws_shield_protection_group" { + cloudformation_type_name = "AWS::Shield::ProtectionGroup" +} + +resource_schema "aws_signer_profile_permission" { + cloudformation_type_name = "AWS::Signer::ProfilePermission" +} + +resource_schema "aws_signer_signing_profile" { + cloudformation_type_name = "AWS::Signer::SigningProfile" +} + +resource_schema "aws_simspaceweaver_simulation" { + cloudformation_type_name = "AWS::SimSpaceWeaver::Simulation" +} + +resource_schema "aws_stepfunctions_activity" { + cloudformation_type_name = "AWS::StepFunctions::Activity" +} + +resource_schema "aws_stepfunctions_state_machine" { + cloudformation_type_name = "AWS::StepFunctions::StateMachine" +} + +resource_schema "aws_stepfunctions_state_machine_alias" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_stepfunctions_state_machine_version" { + cloudformation_type_name = "AWS::StepFunctions::StateMachineVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_supportapp_account_alias" { + cloudformation_type_name = "AWS::SupportApp::AccountAlias" +} + +resource_schema "aws_supportapp_slack_channel_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackChannelConfiguration" +} + +resource_schema "aws_supportapp_slack_workspace_configuration" { + cloudformation_type_name = "AWS::SupportApp::SlackWorkspaceConfiguration" +} + +resource_schema "aws_synthetics_canary" { + cloudformation_type_name = "AWS::Synthetics::Canary" +} + +resource_schema "aws_synthetics_group" { + cloudformation_type_name = "AWS::Synthetics::Group" +} + +resource_schema "aws_systemsmanagersap_application" { + cloudformation_type_name = "AWS::SystemsManagerSAP::Application" +} + +resource_schema "aws_timestream_database" { + cloudformation_type_name = "AWS::Timestream::Database" +} + +resource_schema "aws_timestream_influx_db_instance" { + cloudformation_type_name = "AWS::Timestream::InfluxDBInstance" +} + +resource_schema "aws_timestream_scheduled_query" { + cloudformation_type_name = "AWS::Timestream::ScheduledQuery" +} + +resource_schema "aws_timestream_table" { + cloudformation_type_name = "AWS::Timestream::Table" +} + +resource_schema "aws_transfer_agreement" { + cloudformation_type_name = "AWS::Transfer::Agreement" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_certificate" { + cloudformation_type_name = "AWS::Transfer::Certificate" +} + +resource_schema "aws_transfer_connector" { + cloudformation_type_name = "AWS::Transfer::Connector" +} + +resource_schema "aws_transfer_profile" { + cloudformation_type_name = "AWS::Transfer::Profile" +} + +resource_schema "aws_transfer_server" { + cloudformation_type_name = "AWS::Transfer::Server" +} + +resource_schema "aws_transfer_user" { + cloudformation_type_name = "AWS::Transfer::User" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_transfer_workflow" { + cloudformation_type_name = "AWS::Transfer::Workflow" +} + +resource_schema "aws_verifiedpermissions_identity_source" { + cloudformation_type_name = "AWS::VerifiedPermissions::IdentitySource" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy" { + cloudformation_type_name = "AWS::VerifiedPermissions::Policy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_verifiedpermissions_policy_store" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyStore" +} + +resource_schema "aws_verifiedpermissions_policy_template" { + cloudformation_type_name = "AWS::VerifiedPermissions::PolicyTemplate" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_voiceid_domain" { + cloudformation_type_name = "AWS::VoiceID::Domain" +} + +resource_schema "aws_vpclattice_access_log_subscription" { + cloudformation_type_name = "AWS::VpcLattice::AccessLogSubscription" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_auth_policy" { + cloudformation_type_name = "AWS::VpcLattice::AuthPolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_listener" { + cloudformation_type_name = "AWS::VpcLattice::Listener" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_resource_policy" { + cloudformation_type_name = "AWS::VpcLattice::ResourcePolicy" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_rule" { + cloudformation_type_name = "AWS::VpcLattice::Rule" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_vpclattice_service" { + cloudformation_type_name = "AWS::VpcLattice::Service" +} + +resource_schema "aws_vpclattice_service_network" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetwork" +} + +resource_schema "aws_vpclattice_service_network_service_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkServiceAssociation" +} + +resource_schema "aws_vpclattice_service_network_vpc_association" { + cloudformation_type_name = "AWS::VpcLattice::ServiceNetworkVpcAssociation" +} + +resource_schema "aws_vpclattice_target_group" { + cloudformation_type_name = "AWS::VpcLattice::TargetGroup" +} + +resource_schema "aws_wafv2_ip_set" { + cloudformation_type_name = "AWS::WAFv2::IPSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_logging_configuration" { + cloudformation_type_name = "AWS::WAFv2::LoggingConfiguration" +} + +resource_schema "aws_wafv2_regex_pattern_set" { + cloudformation_type_name = "AWS::WAFv2::RegexPatternSet" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_rule_group" { + cloudformation_type_name = "AWS::WAFv2::RuleGroup" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl" { + cloudformation_type_name = "AWS::WAFv2::WebACL" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wafv2_web_acl_association" { + cloudformation_type_name = "AWS::WAFv2::WebACLAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent" { + cloudformation_type_name = "AWS::Wisdom::AIAgent" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_agent_version" { + cloudformation_type_name = "AWS::Wisdom::AIAgentVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt" { + cloudformation_type_name = "AWS::Wisdom::AIPrompt" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_ai_prompt_version" { + cloudformation_type_name = "AWS::Wisdom::AIPromptVersion" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_assistant" { + cloudformation_type_name = "AWS::Wisdom::Assistant" +} + +resource_schema "aws_wisdom_assistant_association" { + cloudformation_type_name = "AWS::Wisdom::AssistantAssociation" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_wisdom_knowledge_base" { + cloudformation_type_name = "AWS::Wisdom::KnowledgeBase" +} + +resource_schema "aws_workspaces_connection_alias" { + cloudformation_type_name = "AWS::WorkSpaces::ConnectionAlias" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspaces_workspaces_pool" { + cloudformation_type_name = "AWS::WorkSpaces::WorkspacesPool" +} + +resource_schema "aws_workspacesthinclient_environment" { + cloudformation_type_name = "AWS::WorkSpacesThinClient::Environment" +} + +resource_schema "aws_workspacesweb_browser_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::BrowserSettings" +} + +resource_schema "aws_workspacesweb_identity_provider" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IdentityProvider" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_workspacesweb_ip_access_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::IpAccessSettings" +} + +resource_schema "aws_workspacesweb_network_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::NetworkSettings" +} + +resource_schema "aws_workspacesweb_portal" { + cloudformation_type_name = "AWS::WorkSpacesWeb::Portal" +} + +resource_schema "aws_workspacesweb_trust_store" { + cloudformation_type_name = "AWS::WorkSpacesWeb::TrustStore" +} + +resource_schema "aws_workspacesweb_user_access_logging_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserAccessLoggingSettings" +} + +resource_schema "aws_workspacesweb_user_settings" { + cloudformation_type_name = "AWS::WorkSpacesWeb::UserSettings" +} + +resource_schema "aws_xray_group" { + cloudformation_type_name = "AWS::XRay::Group" +} + +resource_schema "aws_xray_resource_policy" { + cloudformation_type_name = "AWS::XRay::ResourcePolicy" +} + +resource_schema "aws_xray_sampling_rule" { + cloudformation_type_name = "AWS::XRay::SamplingRule" +} diff --git a/internal/provider/import_examples_gen.json b/internal/provider/import_examples_gen.json index c27d6e86be..63c75f3581 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -339,6 +339,11 @@ "identifier": ["ApiArn"], "path": "./examples/resources/awscc_appsync_api/import.sh" }, + { + "resource": "awscc_appsync_channel_namespace", + "identifier": ["ChannelNamespaceArn"], + "path": "./examples/resources/awscc_appsync_channel_namespace/import.sh" + }, { "resource": "awscc_appsync_data_source", "identifier": ["DataSourceArn"], @@ -549,6 +554,11 @@ "identifier": ["AgentId","AgentAliasId"], "path": "./examples/resources/awscc_bedrock_agent_alias/import.sh" }, + { + "resource": "awscc_bedrock_application_inference_profile", + "identifier": ["InferenceProfileIdentifier"], + "path": "./examples/resources/awscc_bedrock_application_inference_profile/import.sh" + }, { "resource": "awscc_bedrock_data_source", "identifier": ["KnowledgeBaseId","DataSourceId"], @@ -1694,6 +1704,11 @@ "identifier": ["Id"], "path": "./examples/resources/awscc_ec2_security_group_ingress/import.sh" }, + { + "resource": "awscc_ec2_security_group_vpc_association", + "identifier": ["GroupId","VpcId"], + "path": "./examples/resources/awscc_ec2_security_group_vpc_association/import.sh" + }, { "resource": "awscc_ec2_snapshot_block_public_access", "identifier": ["AccountId"], @@ -3711,12 +3726,12 @@ }, { "resource": "awscc_nimblestudio_launch_profile", - "identifier": ["LaunchProfileId","StudioId"], + "identifier": ["LaunchProfileId"], "path": "./examples/resources/awscc_nimblestudio_launch_profile/import.sh" }, { "resource": "awscc_nimblestudio_streaming_image", - "identifier": ["StudioId","StreamingImageId"], + "identifier": ["StreamingImageId"], "path": "./examples/resources/awscc_nimblestudio_streaming_image/import.sh" }, { @@ -3726,7 +3741,7 @@ }, { "resource": "awscc_nimblestudio_studio_component", - "identifier": ["StudioComponentId","StudioId"], + "identifier": ["StudioComponentId"], "path": "./examples/resources/awscc_nimblestudio_studio_component/import.sh" }, { @@ -4074,6 +4089,11 @@ "identifier": ["TargetGroupArn"], "path": "./examples/resources/awscc_rds_db_proxy_target_group/import.sh" }, + { + "resource": "awscc_rds_db_shard_group", + "identifier": ["DBShardGroupIdentifier"], + "path": "./examples/resources/awscc_rds_db_shard_group/import.sh" + }, { "resource": "awscc_rds_db_subnet_group", "identifier": ["DBSubnetGroupName"], @@ -5159,11 +5179,26 @@ "identifier": ["ResourceArn","WebACLArn"], "path": "./examples/resources/awscc_wafv2_web_acl_association/import.sh" }, + { + "resource": "awscc_wisdom_ai_agent", + "identifier": ["AIAgentId","AssistantId"], + "path": "./examples/resources/awscc_wisdom_ai_agent/import.sh" + }, + { + "resource": "awscc_wisdom_ai_agent_version", + "identifier": ["AssistantId","AIAgentId","VersionNumber"], + "path": "./examples/resources/awscc_wisdom_ai_agent_version/import.sh" + }, { "resource": "awscc_wisdom_ai_prompt", "identifier": ["AIPromptId","AssistantId"], "path": "./examples/resources/awscc_wisdom_ai_prompt/import.sh" }, + { + "resource": "awscc_wisdom_ai_prompt_version", + "identifier": ["AssistantId","AIPromptId","VersionNumber"], + "path": "./examples/resources/awscc_wisdom_ai_prompt_version/import.sh" + }, { "resource": "awscc_wisdom_assistant", "identifier": ["AssistantId"], diff --git a/internal/provider/plural_data_sources.go b/internal/provider/plural_data_sources.go index 786ebef26d..8474417213 100644 --- a/internal/provider/plural_data_sources.go +++ b/internal/provider/plural_data_sources.go @@ -73,6 +73,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_job_queues -cftype AWS::Batch::JobQueue -package batch ../aws/batch/job_queue_plural_data_source_gen.go ../aws/batch/job_queue_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_batch_scheduling_policies -cftype AWS::Batch::SchedulingPolicy -package batch ../aws/batch/scheduling_policy_plural_data_source_gen.go ../aws/batch/scheduling_policy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_agents -cftype AWS::Bedrock::Agent -package bedrock ../aws/bedrock/agent_plural_data_source_gen.go ../aws/bedrock/agent_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_application_inference_profiles -cftype AWS::Bedrock::ApplicationInferenceProfile -package bedrock ../aws/bedrock/application_inference_profile_plural_data_source_gen.go ../aws/bedrock/application_inference_profile_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_guardrails -cftype AWS::Bedrock::Guardrail -package bedrock ../aws/bedrock/guardrail_plural_data_source_gen.go ../aws/bedrock/guardrail_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_knowledge_bases -cftype AWS::Bedrock::KnowledgeBase -package bedrock ../aws/bedrock/knowledge_base_plural_data_source_gen.go ../aws/bedrock/knowledge_base_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_bedrock_prompts -cftype AWS::Bedrock::Prompt -package bedrock ../aws/bedrock/prompt_plural_data_source_gen.go ../aws/bedrock/prompt_plural_data_source_gen_test.go @@ -234,6 +235,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_security_groups -cftype AWS::EC2::SecurityGroup -package ec2 ../aws/ec2/security_group_plural_data_source_gen.go ../aws/ec2/security_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_security_group_egresses -cftype AWS::EC2::SecurityGroupEgress -package ec2 ../aws/ec2/security_group_egress_plural_data_source_gen.go ../aws/ec2/security_group_egress_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_security_group_ingresses -cftype AWS::EC2::SecurityGroupIngress -package ec2 ../aws/ec2/security_group_ingress_plural_data_source_gen.go ../aws/ec2/security_group_ingress_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_security_group_vpc_associations -cftype AWS::EC2::SecurityGroupVpcAssociation -package ec2 ../aws/ec2/security_group_vpc_association_plural_data_source_gen.go ../aws/ec2/security_group_vpc_association_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_snapshot_block_public_accesses -cftype AWS::EC2::SnapshotBlockPublicAccess -package ec2 ../aws/ec2/snapshot_block_public_access_plural_data_source_gen.go ../aws/ec2/snapshot_block_public_access_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_spot_fleets -cftype AWS::EC2::SpotFleet -package ec2 ../aws/ec2/spot_fleet_plural_data_source_gen.go ../aws/ec2/spot_fleet_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_ec2_subnets -cftype AWS::EC2::Subnet -package ec2 ../aws/ec2/subnet_plural_data_source_gen.go ../aws/ec2/subnet_plural_data_source_gen_test.go @@ -617,6 +619,7 @@ //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_proxies -cftype AWS::RDS::DBProxy -package rds ../aws/rds/db_proxy_plural_data_source_gen.go ../aws/rds/db_proxy_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_proxy_endpoints -cftype AWS::RDS::DBProxyEndpoint -package rds ../aws/rds/db_proxy_endpoint_plural_data_source_gen.go ../aws/rds/db_proxy_endpoint_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_proxy_target_groups -cftype AWS::RDS::DBProxyTargetGroup -package rds ../aws/rds/db_proxy_target_group_plural_data_source_gen.go ../aws/rds/db_proxy_target_group_plural_data_source_gen_test.go +//go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_shard_groups -cftype AWS::RDS::DBShardGroup -package rds ../aws/rds/db_shard_group_plural_data_source_gen.go ../aws/rds/db_shard_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_db_subnet_groups -cftype AWS::RDS::DBSubnetGroup -package rds ../aws/rds/db_subnet_group_plural_data_source_gen.go ../aws/rds/db_subnet_group_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_event_subscriptions -cftype AWS::RDS::EventSubscription -package rds ../aws/rds/event_subscription_plural_data_source_gen.go ../aws/rds/event_subscription_plural_data_source_gen_test.go //go:generate go run generators/plural-data-source/main.go -data-source awscc_rds_global_clusters -cftype AWS::RDS::GlobalCluster -package rds ../aws/rds/global_cluster_plural_data_source_gen.go ../aws/rds/global_cluster_plural_data_source_gen_test.go diff --git a/internal/provider/resources.go b/internal/provider/resources.go index ce6c1665f9..2462b8cc5e 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -70,6 +70,7 @@ //go:generate go run generators/resource/main.go -resource awscc_appstream_entitlement -cfschema ../service/cloudformation/schemas/AWS_AppStream_Entitlement.json -package appstream -- ../aws/appstream/entitlement_resource_gen.go ../aws/appstream/entitlement_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appstream_image_builder -cfschema ../service/cloudformation/schemas/AWS_AppStream_ImageBuilder.json -package appstream -- ../aws/appstream/image_builder_resource_gen.go ../aws/appstream/image_builder_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_api -cfschema ../service/cloudformation/schemas/AWS_AppSync_Api.json -package appsync -- ../aws/appsync/api_resource_gen.go ../aws/appsync/api_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_appsync_channel_namespace -cfschema ../service/cloudformation/schemas/AWS_AppSync_ChannelNamespace.json -package appsync -- ../aws/appsync/channel_namespace_resource_gen.go ../aws/appsync/channel_namespace_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_data_source -cfschema ../service/cloudformation/schemas/AWS_AppSync_DataSource.json -package appsync -- ../aws/appsync/data_source_resource_gen.go ../aws/appsync/data_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_domain_name -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainName.json -package appsync -- ../aws/appsync/domain_name_resource_gen.go ../aws/appsync/domain_name_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_appsync_domain_name_api_association -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainNameApiAssociation.json -package appsync -- ../aws/appsync/domain_name_api_association_resource_gen.go ../aws/appsync/domain_name_api_association_resource_gen_test.go @@ -112,6 +113,7 @@ //go:generate go run generators/resource/main.go -resource awscc_batch_scheduling_policy -cfschema ../service/cloudformation/schemas/AWS_Batch_SchedulingPolicy.json -package batch -- ../aws/batch/scheduling_policy_resource_gen.go ../aws/batch/scheduling_policy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock -- ../aws/bedrock/agent_resource_gen.go ../aws/bedrock/agent_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock -- ../aws/bedrock/agent_alias_resource_gen.go ../aws/bedrock/agent_alias_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_bedrock_application_inference_profile -cfschema ../service/cloudformation/schemas/AWS_Bedrock_ApplicationInferenceProfile.json -package bedrock -- ../aws/bedrock/application_inference_profile_resource_gen.go ../aws/bedrock/application_inference_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock -- ../aws/bedrock/data_source_resource_gen.go ../aws/bedrock/data_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock -- ../aws/bedrock/flow_alias_resource_gen.go ../aws/bedrock/flow_alias_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock -- ../aws/bedrock/flow_version_resource_gen.go ../aws/bedrock/flow_version_resource_gen_test.go @@ -341,6 +343,7 @@ //go:generate go run generators/resource/main.go -resource awscc_ec2_security_group -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroup.json -package ec2 -- ../aws/ec2/security_group_resource_gen.go ../aws/ec2/security_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_security_group_egress -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupEgress.json -package ec2 -- ../aws/ec2/security_group_egress_resource_gen.go ../aws/ec2/security_group_egress_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_security_group_ingress -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupIngress.json -package ec2 -- ../aws/ec2/security_group_ingress_resource_gen.go ../aws/ec2/security_group_ingress_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_ec2_security_group_vpc_association -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupVpcAssociation.json -package ec2 -- ../aws/ec2/security_group_vpc_association_resource_gen.go ../aws/ec2/security_group_vpc_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_snapshot_block_public_access -cfschema ../service/cloudformation/schemas/AWS_EC2_SnapshotBlockPublicAccess.json -package ec2 -- ../aws/ec2/snapshot_block_public_access_resource_gen.go ../aws/ec2/snapshot_block_public_access_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_spot_fleet -cfschema ../service/cloudformation/schemas/AWS_EC2_SpotFleet.json -package ec2 -- ../aws/ec2/spot_fleet_resource_gen.go ../aws/ec2/spot_fleet_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_ec2_subnet -cfschema ../service/cloudformation/schemas/AWS_EC2_Subnet.json -package ec2 -- ../aws/ec2/subnet_resource_gen.go ../aws/ec2/subnet_resource_gen_test.go @@ -817,6 +820,7 @@ //go:generate go run generators/resource/main.go -resource awscc_rds_db_proxy -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxy.json -package rds -- ../aws/rds/db_proxy_resource_gen.go ../aws/rds/db_proxy_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_db_proxy_endpoint -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxyEndpoint.json -package rds -- ../aws/rds/db_proxy_endpoint_resource_gen.go ../aws/rds/db_proxy_endpoint_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_db_proxy_target_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxyTargetGroup.json -package rds -- ../aws/rds/db_proxy_target_group_resource_gen.go ../aws/rds/db_proxy_target_group_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_rds_db_shard_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBShardGroup.json -package rds -- ../aws/rds/db_shard_group_resource_gen.go ../aws/rds/db_shard_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_db_subnet_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json -package rds -- ../aws/rds/db_subnet_group_resource_gen.go ../aws/rds/db_subnet_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_event_subscription -cfschema ../service/cloudformation/schemas/AWS_RDS_EventSubscription.json -package rds -- ../aws/rds/event_subscription_resource_gen.go ../aws/rds/event_subscription_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_rds_global_cluster -cfschema ../service/cloudformation/schemas/AWS_RDS_GlobalCluster.json -package rds -- ../aws/rds/global_cluster_resource_gen.go ../aws/rds/global_cluster_resource_gen_test.go @@ -1034,7 +1038,10 @@ //go:generate go run generators/resource/main.go -resource awscc_wafv2_logging_configuration -cfschema ../service/cloudformation/schemas/AWS_WAFv2_LoggingConfiguration.json -package wafv2 -- ../aws/wafv2/logging_configuration_resource_gen.go ../aws/wafv2/logging_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wafv2_regex_pattern_set -cfschema ../service/cloudformation/schemas/AWS_WAFv2_RegexPatternSet.json -package wafv2 -- ../aws/wafv2/regex_pattern_set_resource_gen.go ../aws/wafv2/regex_pattern_set_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wafv2_web_acl_association -cfschema ../service/cloudformation/schemas/AWS_WAFv2_WebACLAssociation.json -package wafv2 -- ../aws/wafv2/web_acl_association_resource_gen.go ../aws/wafv2/web_acl_association_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_agent -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgent.json -package wisdom -- ../aws/wisdom/ai_agent_resource_gen.go ../aws/wisdom/ai_agent_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_agent_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json -package wisdom -- ../aws/wisdom/ai_agent_version_resource_gen.go ../aws/wisdom/ai_agent_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_prompt -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json -package wisdom -- ../aws/wisdom/ai_prompt_resource_gen.go ../aws/wisdom/ai_prompt_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_wisdom_ai_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json -package wisdom -- ../aws/wisdom/ai_prompt_version_resource_gen.go ../aws/wisdom/ai_prompt_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_assistant -cfschema ../service/cloudformation/schemas/AWS_Wisdom_Assistant.json -package wisdom -- ../aws/wisdom/assistant_resource_gen.go ../aws/wisdom/assistant_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_assistant_association -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json -package wisdom -- ../aws/wisdom/assistant_association_resource_gen.go ../aws/wisdom/assistant_association_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_wisdom_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json -package wisdom -- ../aws/wisdom/knowledge_base_resource_gen.go ../aws/wisdom/knowledge_base_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index 9894059cc6..ae09366f14 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -70,6 +70,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_entitlement -cfschema ../service/cloudformation/schemas/AWS_AppStream_Entitlement.json -package appstream ../aws/appstream/entitlement_singular_data_source_gen.go ../aws/appstream/entitlement_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appstream_image_builder -cfschema ../service/cloudformation/schemas/AWS_AppStream_ImageBuilder.json -package appstream ../aws/appstream/image_builder_singular_data_source_gen.go ../aws/appstream/image_builder_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_api -cfschema ../service/cloudformation/schemas/AWS_AppSync_Api.json -package appsync ../aws/appsync/api_singular_data_source_gen.go ../aws/appsync/api_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_channel_namespace -cfschema ../service/cloudformation/schemas/AWS_AppSync_ChannelNamespace.json -package appsync ../aws/appsync/channel_namespace_singular_data_source_gen.go ../aws/appsync/channel_namespace_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_data_source -cfschema ../service/cloudformation/schemas/AWS_AppSync_DataSource.json -package appsync ../aws/appsync/data_source_singular_data_source_gen.go ../aws/appsync/data_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_domain_name -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainName.json -package appsync ../aws/appsync/domain_name_singular_data_source_gen.go ../aws/appsync/domain_name_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_appsync_domain_name_api_association -cfschema ../service/cloudformation/schemas/AWS_AppSync_DomainNameApiAssociation.json -package appsync ../aws/appsync/domain_name_api_association_singular_data_source_gen.go ../aws/appsync/domain_name_api_association_singular_data_source_gen_test.go @@ -112,6 +113,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_batch_scheduling_policy -cfschema ../service/cloudformation/schemas/AWS_Batch_SchedulingPolicy.json -package batch ../aws/batch/scheduling_policy_singular_data_source_gen.go ../aws/batch/scheduling_policy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent -cfschema ../service/cloudformation/schemas/AWS_Bedrock_Agent.json -package bedrock ../aws/bedrock/agent_singular_data_source_gen.go ../aws/bedrock/agent_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_agent_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_AgentAlias.json -package bedrock ../aws/bedrock/agent_alias_singular_data_source_gen.go ../aws/bedrock/agent_alias_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_application_inference_profile -cfschema ../service/cloudformation/schemas/AWS_Bedrock_ApplicationInferenceProfile.json -package bedrock ../aws/bedrock/application_inference_profile_singular_data_source_gen.go ../aws/bedrock/application_inference_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_data_source -cfschema ../service/cloudformation/schemas/AWS_Bedrock_DataSource.json -package bedrock ../aws/bedrock/data_source_singular_data_source_gen.go ../aws/bedrock/data_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_alias -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowAlias.json -package bedrock ../aws/bedrock/flow_alias_singular_data_source_gen.go ../aws/bedrock/flow_alias_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_bedrock_flow_version -cfschema ../service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json -package bedrock ../aws/bedrock/flow_version_singular_data_source_gen.go ../aws/bedrock/flow_version_singular_data_source_gen_test.go @@ -341,6 +343,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_security_group -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroup.json -package ec2 ../aws/ec2/security_group_singular_data_source_gen.go ../aws/ec2/security_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_security_group_egress -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupEgress.json -package ec2 ../aws/ec2/security_group_egress_singular_data_source_gen.go ../aws/ec2/security_group_egress_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_security_group_ingress -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupIngress.json -package ec2 ../aws/ec2/security_group_ingress_singular_data_source_gen.go ../aws/ec2/security_group_ingress_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_security_group_vpc_association -cfschema ../service/cloudformation/schemas/AWS_EC2_SecurityGroupVpcAssociation.json -package ec2 ../aws/ec2/security_group_vpc_association_singular_data_source_gen.go ../aws/ec2/security_group_vpc_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_snapshot_block_public_access -cfschema ../service/cloudformation/schemas/AWS_EC2_SnapshotBlockPublicAccess.json -package ec2 ../aws/ec2/snapshot_block_public_access_singular_data_source_gen.go ../aws/ec2/snapshot_block_public_access_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_spot_fleet -cfschema ../service/cloudformation/schemas/AWS_EC2_SpotFleet.json -package ec2 ../aws/ec2/spot_fleet_singular_data_source_gen.go ../aws/ec2/spot_fleet_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_ec2_subnet -cfschema ../service/cloudformation/schemas/AWS_EC2_Subnet.json -package ec2 ../aws/ec2/subnet_singular_data_source_gen.go ../aws/ec2/subnet_singular_data_source_gen_test.go @@ -817,6 +820,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_proxy -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxy.json -package rds ../aws/rds/db_proxy_singular_data_source_gen.go ../aws/rds/db_proxy_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_proxy_endpoint -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxyEndpoint.json -package rds ../aws/rds/db_proxy_endpoint_singular_data_source_gen.go ../aws/rds/db_proxy_endpoint_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_proxy_target_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBProxyTargetGroup.json -package rds ../aws/rds/db_proxy_target_group_singular_data_source_gen.go ../aws/rds/db_proxy_target_group_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_shard_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBShardGroup.json -package rds ../aws/rds/db_shard_group_singular_data_source_gen.go ../aws/rds/db_shard_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_db_subnet_group -cfschema ../service/cloudformation/schemas/AWS_RDS_DBSubnetGroup.json -package rds ../aws/rds/db_subnet_group_singular_data_source_gen.go ../aws/rds/db_subnet_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_event_subscription -cfschema ../service/cloudformation/schemas/AWS_RDS_EventSubscription.json -package rds ../aws/rds/event_subscription_singular_data_source_gen.go ../aws/rds/event_subscription_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_rds_global_cluster -cfschema ../service/cloudformation/schemas/AWS_RDS_GlobalCluster.json -package rds ../aws/rds/global_cluster_singular_data_source_gen.go ../aws/rds/global_cluster_singular_data_source_gen_test.go @@ -1034,7 +1038,10 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_wafv2_logging_configuration -cfschema ../service/cloudformation/schemas/AWS_WAFv2_LoggingConfiguration.json -package wafv2 ../aws/wafv2/logging_configuration_singular_data_source_gen.go ../aws/wafv2/logging_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wafv2_regex_pattern_set -cfschema ../service/cloudformation/schemas/AWS_WAFv2_RegexPatternSet.json -package wafv2 ../aws/wafv2/regex_pattern_set_singular_data_source_gen.go ../aws/wafv2/regex_pattern_set_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wafv2_web_acl_association -cfschema ../service/cloudformation/schemas/AWS_WAFv2_WebACLAssociation.json -package wafv2 ../aws/wafv2/web_acl_association_singular_data_source_gen.go ../aws/wafv2/web_acl_association_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_agent -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgent.json -package wisdom ../aws/wisdom/ai_agent_singular_data_source_gen.go ../aws/wisdom/ai_agent_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_agent_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json -package wisdom ../aws/wisdom/ai_agent_version_singular_data_source_gen.go ../aws/wisdom/ai_agent_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_prompt -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPrompt.json -package wisdom ../aws/wisdom/ai_prompt_singular_data_source_gen.go ../aws/wisdom/ai_prompt_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_ai_prompt_version -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json -package wisdom ../aws/wisdom/ai_prompt_version_singular_data_source_gen.go ../aws/wisdom/ai_prompt_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_assistant -cfschema ../service/cloudformation/schemas/AWS_Wisdom_Assistant.json -package wisdom ../aws/wisdom/assistant_singular_data_source_gen.go ../aws/wisdom/assistant_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_assistant_association -cfschema ../service/cloudformation/schemas/AWS_Wisdom_AssistantAssociation.json -package wisdom ../aws/wisdom/assistant_association_singular_data_source_gen.go ../aws/wisdom/assistant_association_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_wisdom_knowledge_base -cfschema ../service/cloudformation/schemas/AWS_Wisdom_KnowledgeBase.json -package wisdom ../aws/wisdom/knowledge_base_singular_data_source_gen.go ../aws/wisdom/knowledge_base_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json index 963cf4cd95..05abc47b22 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Account.json @@ -44,7 +44,7 @@ "type": "string" }, "CloudWatchRoleArn": { - "description": "The ARN of an Amazon CloudWatch role for the current Account.", + "description": "", "type": "string" } } diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json index f08379d8f9..3cd05480cc 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_ApiKey.json @@ -9,20 +9,20 @@ "type": "string" }, "CustomerId": { - "description": "An MKT customer identifier, when integrating with the AWS SaaS Marketplace.", + "description": "", "type": "string" }, "Description": { - "description": "The description of the ApiKey.", + "description": "", "type": "string" }, "Enabled": { - "description": "Specifies whether the ApiKey can be used by callers.", + "description": "", "default": false, "type": "boolean" }, "GenerateDistinctId": { - "description": "Specifies whether (``true``) or not (``false``) the key identifier is distinct from the created API key value. This parameter is deprecated and should not be used.", + "description": "", "type": "boolean" }, "Name": { @@ -30,7 +30,7 @@ "type": "string" }, "StageKeys": { - "description": "DEPRECATED FOR USAGE PLANS - Specifies stages associated with the API key.", + "description": "", "type": "array", "uniqueItems": true, "items": { @@ -38,7 +38,7 @@ } }, "Tags": { - "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + "description": "", "type": "array", "uniqueItems": false, "items": { @@ -46,7 +46,7 @@ } }, "Value": { - "description": "Specifies a value of the API key.", + "description": "", "type": "string" } }, @@ -56,11 +56,11 @@ "additionalProperties": false, "properties": { "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "StageName": { - "description": "The stage name associated with the stage key.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json index 6f61669ed4..a077506b20 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Authorizer.json @@ -4,7 +4,7 @@ "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-apigateway.git", "properties": { "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "AuthorizerId": { @@ -12,35 +12,35 @@ "description": "" }, "AuthType": { - "description": "Optional customer-defined field, used in OpenAPI imports and exports without functional impact.", + "description": "", "type": "string" }, "AuthorizerCredentials": { - "description": "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.", + "description": "", "type": "string" }, "AuthorizerResultTtlInSeconds": { - "description": "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.", + "description": "", "type": "integer" }, "AuthorizerUri": { - "description": "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``.", + "description": "", "type": "string" }, "IdentitySource": { - "description": "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.", + "description": "", "type": "string" }, "IdentityValidationExpression": { - "description": "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.", + "description": "", "type": "string" }, "Name": { - "description": "The name of the authorizer.", + "description": "", "type": "string" }, "ProviderARNs": { - "description": "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.", + "description": "", "type": "array", "uniqueItems": true, "items": { @@ -49,7 +49,7 @@ "insertionOrder": false }, "Type": { - "description": "The authorizer type. Valid values are ``TOKEN`` for a Lambda function using a single authorization token submitted in a custom header, ``REQUEST`` for a Lambda function using incoming request parameters, and ``COGNITO_USER_POOLS`` for using an Amazon Cognito user pool.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_BasePathMapping.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_BasePathMapping.json index d6b2370ef5..83b75138bd 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_BasePathMapping.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_BasePathMapping.json @@ -6,19 +6,19 @@ "properties": { "BasePath": { "type": "string", - "description": "The base path name that callers of the API must provide as part of the URL after the domain name." + "description": "" }, "DomainName": { "type": "string", - "description": "The domain name of the BasePathMapping resource to be described." + "description": "" }, "RestApiId": { "type": "string", - "description": "The string identifier of the associated RestApi." + "description": "" }, "Stage": { "type": "string", - "description": "The name of the associated stage." + "description": "" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json index 48d785f46f..ef602fc3bb 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_ClientCertificate.json @@ -9,11 +9,11 @@ "type": "string" }, "Description": { - "description": "The description of the client certificate.", + "description": "", "type": "string" }, "Tags": { - "description": "The collection of tags. Each tag element is associated with a given resource.", + "description": "", "type": "array", "uniqueItems": false, "items": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json index c7ce116cc2..dc9d9bc614 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Deployment.json @@ -76,11 +76,11 @@ "type": "object", "properties": { "CacheTtlInSeconds": { - "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + "description": "", "type": "integer" }, "LoggingLevel": { - "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + "description": "", "type": "string" }, "ResourcePath": { @@ -88,23 +88,23 @@ "type": "string" }, "CacheDataEncrypted": { - "description": "Specifies whether the cached responses are encrypted.", + "description": "", "type": "boolean" }, "DataTraceEnabled": { - "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + "description": "", "type": "boolean" }, "ThrottlingBurstLimit": { - "description": "Specifies the throttling burst limit.", + "description": "", "type": "integer" }, "CachingEnabled": { - "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + "description": "", "type": "boolean" }, "MetricsEnabled": { - "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + "description": "", "type": "boolean" }, "HttpMethod": { @@ -112,7 +112,7 @@ "type": "string" }, "ThrottlingRateLimit": { - "description": "Specifies the throttling rate limit.", + "description": "", "type": "number" } } @@ -211,7 +211,7 @@ } }, "CacheClusterEnabled": { - "description": "Specifies whether a cache cluster is enabled for the stage.", + "description": "", "type": "boolean" } } @@ -227,16 +227,16 @@ "type": "string" } }, - "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + "description": "", "additionalProperties": false, "type": "object" }, "PercentTraffic": { - "description": "The percent (0-100) of traffic diverted to a canary deployment.", + "description": "", "type": "number" }, "UseStageCache": { - "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + "description": "", "type": "boolean" } } @@ -271,16 +271,16 @@ "type": "string" } }, - "description": "A stage variable overrides used for the canary release deployment. They can override existing stage variables or add new stage variables for the canary release deployment. These stage variables are represented as a string-to-string map between stage variable names and their values.", + "description": "", "additionalProperties": false, "type": "object" }, "PercentTraffic": { - "description": "The percentage (0.0-100.0) of traffic routed to the canary deployment.", + "description": "", "type": "number" }, "UseStageCache": { - "description": "A Boolean flag to indicate whether the canary release deployment uses the stage cache or not.", + "description": "", "type": "boolean" } } @@ -291,11 +291,11 @@ "type": "object", "properties": { "Format": { - "description": "A single line format of the access logs of data, as specified by selected $context variables. The format must include at least ``$context.requestId``.", + "description": "", "type": "string" }, "DestinationArn": { - "description": "The Amazon Resource Name (ARN) of the CloudWatch Logs log group or Kinesis Data Firehose delivery stream to receive access logs. If you specify a Kinesis Data Firehose delivery stream, the stream name must begin with ``amazon-apigateway-``.", + "description": "", "type": "string" } } @@ -307,7 +307,7 @@ "type": "string" }, "Description": { - "description": "The description for the Deployment resource to create.", + "description": "", "type": "string" }, "StageDescription": { @@ -315,15 +315,15 @@ "$ref": "#/definitions/StageDescription" }, "StageName": { - "description": "The name of the Stage resource for the Deployment resource to create.", + "description": "", "type": "string" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "DeploymentCanarySettings": { - "description": "The input configuration for a canary deployment.", + "description": "", "$ref": "#/definitions/DeploymentCanarySettings" } } diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json index 574d4dfc4d..9949e4439c 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationPart.json @@ -9,15 +9,15 @@ "type": "string" }, "Location": { - "description": "The location of the targeted API entity of the to-be-created documentation part.", + "description": "", "$ref": "#/definitions/Location" }, "Properties": { - "description": "The new documentation content map of the targeted API entity. Enclosed key-value pairs are API-specific, but only OpenAPI-compliant key-value pairs can be exported and, hence, published.", + "description": "", "type": "string" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" } }, @@ -27,23 +27,23 @@ "additionalProperties": false, "properties": { "Method": { - "description": "The HTTP verb of a method. It is a valid field for the API entity types of ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``method`` attribute must match that of the parent entity exactly.", + "description": "", "type": "string" }, "Name": { - "description": "The name of the targeted API entity. It is a valid and required field for the API entity types of ``AUTHORIZER``, ``MODEL``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY`` and ``RESPONSE_HEADER``. It is an invalid field for any other entity type.", + "description": "", "type": "string" }, "Path": { - "description": "The URL path of the target. It is a valid field for the API entity types of ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``/`` for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``path`` attribute must match that of the parent entity as a prefix.", + "description": "", "type": "string" }, "StatusCode": { - "description": "The HTTP status code of a response. It is a valid field for the API entity types of ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. The default value is ``*`` for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other ``location`` attributes, the child entity's ``statusCode`` attribute must match that of the parent entity exactly.", + "description": "", "type": "string" }, "Type": { - "description": "The type of API entity to which the documentation content applies. Valid values are ``API``, ``AUTHORIZER``, ``MODEL``, ``RESOURCE``, ``METHOD``, ``PATH_PARAMETER``, ``QUERY_PARAMETER``, ``REQUEST_HEADER``, ``REQUEST_BODY``, ``RESPONSE``, ``RESPONSE_HEADER``, and ``RESPONSE_BODY``. Content inheritance does not apply to any entity of the ``API``, ``AUTHORIZER``, ``METHOD``, ``MODEL``, ``REQUEST_BODY``, or ``RESOURCE`` type.", + "description": "", "type": "string", "enum": [ "API", diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationVersion.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationVersion.json index 2a7b8f1cba..bc74130978 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationVersion.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_DocumentationVersion.json @@ -5,16 +5,16 @@ "definitions": {}, "properties": { "Description": { - "description": "A description about the new documentation snapshot.", + "description": "", "type": "string" }, "DocumentationVersion": { - "description": "The version identifier of the to-be-updated documentation version.", + "description": "", "type": "string", "minLength": 1 }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string", "minLength": 1 } diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_GatewayResponse.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_GatewayResponse.json index 79737d77a0..600565f186 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_GatewayResponse.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_GatewayResponse.json @@ -9,19 +9,19 @@ "type": "string" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "ResponseType": { - "description": "The response type of the associated GatewayResponse.", + "description": "", "type": "string" }, "StatusCode": { - "description": "The HTTP status code for this GatewayResponse.", + "description": "", "type": "string" }, "ResponseParameters": { - "description": "Response parameters (paths, query strings and headers) of the GatewayResponse as a string-to-string map of key-value pairs.", + "description": "", "type": "object", "additionalProperties": false, "patternProperties": { @@ -31,7 +31,7 @@ } }, "ResponseTemplates": { - "description": "Response templates of the GatewayResponse as a string-to-string map of key-value pairs.", + "description": "", "type": "object", "additionalProperties": false, "patternProperties": { diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Method.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Method.json index 6570f9631e..d7b1787783 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Method.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Method.json @@ -48,7 +48,7 @@ ], "definitions": { "MethodResponse": { - "description": "Represents a method response of a given HTTP status code returned to the client. The method response is passed from the back end through the associated integration response that can be transformed using a mapping template.", + "description": "", "additionalProperties": false, "type": "object", "properties": { @@ -61,12 +61,12 @@ ] } }, - "description": "A key-value map specifying required or optional response parameters that API Gateway can send back to the caller. A key defines a method response header and the value specifies whether the associated method response header is required or not. The expression of the key must match the pattern ``method.response.header.{name}``, where ``name`` is a valid and unique header name. API Gateway passes certain integration response data to the method response headers specified here according to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped include an integration response header expressed in ``integration.response.header.{name}``, a static value enclosed within a pair of single quotes (e.g., ``'application/json'``), or a JSON expression from the back-end response payload in the form of ``integration.response.body.{JSON-expression}``, where ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.)", + "description": "", "additionalProperties": false, "type": "object" }, "StatusCode": { - "description": "The method response's status code.", + "description": "", "type": "string" }, "ResponseModels": { @@ -75,7 +75,7 @@ "type": "string" } }, - "description": "Specifies the Model resources used for the response's content-type. Response models are represented as a key/value map, with a content-type as the key and a Model name as the value.", + "description": "", "additionalProperties": false, "type": "object" } @@ -90,11 +90,11 @@ "type": "object", "properties": { "CacheNamespace": { - "description": "Specifies a group of related cached parameters. By default, API Gateway uses the resource ID as the ``cacheNamespace``. You can specify the same ``cacheNamespace`` across resources to return the same cached data for requests to different resources.", + "description": "", "type": "string" }, "ConnectionType": { - "description": "The type of the network connection to the integration endpoint. The valid value is ``INTERNET`` for connections through the public routable internet or ``VPC_LINK`` for private connections between API Gateway and a network load balancer in a VPC. The default value is ``INTERNET``.", + "description": "", "type": "string", "enum": [ "INTERNET", @@ -103,22 +103,22 @@ }, "IntegrationResponses": { "uniqueItems": true, - "description": "Specifies the integration's responses.", + "description": "", "type": "array", "items": { "$ref": "#/definitions/IntegrationResponse" } }, "IntegrationHttpMethod": { - "description": "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.", + "description": "", "type": "string" }, "Uri": { - "description": "Specifies Uniform Resource Identifier (URI) of the integration endpoint.\n 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}``", + "description": "", "type": "string" }, "PassthroughBehavior": { - "description": "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.", + "description": "", "type": "string", "enum": [ "WHEN_NO_MATCH", @@ -132,16 +132,16 @@ "type": "string" } }, - "description": "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.", + "description": "", "additionalProperties": false, "type": "object" }, "ConnectionId": { - "description": "The ID of the VpcLink used for the integration when ``connectionType=VPC_LINK`` and undefined, otherwise.", + "description": "", "type": "string" }, "Type": { - "description": "Specifies an API method integration type. The valid value is one of the following:\n 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.", + "description": "", "type": "string", "enum": [ "AWS", @@ -153,14 +153,14 @@ }, "CacheKeyParameters": { "uniqueItems": true, - "description": "A list of request parameters whose values API Gateway caches. To be valid values for ``cacheKeyParameters``, these parameters must also be specified for Method ``requestParameters``.", + "description": "", "type": "array", "items": { "type": "string" } }, "ContentHandling": { - "description": "Specifies how to handle request payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the request payload will be passed through from the method request to integration request without modification, provided that the ``passthroughBehavior`` is configured to support payload pass-through.", + "description": "", "type": "string", "enum": [ "CONVERT_TO_BINARY", @@ -173,17 +173,17 @@ "type": "string" } }, - "description": "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.", + "description": "", "additionalProperties": false, "type": "object" }, "TimeoutInMillis": { - "description": "Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds.", + "description": "", "type": "integer", "minimum": 50 }, "Credentials": { - "description": "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.", + "description": "", "type": "string" } }, @@ -202,16 +202,16 @@ "type": "string" } }, - "description": "Specifies the templates used to transform the integration response body. Response templates are represented as a key/value map, with a content-type as the key and a template as the value.", + "description": "", "additionalProperties": false, "type": "object" }, "SelectionPattern": { - "description": "Specifies the regular expression (regex) pattern used to choose an integration response based on the response from the back end. For example, if the success response returns nothing and the error response returns some string, you could use the ``.+`` regex to match error response. However, make sure that the error response does not contain any newline (``\\n``) character in such cases. If the back end is an LAMlong function, the LAMlong function error header is matched. For all other HTTP and AWS back ends, the HTTP status code is matched.", + "description": "", "type": "string" }, "ContentHandling": { - "description": "Specifies how to handle response payload content type conversions. Supported values are ``CONVERT_TO_BINARY`` and ``CONVERT_TO_TEXT``, with the following behaviors:\n If this property is not defined, the response payload will be passed through from the integration response to the method response without modification.", + "description": "", "type": "string", "enum": [ "CONVERT_TO_BINARY", @@ -224,12 +224,12 @@ "type": "string" } }, - "description": "A key-value map specifying response parameters that are passed to the method response from the back end. The key is a method response header parameter name and the mapped value is an integration response header value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The mapping key must match the pattern of ``method.response.header.{name}``, where ``name`` is a valid and unique header name. The mapped non-static value must match the pattern of ``integration.response.header.{name}`` or ``integration.response.body.{JSON-expression}``, where ``name`` is a valid and unique response header name and ``JSON-expression`` is a valid JSON expression without the ``$`` prefix.", + "description": "", "additionalProperties": false, "type": "object" }, "StatusCode": { - "description": "Specifies the status code that is used to map the integration response to an existing MethodResponse.", + "description": "", "type": "string" } }, @@ -240,11 +240,11 @@ }, "properties": { "Integration": { - "description": "Represents an ``HTTP``, ``HTTP_PROXY``, ``AWS``, ``AWS_PROXY``, or Mock integration.", + "description": "", "$ref": "#/definitions/Integration" }, "OperationName": { - "description": "A human-friendly operation identifier for the method. For example, you can assign the ``operationName`` of ``ListPets`` for the ``GET /pets`` method in the ``PetStore`` example.", + "description": "", "type": "string" }, "RequestModels": { @@ -253,23 +253,23 @@ "type": "string" } }, - "description": "A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request payloads of given content types (as the mapping key).", + "description": "", "additionalProperties": false, "type": "object" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "AuthorizationScopes": { - "description": "A list of authorization scopes configured on the method. The scopes are used with a ``COGNITO_USER_POOLS`` authorizer to authorize the method invocation. The authorization works by matching the method scopes against the scopes parsed from the access token in the incoming request. The method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide an access token instead of an identity token for authorization purposes.", + "description": "", "type": "array", "items": { "type": "string" } }, "RequestValidatorId": { - "description": "The identifier of a RequestValidator for request validation.", + "description": "", "type": "string" }, "RequestParameters": { @@ -281,28 +281,28 @@ ] } }, - "description": "A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A key is a method request parameter name matching the pattern of ``method.request.{location}.{name}``, where ``location`` is ``querystring``, ``path``, or ``header`` and ``name`` is a valid and unique parameter name. The value associated with the key is a Boolean flag indicating whether the parameter is required (``true``) or optional (``false``). The method request parameter names defined here are available in Integration to be mapped to integration request parameters or templates.", + "description": "", "additionalProperties": false, "type": "object" }, "MethodResponses": { "uniqueItems": true, - "description": "Gets a method response associated with a given HTTP status code.", + "description": "", "type": "array", "items": { "$ref": "#/definitions/MethodResponse" } }, "AuthorizerId": { - "description": "The identifier of an authorizer to use on this method. The method's authorization type must be ``CUSTOM`` or ``COGNITO_USER_POOLS``.", + "description": "", "type": "string" }, "ResourceId": { - "description": "The Resource identifier for the MethodResponse resource.", + "description": "", "type": "string" }, "ApiKeyRequired": { - "description": "A boolean flag specifying whether a valid ApiKey is required to invoke this method.", + "description": "", "type": "boolean" }, "AuthorizationType": { @@ -310,7 +310,7 @@ "type": "string" }, "HttpMethod": { - "description": "The method's HTTP verb.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Model.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Model.json index 95b7ed3fa0..1f6358c436 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Model.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Model.json @@ -6,11 +6,11 @@ "properties": { "ContentType": { "type": "string", - "description": "The content-type for the model." + "description": "" }, "Description": { "type": "string", - "description": "The description of the model." + "description": "" }, "Name": { "type": "string", @@ -18,10 +18,10 @@ }, "RestApiId": { "type": "string", - "description": "The string identifier of the associated RestApi." + "description": "" }, "Schema": { - "description": "The schema for the model. For ``application/json`` models, this should be JSON schema draft 4 model. Do not include \"\\*/\" characters in the description of any properties because such \"\\*/\" characters may be interpreted as the closing marker for comments in some languages, such as Java or JavaScript, causing the installation of your API's SDK generated by API Gateway to fail.", + "description": "", "type": [ "object", "string" diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json index 54548f8821..f2b4098b01 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_RequestValidator.json @@ -9,19 +9,19 @@ "type": "string" }, "Name": { - "description": "The name of this RequestValidator", + "description": "", "type": "string" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "ValidateRequestBody": { - "description": "A Boolean flag to indicate whether to validate a request body according to the configured Model schema.", + "description": "", "type": "boolean" }, "ValidateRequestParameters": { - "description": "A Boolean flag to indicate whether to validate request parameters (``true``) or not (``false``).", + "description": "", "type": "boolean" } }, diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json index b9de1a27a2..0b0649c654 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Resource.json @@ -58,11 +58,11 @@ ], "properties": { "ParentId": { - "description": "The parent resource's identifier.", + "description": "", "type": "string" }, "PathPart": { - "description": "The last path segment for this resource.", + "description": "", "type": "string" }, "ResourceId": { @@ -70,7 +70,7 @@ "type": "string" }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" } }, diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json index 14ce43716a..a2aba8ad75 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_RestApi.json @@ -77,7 +77,7 @@ "properties": { "Types": { "uniqueItems": true, - "description": "A list of endpoint types of an API (RestApi) or its custom domain name (DomainName). For an edge-optimized API and its custom domain name, the endpoint type is ``\"EDGE\"``. For a regional API and its custom domain name, the endpoint type is ``REGIONAL``. For a private API, the endpoint type is ``PRIVATE``.", + "description": "", "type": "array", "items": { "type": "string" @@ -85,7 +85,7 @@ }, "VpcEndpointIds": { "uniqueItems": true, - "description": "A list of VpcEndpointIds of an API (RestApi) against which to create Route53 ALIASes. It is only supported for ``PRIVATE`` endpoint type.", + "description": "", "type": "array", "items": { "relationshipRef": { @@ -155,11 +155,11 @@ "$ref": "#/definitions/S3Location" }, "Description": { - "description": "The description of the RestApi.", + "description": "", "type": "string" }, "MinimumCompressionSize": { - "description": "A nullable integer that is used to enable compression (with non-negative between 0 and 10485760 (10M) bytes, inclusive) or disable compression (with a null value) on an API. When compression is enabled, compression or decompression is not applied on the payload if the payload size is smaller than this value. Setting it to zero allows compression for any payload size.", + "description": "", "type": "integer" }, "Parameters": { @@ -168,7 +168,7 @@ "type": "string" } }, - "description": "Custom header parameters as part of the request. For example, to exclude DocumentationParts from an imported API, set ``ignore=documentation`` as a ``parameters`` value, as in the AWS CLI command of ``aws apigateway import-rest-api --parameters ignore=documentation --body 'file:///path/to/imported-api-body.json'``.", + "description": "", "additionalProperties": false, "type": [ "object", @@ -176,7 +176,7 @@ ] }, "CloneFrom": { - "description": "The ID of the RestApi that you want to clone from.", + "description": "", "type": "string" }, "Mode": { @@ -188,16 +188,16 @@ "type": "string" }, "DisableExecuteApiEndpoint": { - "description": "Specifies whether clients can invoke your API by using the default ``execute-api`` endpoint. By default, clients can invoke your API with the default ``https://{api_id}.execute-api.{region}.amazonaws.com`` endpoint. To require that clients use a custom domain name to invoke your API, disable the default endpoint", + "description": "", "type": "boolean" }, "FailOnWarnings": { - "description": "A query parameter to indicate whether to rollback the API update (``true``) or not (``false``) when a warning is encountered. The default value is ``false``.", + "description": "", "type": "boolean" }, "BinaryMediaTypes": { "uniqueItems": true, - "description": "The list of binary media types supported by the RestApi. By default, the RestApi supports only UTF-8-encoded text payloads.", + "description": "", "type": "array", "items": { "type": "string" @@ -212,7 +212,7 @@ "type": "string" }, "ApiKeySourceType": { - "description": "The source of the API key for metering requests according to a usage plan. Valid values are: ``HEADER`` to read the API key from the ``X-API-Key`` header of a request. ``AUTHORIZER`` to read the API key from the ``UsageIdentifierKey`` from a custom authorizer.", + "description": "", "type": "string" }, "EndpointConfiguration": { @@ -228,7 +228,7 @@ }, "Tags": { "uniqueItems": false, - "description": "The key-value map of strings. The valid character set is [a-zA-Z+-=._:/]. The tag key can be up to 128 characters and must not start with ``aws:``. The tag value can be up to 256 characters.", + "description": "", "type": "array", "items": { "$ref": "#/definitions/Tag" diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json index 1c620eeb05..dc7d8f94e8 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_Stage.json @@ -5,39 +5,39 @@ "additionalProperties": false, "properties": { "AccessLogSetting": { - "description": "Access log settings, including the access log format and access log destination ARN.", + "description": "", "$ref": "#/definitions/AccessLogSetting" }, "CacheClusterEnabled": { - "description": "Specifies whether a cache cluster is enabled for the stage.", + "description": "", "type": "boolean" }, "CacheClusterSize": { - "description": "The stage's cache capacity in GB. For more information about choosing a cache size, see [Enabling API caching to enhance responsiveness](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-caching.html).", + "description": "", "type": "string" }, "CanarySetting": { - "description": "Settings for the canary deployment in this stage.", + "description": "", "$ref": "#/definitions/CanarySetting" }, "ClientCertificateId": { - "description": "The identifier of a client certificate for an API stage.", + "description": "", "type": "string" }, "DeploymentId": { - "description": "The identifier of the Deployment that the stage points to.", + "description": "", "type": "string" }, "Description": { - "description": "The stage's description.", + "description": "", "type": "string" }, "DocumentationVersion": { - "description": "The version of the associated API documentation.", + "description": "", "type": "string" }, "MethodSettings": { - "description": "A map that defines the method settings for a Stage resource. Keys (designated as ``/{method_setting_key`` below) are method paths defined as ``{resource_path}/{http_method}`` for an individual method override, or ``/\\*/\\*`` for overriding all methods in the stage.", + "description": "", "type": "array", "uniqueItems": true, "insertionOrder": false, @@ -46,15 +46,15 @@ } }, "RestApiId": { - "description": "The string identifier of the associated RestApi.", + "description": "", "type": "string" }, "StageName": { - "description": "The name of the stage is the first path segment in the Uniform Resource Identifier (URI) of a call to API Gateway. Stage names can only contain alphanumeric characters, hyphens, and underscores. Maximum length is 128 characters.", + "description": "", "type": "string" }, "Tags": { - "description": "The collection of tags. Each tag element is associated with a given resource.", + "description": "", "type": "array", "uniqueItems": false, "insertionOrder": false, @@ -63,7 +63,7 @@ } }, "TracingEnabled": { - "description": "Specifies whether active tracing with X-ray is enabled for the Stage.", + "description": "", "type": "boolean" }, "Variables": { @@ -79,22 +79,22 @@ }, "definitions": { "CanarySetting": { - "description": "Configuration settings of a canary deployment.", + "description": "", "type": "object", "additionalProperties": false, "properties": { "DeploymentId": { - "description": "The ID of the canary deployment.", + "description": "", "type": "string" }, "PercentTraffic": { - "description": "The percent (0-100) of traffic diverted to a canary deployment.", + "description": "", "type": "number", "minimum": 0, "maximum": 100 }, "StageVariableOverrides": { - "description": "Stage variables overridden for a canary release deployment, including new stage variables introduced in the canary. These stage variables are represented as a string-to-string map between stage variable names and their values.", + "description": "", "type": "object", "additionalProperties": false, "patternProperties": { @@ -104,7 +104,7 @@ } }, "UseStageCache": { - "description": "A Boolean flag to indicate whether the canary deployment uses the stage cache or not.", + "description": "", "type": "boolean" } } @@ -130,19 +130,19 @@ "additionalProperties": false, "properties": { "CacheDataEncrypted": { - "description": "Specifies whether the cached responses are encrypted.", + "description": "", "type": "boolean" }, "CacheTtlInSeconds": { - "description": "Specifies the time to live (TTL), in seconds, for cached responses. The higher the TTL, the longer the response will be cached.", + "description": "", "type": "integer" }, "CachingEnabled": { - "description": "Specifies whether responses should be cached and returned for requests. A cache cluster must be enabled on the stage for responses to be cached.", + "description": "", "type": "boolean" }, "DataTraceEnabled": { - "description": "Specifies whether data trace logging is enabled for this method, which affects the log entries pushed to Amazon CloudWatch Logs. This can be useful to troubleshoot APIs, but can result in logging sensitive data. We recommend that you don't enable this option for production APIs.", + "description": "", "type": "boolean" }, "HttpMethod": { @@ -150,11 +150,11 @@ "type": "string" }, "LoggingLevel": { - "description": "Specifies the logging level for this method, which affects the log entries pushed to Amazon CloudWatch Logs. Valid values are ``OFF``, ``ERROR``, and ``INFO``. Choose ``ERROR`` to write only error-level entries to CloudWatch Logs, or choose ``INFO`` to include all ``ERROR`` events as well as extra informational events.", + "description": "", "type": "string" }, "MetricsEnabled": { - "description": "Specifies whether Amazon CloudWatch metrics are enabled for this method.", + "description": "", "type": "boolean" }, "ResourcePath": { @@ -162,12 +162,12 @@ "type": "string" }, "ThrottlingBurstLimit": { - "description": "Specifies the throttling burst limit.", + "description": "", "type": "integer", "minimum": 0 }, "ThrottlingRateLimit": { - "description": "Specifies the throttling rate limit.", + "description": "", "type": "number", "minimum": 0 } diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json index 97cce6c6e6..eb1255afd1 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlan.json @@ -10,7 +10,7 @@ }, "ApiStages": { "type": "array", - "description": "The associated API stages of a usage plan.", + "description": "", "uniqueItems": true, "items": { "$ref": "#/definitions/ApiStage" @@ -18,15 +18,15 @@ }, "Description": { "type": "string", - "description": "The description of a usage plan." + "description": "" }, "Quota": { "$ref": "#/definitions/QuotaSettings", - "description": "The target maximum number of permitted requests per a given unit time interval." + "description": "" }, "Tags": { "type": "array", - "description": "The collection of tags. Each tag element is associated with a given resource.", + "description": "", "insertionOrder": false, "uniqueItems": false, "items": { @@ -35,11 +35,11 @@ }, "Throttle": { "$ref": "#/definitions/ThrottleSettings", - "description": "A map containing method level throttling information for API stage in a usage plan." + "description": "" }, "UsagePlanName": { "type": "string", - "description": "The name of a usage plan." + "description": "" } }, "definitions": { @@ -49,15 +49,15 @@ "properties": { "ApiId": { "type": "string", - "description": "API Id of the associated API stage in a usage plan." + "description": "" }, "Stage": { "type": "string", - "description": "API stage name of the associated API stage in a usage plan." + "description": "" }, "Throttle": { "type": "object", - "description": "Map containing method level throttling information for API stage in a usage plan.", + "description": "", "additionalProperties": false, "patternProperties": { "": { @@ -66,7 +66,7 @@ } } }, - "description": "API stage name of the associated API stage in a usage plan." + "description": "" }, "ThrottleSettings": { "type": "object", @@ -75,12 +75,12 @@ "BurstLimit": { "type": "integer", "minimum": 0, - "description": "The API target request burst rate limit. This allows more requests through for a period of time than the target rate limit." + "description": "" }, "RateLimit": { "type": "number", "minimum": 0, - "description": "The API target request rate limit." + "description": "" } }, "description": "``ThrottleSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies the overall request rate (average requests per second) and burst capacity when users call your REST APIs." @@ -115,16 +115,16 @@ "Limit": { "type": "integer", "minimum": 0, - "description": "The target maximum number of requests that can be made in a given time period." + "description": "" }, "Offset": { "type": "integer", "minimum": 0, - "description": "The number of requests subtracted from the given limit in the initial time period." + "description": "" }, "Period": { "type": "string", - "description": "The time period in which the limit applies. Valid values are \"DAY\", \"WEEK\" or \"MONTH\"." + "description": "" } }, "description": "``QuotaSettings`` is a property of the [AWS::ApiGateway::UsagePlan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html) resource that specifies a target for the maximum number of requests users can make to your REST APIs.\n In some cases clients can exceed the targets that you set. Don?t rely on usage plans to control costs. Consider using [](https://docs.aws.amazon.com/cost-management/latest/userguide/budgets-managing-costs.html) to monitor costs and [](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html) to manage API requests." diff --git a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json index 2d3739094b..29ff458ddb 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGateway_UsagePlanKey.json @@ -9,7 +9,7 @@ "type": "string" }, "KeyType": { - "description": "The type of a UsagePlanKey resource for a plan customer.", + "description": "", "type": "string", "enum": [ "API_KEY" diff --git a/internal/service/cloudformation/schemas/AWS_AppSync_Api.json b/internal/service/cloudformation/schemas/AWS_AppSync_Api.json index ba796d4ee5..112eafba64 100644 --- a/internal/service/cloudformation/schemas/AWS_AppSync_Api.json +++ b/internal/service/cloudformation/schemas/AWS_AppSync_Api.json @@ -205,8 +205,11 @@ "description": "A map of DNS names for the AppSync API.", "type": "object", "additionalProperties": false, - "patternProperties": { - "": { + "properties": { + "Realtime": { + "type": "string" + }, + "Http": { "type": "string" } } @@ -283,6 +286,8 @@ "readOnlyProperties": [ "/properties/ApiId", "/properties/Dns", + "/properties/Dns/Realtime", + "/properties/Dns/Http", "/properties/ApiArn" ], "primaryIdentifier": [ diff --git a/internal/service/cloudformation/schemas/AWS_AppSync_ChannelNamespace.json b/internal/service/cloudformation/schemas/AWS_AppSync_ChannelNamespace.json new file mode 100644 index 0000000000..14f0ede5b3 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_AppSync_ChannelNamespace.json @@ -0,0 +1,191 @@ +{ + "typeName": "AWS::AppSync::ChannelNamespace", + "description": "Resource schema for AppSync ChannelNamespace", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "Namespace": { + "description": "Namespace indentifier.", + "type": "string", + "minLength": 1, + "maxLength": 50, + "pattern": "([A-Za-z0-9](?:[A-Za-z0-9\\-]{0,48}[A-Za-z0-9])?)" + }, + "AuthMode": { + "description": "An auth mode.", + "type": "object", + "additionalProperties": false, + "properties": { + "AuthType": { + "$ref": "#/definitions/AuthenticationType" + } + } + }, + "AuthModes": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/AuthMode" + } + }, + "AuthenticationType": { + "description": "Security configuration for your AppSync API.", + "type": "string", + "enum": [ + "AMAZON_COGNITO_USER_POOLS", + "AWS_IAM", + "API_KEY", + "OPENID_CONNECT", + "AWS_LAMBDA" + ] + }, + "Code": { + "description": "String of APPSYNC_JS code to be used by the handlers.", + "type": "string", + "minLength": 1, + "maxLength": 32768 + }, + "ChannelNamespaceArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the Channel Namespace." + }, + "Tag": { + "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + "type": "object", + "properties": { + "Key": { + "description": "A string used to identify this tag. You can specify a maximum of 128 characters for a tag key.", + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "" + }, + "Value": { + "description": "A string containing the value for this tag. You can specify a maximum of 256 characters for a tag value.", + "type": "string", + "minLength": 0, + "maxLength": 256, + "pattern": "^[\\s\\w+-=\\.:/@]*$" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "Tags": { + "description": "An arbitrary set of tags (key-value pairs) for this AppSync API.", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "properties": { + "ApiId": { + "description": "AppSync Api Id that this Channel Namespace belongs to.", + "type": "string" + }, + "Name": { + "$ref": "#/definitions/Namespace" + }, + "SubscribeAuthModes": { + "description": "List of AuthModes supported for Subscribe operations.", + "$ref": "#/definitions/AuthModes" + }, + "PublishAuthModes": { + "description": "List of AuthModes supported for Publish operations.", + "$ref": "#/definitions/AuthModes" + }, + "CodeHandlers": { + "$ref": "#/definitions/Code" + }, + "CodeS3Location": { + "description": "The Amazon S3 endpoint where the code is located.", + "type": "string" + }, + "ChannelNamespaceArn": { + "$ref": "#/definitions/ChannelNamespaceArn" + }, + "Tags": { + "$ref": "#/definitions/Tags" + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "appsync:TagResource", + "appsync:UntagResource" + ] + }, + "additionalProperties": false, + "required": [ + "ApiId", + "Name" + ], + "readOnlyProperties": [ + "/properties/ChannelNamespaceArn" + ], + "createOnlyProperties": [ + "/properties/ApiId", + "/properties/Name" + ], + "primaryIdentifier": [ + "/properties/ChannelNamespaceArn" + ], + "writeOnlyProperties": [ + "/properties/CodeS3Location" + ], + "handlers": { + "create": { + "permissions": [ + "appsync:CreateChannelNamespace", + "appsync:TagResource", + "appsync:GetChannelNamespace", + "s3:GetObject" + ] + }, + "read": { + "permissions": [ + "appsync:GetChannelNamespace", + "appsync:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "appsync:UpdateChannelNamespace", + "appsync:TagResource", + "appsync:UntagResource", + "appsync:GetChannelNamespace", + "s3:GetObject" + ] + }, + "delete": { + "permissions": [ + "appsync:DeleteChannelNamespace", + "appsync:UntagResource" + ] + }, + "list": { + "permissions": [ + "appsync:ListChannelNamespaces" + ], + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + } + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_AutoScaling_AutoScalingGroup.json b/internal/service/cloudformation/schemas/AWS_AutoScaling_AutoScalingGroup.json index bb9985c087..2bd707b325 100644 --- a/internal/service/cloudformation/schemas/AWS_AutoScaling_AutoScalingGroup.json +++ b/internal/service/cloudformation/schemas/AWS_AutoScaling_AutoScalingGroup.json @@ -268,6 +268,20 @@ } } }, + "AvailabilityZoneDistribution": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "CapacityDistributionStrategy": { + "type": "string", + "enum": [ + "balanced-best-effort", + "balanced-only" + ] + } + } + }, "NotificationConfiguration": { "description": "A structure that specifies an Amazon SNS notification configuration for the ``NotificationConfigurations`` property of the [AWS::AutoScaling::AutoScalingGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-autoscaling-autoscalinggroup.html) resource.\n For an example template snippet, see [Configure Amazon EC2 Auto Scaling resources](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2-auto-scaling.html).\n For more information, see [Get Amazon SNS notifications when your Auto Scaling group scales](https://docs.aws.amazon.com/autoscaling/ec2/userguide/ASGettingNotifications.html) in the *Amazon EC2 Auto Scaling User Guide*.", "additionalProperties": false, @@ -495,14 +509,16 @@ } }, "TrafficSourceIdentifier": { - "description": "", + "description": "Identifying information for a traffic source.", "additionalProperties": false, "type": "object", "properties": { "Type": { + "description": "Provides additional context for the value of ``Identifier``.\n The following lists the valid values:\n + ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.\n + ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.\n + ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.\n \n Required if the identifier is the name of a Classic Load Balancer.", "type": "string" }, "Identifier": { + "description": "Identifies the traffic source.\n For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.\n For example: \n + Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456`` \n + Classic Load Balancer name: ``my-classic-load-balancer`` \n + VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456`` \n \n To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing [DescribeTargetGroups](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html) and [DescribeLoadBalancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html) API operations.\n To get the ARN of a target group for VPC Lattice, use the VPC Lattice [GetTargetGroup](https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html) API operation.", "type": "string" } }, @@ -793,6 +809,10 @@ "description": "", "$ref": "#/definitions/NotificationConfiguration" }, + "AvailabilityZoneDistribution": { + "description": "", + "$ref": "#/definitions/AvailabilityZoneDistribution" + }, "MetricsCollection": { "uniqueItems": false, "description": "Enables the monitoring of group metrics of an Auto Scaling group. By default, these metrics are disabled.", @@ -831,7 +851,7 @@ }, "TrafficSources": { "uniqueItems": true, - "description": "", + "description": "The traffic sources associated with this Auto Scaling group.", "insertionOrder": false, "type": "array", "items": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_ApplicationInferenceProfile.json b/internal/service/cloudformation/schemas/AWS_Bedrock_ApplicationInferenceProfile.json new file mode 100644 index 0000000000..99ce62b294 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_ApplicationInferenceProfile.json @@ -0,0 +1,235 @@ +{ + "typeName": "AWS::Bedrock::ApplicationInferenceProfile", + "description": "Definition of AWS::Bedrock::ApplicationInferenceProfile Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-bedrock-application-inference-profile", + "definitions": { + "InferenceProfileModelSource": { + "description": "Various ways to encode a list of models in a CreateInferenceProfile request", + "oneOf": [ + { + "type": "object", + "title": "CopyFrom", + "properties": { + "CopyFrom": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|foundation-model)/[a-zA-Z0-9-:.]+$", + "description": "Source arns for a custom inference profile to copy its regional load balancing config from. This\ncan either be a foundation model or predefined inference profile ARN." + } + }, + "required": [ + "CopyFrom" + ], + "additionalProperties": false + } + ] + }, + "InferenceProfileStatus": { + "type": "string", + "description": "Status of the Inference Profile", + "enum": [ + "ACTIVE" + ] + }, + "InferenceProfileType": { + "type": "string", + "description": "Type of the Inference Profile", + "enum": [ + "APPLICATION", + "SYSTEM_DEFINED" + ] + }, + "InferenceProfileModel": { + "type": "object", + "description": "Model configuration", + "properties": { + "ModelArn": { + "type": "string", + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/[a-z0-9-]{1,63}[.]{1}([a-z0-9-]{1,63}[.]){0,2}[a-z0-9-]{1,63}([:][a-z0-9-]{1,63}){0,2}$", + "description": "ARN for Foundation Models in Bedrock. These models can be used as base models for model customization jobs" + } + }, + "additionalProperties": false + }, + "Tag": { + "type": "object", + "description": "Definition of the key/value pair for a tag", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Tag Key" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0, + "pattern": "^[a-zA-Z0-9\\s._:/=+@-]*$", + "description": "Tag Value" + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + }, + "Unit": { + "type": "object", + "additionalProperties": false + } + }, + "properties": { + "CreatedAt": { + "type": "string", + "description": "Time Stamp", + "format": "date-time" + }, + "Description": { + "type": "string", + "maxLength": 200, + "minLength": 1, + "pattern": "^([0-9a-zA-Z:.][ _-]?)+$", + "description": "Description of the inference profile" + }, + "InferenceProfileArn": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+$" + }, + "InferenceProfileId": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "^[a-zA-Z0-9-:.]+$" + }, + "InferenceProfileIdentifier": { + "type": "string", + "maxLength": 2048, + "minLength": 1, + "pattern": "^(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{0,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/)?[a-zA-Z0-9-:.]+$", + "description": "Inference profile identifier. Supports both system-defined inference profile ids, and inference profile ARNs." + }, + "InferenceProfileName": { + "type": "string", + "maxLength": 64, + "minLength": 1, + "pattern": "^([0-9a-zA-Z][ _-]?)+$" + }, + "ModelSource": { + "$ref": "#/definitions/InferenceProfileModelSource" + }, + "Models": { + "type": "array", + "items": { + "$ref": "#/definitions/InferenceProfileModel" + }, + "maxItems": 5, + "minItems": 1, + "description": "List of model configuration" + }, + "Status": { + "$ref": "#/definitions/InferenceProfileStatus" + }, + "Tags": { + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 200, + "minItems": 0, + "description": "List of Tags" + }, + "Type": { + "$ref": "#/definitions/InferenceProfileType" + }, + "UpdatedAt": { + "type": "string", + "description": "Time Stamp", + "format": "date-time" + } + }, + "required": [ + "InferenceProfileName" + ], + "readOnlyProperties": [ + "/properties/Models", + "/properties/InferenceProfileArn", + "/properties/InferenceProfileId", + "/properties/InferenceProfileIdentifier", + "/properties/Status", + "/properties/Type", + "/properties/CreatedAt", + "/properties/UpdatedAt" + ], + "writeOnlyProperties": [ + "/properties/ModelSource" + ], + "createOnlyProperties": [ + "/properties/Description", + "/properties/InferenceProfileName", + "/properties/ModelSource" + ], + "primaryIdentifier": [ + "/properties/InferenceProfileIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "bedrock:CreateInferenceProfile", + "bedrock:GetInferenceProfile", + "bedrock:TagResource", + "bedrock:ListTagsForResource" + ] + }, + "read": { + "permissions": [ + "bedrock:GetInferenceProfile", + "bedrock:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "bedrock:GetInferenceProfile", + "bedrock:ListTagsForResource", + "bedrock:TagResource", + "bedrock:UntagResource" + ] + }, + "delete": { + "permissions": [ + "bedrock:DeleteInferenceProfile", + "bedrock:GetInferenceProfile" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "Type": { + "$ref": "resource-schema.json#/properties/Type" + } + } + }, + "permissions": [ + "bedrock:ListInferenceProfiles" + ] + } + }, + "tagging": { + "cloudFormationSystemTags": true, + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true, + "permissions": [ + "bedrock:TagResource", + "bedrock:UntagResource", + "bedrock:ListTagsForResource" + ] + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json index 1c5db564cd..91898823a9 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_DataSource.json @@ -11,7 +11,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})$", + "pattern": "^arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}::foundation-model/([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.]?[a-z0-9-]{1,63})([:][a-z0-9-]{1,63}){0,2})|(arn:aws(|-us-gov|-cn|-iso|-iso-b):bedrock:(|[0-9a-z-]{1,20}):(|[0-9]{12}):(inference-profile|application-inference-profile)/[a-zA-Z0-9-:.]+)$", "description": "The model's ARN." }, "ParsingPrompt": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json index 2a739b4534..aac977ce9a 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Flow.json @@ -520,7 +520,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "GuardrailConfiguration": { @@ -642,7 +642,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json index e83687479d..06d2bee787 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_FlowVersion.json @@ -521,7 +521,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "GuardrailConfiguration": { @@ -620,7 +620,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json index 1ca9f4ada1..ffd70f6691 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_Prompt.json @@ -28,7 +28,7 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]{1,12})?:bedrock:[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration": { diff --git a/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json index dc3d0125a2..ae1d065995 100644 --- a/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json +++ b/internal/service/cloudformation/schemas/AWS_Bedrock_PromptVersion.json @@ -29,8 +29,8 @@ "type": "string", "maxLength": 2048, "minLength": 1, - "pattern": "^(arn:aws(-[^:]+)?:bedrock:[a-z0-9-]{1,20}:(([0-9]{12}:custom-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}/[a-z0-9]{12})|(:foundation-model/[a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|([0-9]{12}:provisioned-model/[a-z0-9]{12})))|([a-z0-9-]{1,63}[.]{1}[a-z0-9-]{1,63}([.:]?[a-z0-9-]{1,63}))|(([0-9a-zA-Z][_-]?)+)$", - "description": "ARN or name of a Bedrock model." + "pattern": "^(arn:aws(-[^:]{1,12})?:(bedrock|sagemaker):[a-z0-9-]{1,20}:([0-9]{12})?:([a-z-]+\/)?)?([a-zA-Z0-9.-]{1,63}){0,2}(([:][a-z0-9-]{1,63}){0,2})?(\/[a-z0-9]{1,12})?$", + "description": "ARN or Id of a Bedrock Foundational Model or Inference Profile, or the ARN of a imported model, or a provisioned throughput ARN for custom models." }, "InferenceConfiguration": { "$ref": "#/definitions/PromptInferenceConfiguration" @@ -38,7 +38,8 @@ }, "required": [ "Name", - "TemplateType" + "TemplateType", + "TemplateConfiguration" ], "additionalProperties": false }, @@ -58,7 +59,7 @@ "$ref": "#/definitions/PromptInputVariable" }, "maxItems": 5, - "minItems": 1, + "minItems": 0, "description": "List of input variables", "insertionOrder": true } @@ -102,12 +103,6 @@ "minimum": 0, "description": "Cumulative probability cutoff for token selection" }, - "TopK": { - "type": "number", - "maximum": 500, - "minimum": 0, - "description": "Sample from the k most likely next tokens" - }, "MaxTokens": { "type": "number", "maximum": 4096, @@ -214,7 +209,7 @@ "items": { "$ref": "#/definitions/PromptVariant" }, - "maxItems": 3, + "maxItems": 1, "minItems": 1, "description": "List of prompt variants", "insertionOrder": true @@ -265,7 +260,8 @@ ], "createOnlyProperties": [ "/properties/PromptArn", - "/properties/Description" + "/properties/Description", + "/properties/Tags" ], "handlers": { "create": { @@ -285,11 +281,6 @@ "kms:Decrypt" ] }, - "update": { - "permissions": [ - "noservice:NoAction" - ] - }, "delete": { "permissions": [ "bedrock:DeletePrompt", diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json index 2b54e84f46..aa27cf4667 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_AnalysisTemplate.json @@ -34,7 +34,20 @@ "TIMESTAMPTZ", "TIME", "TIMETZ", - "VARBYTE" + "VARBYTE", + "BINARY", + "BYTE", + "CHARACTER", + "DOUBLE", + "FLOAT", + "INT", + "LONG", + "NUMERIC", + "SHORT", + "STRING", + "TIMESTAMP_LTZ", + "TIMESTAMP_NTZ", + "TINYINT" ] } }, diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json index 71ccf68737..c4c16452b1 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Collaboration.json @@ -3,6 +3,13 @@ "description": "Represents a collaboration between AWS accounts that allows for secure data collaboration", "documentationUrl": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cleanrooms-collaboration.html", "definitions": { + "AnalyticsEngine": { + "type": "string", + "enum": [ + "CLEAN_ROOMS_SQL", + "SPARK" + ] + }, "CollaborationQueryLogStatus": { "type": "string", "enum": [ @@ -188,6 +195,9 @@ "QueryLogStatus": { "$ref": "#/definitions/CollaborationQueryLogStatus" }, + "AnalyticsEngine": { + "$ref": "#/definitions/AnalyticsEngine" + }, "CreatorPaymentConfiguration": { "$ref": "#/definitions/PaymentConfiguration" } @@ -210,7 +220,8 @@ "/properties/DataEncryptionMetadata", "/properties/QueryLogStatus", "/properties/Members", - "/properties/CreatorPaymentConfiguration" + "/properties/CreatorPaymentConfiguration", + "/properties/AnalyticsEngine" ], "primaryIdentifier": [ "/properties/CollaborationIdentifier" diff --git a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json index b489e4788f..743335e5c1 100644 --- a/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json +++ b/internal/service/cloudformation/schemas/AWS_CleanRooms_Membership.json @@ -58,6 +58,9 @@ }, "KeyPrefix": { "type": "string" + }, + "SingleFileOutput": { + "type": "boolean" } }, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json b/internal/service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json index 959f482556..3b972536ba 100644 --- a/internal/service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json +++ b/internal/service/cloudformation/schemas/AWS_Connect_HoursOfOperation.json @@ -31,6 +31,7 @@ "connect:CreateHoursOfOperationOverride", "connect:UpdateHoursOfOperationOverride", "connect:DeleteHoursOfOperationOverride", + "connect:ListHoursOfOperationOverrides", "connect:TagResource", "connect:UntagResource" ] diff --git a/internal/service/cloudformation/schemas/AWS_DataSync_Task.json b/internal/service/cloudformation/schemas/AWS_DataSync_Task.json index fe5e11fc3b..edff155d71 100644 --- a/internal/service/cloudformation/schemas/AWS_DataSync_Task.json +++ b/internal/service/cloudformation/schemas/AWS_DataSync_Task.json @@ -1,333 +1,63 @@ { - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", - "tagging": { - "permissions": [ - "datasync:TagResource", - "datasync:UntagResource", - "datasync:ListTagsForResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, - "handlers": { - "read": { - "permissions": [ - "datasync:DescribeTask", - "datasync:ListTagsForResource" - ] - }, - "create": { - "permissions": [ - "datasync:CreateTask", - "datasync:DescribeTask", - "datasync:ListTagsForResource", - "datasync:TagResource", - "s3:ListAllMyBuckets", - "s3:ListBucket", - "s3:GetObject", - "s3:GetObjectVersion", - "ec2:DescribeNetworkInterfaces", - "ec2:CreateNetworkInterface", - "ec2:DeleteNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "ec2:CreateNetworkInterfacePermission", - "fsx:DescribeFileSystems", - "elasticfilesystem:DescribeFileSystems", - "elasticfilesystem:DescribeMountTargets", - "logs:DescribeLogGroups", - "iam:GetRole", - "iam:PassRole", - "iam:AssumeRole" - ] - }, - "update": { - "permissions": [ - "datasync:UpdateTask", - "datasync:DescribeTask", - "datasync:ListTagsForResource", - "datasync:TagResource", - "datasync:UntagResource", - "logs:DescribeLogGroups", - "iam:PassRole" - ] - }, - "list": { - "permissions": [ - "datasync:ListTasks" - ] - }, - "delete": { - "permissions": [ - "datasync:DeleteTask", - "ec2:DescribeNetworkInterfaces", - "ec2:DeleteNetworkInterface", - "ec2:DescribeSecurityGroups", - "ec2:DescribeSubnets", - "fsx:DescribeFileSystems", - "elasticfilesystem:DescribeFileSystems", - "elasticfilesystem:DescribeMountTargets", - "iam:GetRole" - ] - } - }, "typeName": "AWS::DataSync::Task", - "readOnlyProperties": [ - "/properties/TaskArn", - "/properties/Status", - "/properties/SourceNetworkInterfaceArns", - "/properties/DestinationNetworkInterfaceArns" - ], "description": "Resource schema for AWS::DataSync::Task.", - "createOnlyProperties": [ - "/properties/DestinationLocationArn", - "/properties/SourceLocationArn" - ], - "additionalProperties": false, - "primaryIdentifier": [ - "/properties/TaskArn" - ], + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datasync.git", "definitions": { - "SourceNetworkInterfaceArns": { - "maxItems": 128, - "description": "The Amazon Resource Names (ARNs) of the source ENIs (Elastic Network Interfaces) that were created for your subnet.", - "insertionOrder": false, - "type": "array", - "items": { - "pattern": "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$", - "type": "string" - } - }, - "Options": { - "description": "Represents the options that are available to control the behavior of a StartTaskExecution operation.", + "FilterRule": { "additionalProperties": false, + "description": "Specifies which files folders and objects to include or exclude when transferring files from source to destination.", "type": "object", "properties": { - "VerifyMode": { - "description": "A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred.", - "type": "string", - "enum": [ - "POINT_IN_TIME_CONSISTENT", - "ONLY_FILES_TRANSFERRED", - "NONE" - ] - }, - "Gid": { - "description": "The group ID (GID) of the file's owners.", - "type": "string", - "enum": [ - "NONE", - "INT_VALUE", - "NAME", - "BOTH" - ] - }, - "Atime": { - "description": "A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to).", - "type": "string", - "enum": [ - "NONE", - "BEST_EFFORT" - ] - }, - "OverwriteMode": { - "description": "A value that determines whether files at the destination should be overwritten or preserved when copying files.", - "type": "string", - "enum": [ - "ALWAYS", - "NEVER" - ] - }, - "PreserveDevices": { - "description": "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and recreate the files with that device name and metadata on the destination.", - "type": "string", - "enum": [ - "NONE", - "PRESERVE" - ] - }, - "Mtime": { - "description": "A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase.", - "type": "string", - "enum": [ - "NONE", - "PRESERVE" - ] - }, - "TaskQueueing": { - "description": "A value that determines whether tasks should be queued before executing the tasks.", - "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] - }, - "TransferMode": { - "description": "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.", - "type": "string", - "enum": [ - "CHANGED", - "ALL" - ] - }, - "LogLevel": { - "description": "A value that determines the types of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide.", - "type": "string", - "enum": [ - "OFF", - "BASIC", - "TRANSFER" - ] - }, - "ObjectTags": { - "description": "A value that determines whether object tags should be read from the source object store and written to the destination object store.", - "type": "string", - "enum": [ - "PRESERVE", - "NONE" - ] - }, - "Uid": { - "description": "The user ID (UID) of the file's owner.", - "type": "string", - "enum": [ - "NONE", - "INT_VALUE", - "NAME", - "BOTH" - ] - }, - "BytesPerSecond": { - "format": "int64", - "description": "A value that limits the bandwidth used by AWS DataSync.", - "type": "integer", - "minimum": -1 - }, - "PosixPermissions": { - "description": "A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.", - "type": "string", - "enum": [ - "NONE", - "PRESERVE" - ] - }, - "PreserveDeletedFiles": { - "description": "A value that specifies whether files in the destination that don't exist in the source file system should be preserved.", - "type": "string", - "enum": [ - "PRESERVE", - "REMOVE" - ] - }, - "SecurityDescriptorCopyFlags": { - "description": "A value that determines which components of the SMB security descriptor are copied during transfer.", + "FilterType": { + "description": "The type of filter rule to apply. AWS DataSync only supports the SIMPLE_PATTERN rule type.", "type": "string", "enum": [ - "NONE", - "OWNER_DACL", - "OWNER_DACL_SACL" - ] - } - } - }, - "TaskReportConfigDestinationS3": { - "description": "Specifies the Amazon S3 bucket where DataSync uploads your task report.", - "additionalProperties": false, - "type": "object", - "properties": { - "Subdirectory": { - "pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$", - "description": "Specifies a bucket prefix for your report.", - "type": "string", - "maxLength": 4096 - }, - "S3BucketArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", - "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", - "type": "string", - "maxLength": 156 - }, - "BucketAccessRoleArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", - "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", - "type": "string", - "maxLength": 2048 - } - } - }, - "DestinationNetworkInterfaceArns": { - "maxItems": 128, - "description": "The Amazon Resource Names (ARNs) of the destination ENIs (Elastic Network Interfaces) that were created for your subnet.", - "insertionOrder": false, - "type": "array", - "items": { - "pattern": "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$", - "type": "string" - } - }, - "ManifestConfigSourceS3": { - "description": "Specifies the S3 bucket where you're hosting the manifest that you want AWS DataSync to use.", - "additionalProperties": false, - "type": "object", - "properties": { - "S3BucketArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$", - "description": "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.", - "type": "string", - "maxLength": 156 - }, - "BucketAccessRoleArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$", - "description": "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.", - "type": "string", - "maxLength": 2048 - }, - "ManifestObjectVersionId": { - "pattern": "^.+$", - "description": "Specifies the object version ID of the manifest that you want DataSync to use.", - "type": "string", - "maxLength": 100 + "SIMPLE_PATTERN" + ], + "pattern": "^[A-Z0-9_]+$", + "maxLength": 128 }, - "ManifestObjectPath": { - "pattern": "^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}\\p{C}]*$", - "description": "Specifies the Amazon S3 object key of your manifest.", + "Value": { + "description": "A single filter string that consists of the patterns to include or exclude. The patterns are delimited by \"|\".", "type": "string", - "maxLength": 1024 + "pattern": "^[^\\x00]+$", + "maxLength": 409600 } } }, - "TaskSchedule": { - "description": "Specifies the schedule you want your task to use for repeated executions.", + "Tag": { "additionalProperties": false, + "description": "A key-value pair to associate with a resource.", "type": "object", "properties": { - "Status": { - "description": "Specifies status of a schedule.", + "Key": { "type": "string", - "enum": [ - "ENABLED", - "DISABLED" - ] + "description": "The key for an AWS resource tag.", + "pattern": "^[a-zA-Z0-9\\s+=._:/-]+$", + "maxLength": 256, + "minLength": 1 }, - "ScheduleExpression": { - "pattern": "^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$", - "description": "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location", + "Value": { "type": "string", - "maxLength": 256 + "description": "The value for an AWS resource tag.", + "pattern": "^[a-zA-Z0-9\\s+=._:@/-]+$", + "maxLength": 256, + "minLength": 1 } - } + }, + "required": [ + "Key", + "Value" + ] }, "TaskReportConfig": { - "description": "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", "additionalProperties": false, + "description": "Specifies how you want to configure a task report, which provides detailed information about for your Datasync transfer.", "type": "object", "properties": { "Destination": { - "description": "Specifies where DataSync uploads your task report.", "additionalProperties": false, + "description": "Specifies where DataSync uploads your task report.", "type": "object", "properties": { "S3": { @@ -335,6 +65,14 @@ } } }, + "OutputType": { + "description": "Specifies the type of task report that you want.", + "type": "string", + "enum": [ + "SUMMARY_ONLY", + "STANDARD" + ] + }, "ReportLevel": { "description": "Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.", "type": "string", @@ -352,13 +90,13 @@ ] }, "Overrides": { - "description": "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", "additionalProperties": false, + "description": "Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that Datasync attempted to delete in your destination location.", "type": "object", "properties": { - "Verified": { - "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", + "Transferred": { "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", "type": "object", "properties": { "ReportLevel": { @@ -371,9 +109,9 @@ } } }, - "Skipped": { - "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", + "Verified": { "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to verify at the end of your transfer. This only applies if you configure your task to verify data during and after the transfer (which Datasync does by default)", "type": "object", "properties": { "ReportLevel": { @@ -386,9 +124,9 @@ } } }, - "Transferred": { - "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to transfer.", + "Deleted": { "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", "type": "object", "properties": { "ReportLevel": { @@ -401,9 +139,9 @@ } } }, - "Deleted": { - "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.", + "Skipped": { "additionalProperties": false, + "description": "Specifies the level of reporting for the files, objects, and directories that Datasync attempted to skip during your transfer.", "type": "object", "properties": { "ReportLevel": { @@ -417,14 +155,6 @@ } } } - }, - "OutputType": { - "description": "Specifies the type of task report that you want.", - "type": "string", - "enum": [ - "SUMMARY_ONLY", - "STANDARD" - ] } }, "required": [ @@ -432,180 +162,459 @@ "OutputType" ] }, - "FilterRule": { - "description": "Specifies which files folders and objects to include or exclude when transferring files from source to destination.", + "TaskReportConfigDestinationS3": { "additionalProperties": false, + "description": "Specifies the Amazon S3 bucket where DataSync uploads your task report.", "type": "object", "properties": { - "FilterType": { - "pattern": "^[A-Z0-9_]+$", - "description": "The type of filter rule to apply. AWS DataSync only supports the SIMPLE_PATTERN rule type.", + "Subdirectory": { + "description": "Specifies a bucket prefix for your report.", "type": "string", - "enum": [ - "SIMPLE_PATTERN" - ], - "maxLength": 128 + "maxLength": 4096, + "pattern": "^[a-zA-Z0-9_\\-\\+\\./\\(\\)\\p{Zs}]*$" }, - "Value": { - "pattern": "^[^\\x00]+$", - "description": "A single filter string that consists of the patterns to include or exclude. The patterns are delimited by \"|\".", + "BucketAccessRoleArn": { + "description": "Specifies the Amazon Resource Name (ARN) of the IAM policy that allows Datasync to upload a task report to your S3 bucket.", "type": "string", - "maxLength": 409600 + "maxLength": 2048, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$" + }, + "S3BucketArn": { + "description": "Specifies the ARN of the S3 bucket where Datasync uploads your report.", + "type": "string", + "maxLength": 156, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" } } }, - "Tag": { - "description": "A key-value pair to associate with a resource.", + "ManifestConfig": { "additionalProperties": false, + "description": "Configures a manifest, which is a list of files or objects that you want DataSync to transfer.", "type": "object", "properties": { - "Value": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9\\s+=._:@/-]+$", - "description": "The value for an AWS resource tag.", + "Action": { + "description": "Specifies what DataSync uses the manifest for.", "type": "string", - "maxLength": 256 + "enum": [ + "TRANSFER" + ] }, - "Key": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9\\s+=._:/-]+$", - "description": "The key for an AWS resource tag.", + "Format": { + "description": "Specifies the file format of your manifest.", "type": "string", - "maxLength": 256 + "enum": [ + "CSV" + ] + }, + "Source": { + "additionalProperties": false, + "description": "Specifies the manifest that you want DataSync to use and where it's hosted.", + "type": "object", + "properties": { + "S3": { + "$ref": "#/definitions/ManifestConfigSourceS3" + } + } } }, "required": [ - "Key", - "Value" + "Source" ] }, - "ManifestConfig": { - "description": "Configures a manifest, which is a list of files or objects that you want DataSync to transfer.", + "ManifestConfigSourceS3": { "additionalProperties": false, + "description": "Specifies the S3 bucket where you're hosting the manifest that you want AWS DataSync to use.", "type": "object", "properties": { - "Action": { - "description": "Specifies what DataSync uses the manifest for.", + "ManifestObjectPath": { + "description": "Specifies the Amazon S3 object key of your manifest.", + "type": "string", + "maxLength": 1024, + "pattern": "^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}\\p{C}]*$" + }, + "BucketAccessRoleArn": { + "description": "Specifies the AWS Identity and Access Management (IAM) role that allows DataSync to access your manifest.", + "type": "string", + "maxLength": 2048, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$" + }, + "S3BucketArn": { + "description": "Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.", + "type": "string", + "maxLength": 156, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):(s3|s3-outposts):[a-z\\-0-9]*:[0-9]*:.*$" + }, + "ManifestObjectVersionId": { + "description": "Specifies the object version ID of the manifest that you want DataSync to use.", + "type": "string", + "maxLength": 100, + "pattern": "^.+$" + } + } + }, + "TaskSchedule": { + "additionalProperties": false, + "description": "Specifies the schedule you want your task to use for repeated executions.", + "type": "object", + "properties": { + "ScheduleExpression": { + "description": "A cron expression that specifies when AWS DataSync initiates a scheduled transfer from a source to a destination location", + "type": "string", + "maxLength": 256, + "pattern": "^[a-zA-Z0-9\\ \\_\\*\\?\\,\\|\\^\\-\\/\\#\\s\\(\\)\\+]*$" + }, + "Status": { + "description": "Specifies status of a schedule.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + } + } + }, + "Options": { + "additionalProperties": false, + "description": "Represents the options that are available to control the behavior of a StartTaskExecution operation.", + "type": "object", + "properties": { + "Atime": { + "description": "A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to).", + "type": "string", + "enum": [ + "NONE", + "BEST_EFFORT" + ] + }, + "BytesPerSecond": { + "description": "A value that limits the bandwidth used by AWS DataSync.", + "type": "integer", + "format": "int64", + "minimum": -1 + }, + "Gid": { + "description": "The group ID (GID) of the file's owners.", + "type": "string", + "enum": [ + "NONE", + "INT_VALUE", + "NAME", + "BOTH" + ] + }, + "LogLevel": { + "description": "A value that determines the types of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide.", + "type": "string", + "enum": [ + "OFF", + "BASIC", + "TRANSFER" + ] + }, + "Mtime": { + "description": "A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase.", + "type": "string", + "enum": [ + "NONE", + "PRESERVE" + ] + }, + "OverwriteMode": { + "description": "A value that determines whether files at the destination should be overwritten or preserved when copying files.", + "type": "string", + "enum": [ + "ALWAYS", + "NEVER" + ] + }, + "PosixPermissions": { + "description": "A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.", + "type": "string", + "enum": [ + "NONE", + "PRESERVE" + ] + }, + "PreserveDeletedFiles": { + "description": "A value that specifies whether files in the destination that don't exist in the source file system should be preserved.", + "type": "string", + "enum": [ + "PRESERVE", + "REMOVE" + ] + }, + "PreserveDevices": { + "description": "A value that determines whether AWS DataSync should preserve the metadata of block and character devices in the source file system, and recreate the files with that device name and metadata on the destination.", + "type": "string", + "enum": [ + "NONE", + "PRESERVE" + ] + }, + "SecurityDescriptorCopyFlags": { + "description": "A value that determines which components of the SMB security descriptor are copied during transfer.", + "type": "string", + "enum": [ + "NONE", + "OWNER_DACL", + "OWNER_DACL_SACL" + ] + }, + "TaskQueueing": { + "description": "A value that determines whether tasks should be queued before executing the tasks.", + "type": "string", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "TransferMode": { + "description": "A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.", "type": "string", "enum": [ - "TRANSFER" + "CHANGED", + "ALL" ] }, - "Format": { - "description": "Specifies the file format of your manifest.", + "Uid": { + "description": "The user ID (UID) of the file's owner.", "type": "string", "enum": [ - "CSV" + "NONE", + "INT_VALUE", + "NAME", + "BOTH" ] }, - "Source": { - "description": "Specifies the manifest that you want DataSync to use and where it's hosted.", - "additionalProperties": false, - "type": "object", - "properties": { - "S3": { - "$ref": "#/definitions/ManifestConfigSourceS3" - } - } + "VerifyMode": { + "description": "A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred.", + "type": "string", + "enum": [ + "POINT_IN_TIME_CONSISTENT", + "ONLY_FILES_TRANSFERRED", + "NONE" + ] + }, + "ObjectTags": { + "description": "A value that determines whether object tags should be read from the source object store and written to the destination object store.", + "type": "string", + "enum": [ + "PRESERVE", + "NONE" + ] } + } + }, + "SourceNetworkInterfaceArns": { + "description": "The Amazon Resource Names (ARNs) of the source ENIs (Elastic Network Interfaces) that were created for your subnet.", + "type": "array", + "items": { + "type": "string", + "pattern": "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$" }, - "required": [ - "Source" - ] + "maxItems": 128, + "insertionOrder": false + }, + "DestinationNetworkInterfaceArns": { + "description": "The Amazon Resource Names (ARNs) of the destination ENIs (Elastic Network Interfaces) that were created for your subnet.", + "type": "array", + "items": { + "type": "string", + "pattern": "^arn:aws[\\-a-z]{0,}:ec2:[a-z\\-0-9]*:[0-9]{12}:network-interface/eni-[0-9a-f]+$" + }, + "maxItems": 128, + "insertionOrder": false } }, - "required": [ - "DestinationLocationArn", - "SourceLocationArn" - ], "properties": { - "Status": { - "description": "The status of the task that was described.", - "type": "string", - "enum": [ - "AVAILABLE", - "CREATING", - "QUEUED", - "RUNNING", - "UNAVAILABLE" - ] - }, - "SourceNetworkInterfaceArns": { - "$ref": "#/definitions/SourceNetworkInterfaceArns" - }, - "DestinationLocationArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$", - "description": "The ARN of an AWS storage resource's location.", - "type": "string", - "maxLength": 128 - }, - "Options": { - "$ref": "#/definitions/Options" - }, - "TaskReportConfig": { - "$ref": "#/definitions/TaskReportConfig" - }, "Excludes": { + "type": "array", "minItems": 0, "maxItems": 1, - "insertionOrder": false, + "items": { + "$ref": "#/definitions/FilterRule" + }, + "insertionOrder": false + }, + "Includes": { "type": "array", + "minItems": 0, + "maxItems": 1, "items": { "$ref": "#/definitions/FilterRule" + }, + "insertionOrder": false + }, + "Tags": { + "description": "An array of key-value pairs to apply to this resource.", + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" } }, + "CloudWatchLogGroupArn": { + "description": "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.", + "type": "string", + "maxLength": 562, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$" + }, + "DestinationLocationArn": { + "description": "The ARN of an AWS storage resource's location.", + "type": "string", + "maxLength": 128, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$" + }, "Name": { - "minLength": 1, - "pattern": "^[a-zA-Z0-9\\s+=._:@/-]+$", "description": "The name of a task. This value is a text reference that is used to identify the task in the console.", "type": "string", - "maxLength": 256 + "maxLength": 256, + "minLength": 1, + "pattern": "^[a-zA-Z0-9\\s+=._:@/-]+$" + }, + "Options": { + "$ref": "#/definitions/Options" + }, + "TaskReportConfig": { + "$ref": "#/definitions/TaskReportConfig" }, "ManifestConfig": { "$ref": "#/definitions/ManifestConfig" }, + "Schedule": { + "$ref": "#/definitions/TaskSchedule" + }, + "SourceLocationArn": { + "description": "The ARN of the source location for the task.", + "type": "string", + "maxLength": 128, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$" + }, "TaskArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$", "description": "The ARN of the task.", "type": "string", - "maxLength": 128 + "maxLength": 128, + "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]*:[0-9]{12}:task/task-[0-9a-f]{17}$" }, - "Includes": { - "minItems": 0, - "maxItems": 1, - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/FilterRule" - } + "TaskMode": { + "description": "Specifies the task mode for the task.", + "type": "string", + "enum": [ + "BASIC", + "ENHANCED" + ] + }, + "Status": { + "description": "The status of the task that was described.", + "type": "string", + "enum": [ + "AVAILABLE", + "CREATING", + "QUEUED", + "RUNNING", + "UNAVAILABLE" + ] + }, + "SourceNetworkInterfaceArns": { + "$ref": "#/definitions/SourceNetworkInterfaceArns" }, "DestinationNetworkInterfaceArns": { "$ref": "#/definitions/DestinationNetworkInterfaceArns" + } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "datasync:TagResource", + "datasync:UntagResource", + "datasync:ListTagsForResource" + ] + }, + "additionalProperties": false, + "required": [ + "DestinationLocationArn", + "SourceLocationArn" + ], + "readOnlyProperties": [ + "/properties/TaskArn", + "/properties/Status", + "/properties/SourceNetworkInterfaceArns", + "/properties/DestinationNetworkInterfaceArns" + ], + "primaryIdentifier": [ + "/properties/TaskArn" + ], + "createOnlyProperties": [ + "/properties/DestinationLocationArn", + "/properties/SourceLocationArn", + "/properties/TaskMode" + ], + "handlers": { + "create": { + "permissions": [ + "datasync:CreateTask", + "datasync:DescribeTask", + "datasync:ListTagsForResource", + "datasync:TagResource", + "s3:ListAllMyBuckets", + "s3:ListBucket", + "s3:GetObject", + "s3:GetObjectVersion", + "ec2:DescribeNetworkInterfaces", + "ec2:CreateNetworkInterface", + "ec2:DeleteNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:CreateNetworkInterfacePermission", + "fsx:DescribeFileSystems", + "elasticfilesystem:DescribeFileSystems", + "elasticfilesystem:DescribeMountTargets", + "logs:DescribeLogGroups", + "iam:GetRole", + "iam:PassRole", + "iam:AssumeRole" + ] }, - "Schedule": { - "$ref": "#/definitions/TaskSchedule" + "read": { + "permissions": [ + "datasync:DescribeTask", + "datasync:ListTagsForResource" + ] }, - "CloudWatchLogGroupArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):logs:[a-z\\-0-9]*:[0-9]{12}:log-group:([^:\\*]*)(:\\*)?$", - "description": "The ARN of the Amazon CloudWatch log group that is used to monitor and log events in the task.", - "type": "string", - "maxLength": 562 + "update": { + "permissions": [ + "datasync:UpdateTask", + "datasync:DescribeTask", + "datasync:ListTagsForResource", + "datasync:TagResource", + "datasync:UntagResource", + "logs:DescribeLogGroups", + "iam:PassRole" + ] }, - "SourceLocationArn": { - "pattern": "^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):datasync:[a-z\\-0-9]+:[0-9]{12}:location/loc-[0-9a-z]{17}$", - "description": "The ARN of the source location for the task.", - "type": "string", - "maxLength": 128 + "delete": { + "permissions": [ + "datasync:DeleteTask", + "ec2:DescribeNetworkInterfaces", + "ec2:DeleteNetworkInterface", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "fsx:DescribeFileSystems", + "elasticfilesystem:DescribeFileSystems", + "elasticfilesystem:DescribeMountTargets", + "iam:GetRole" + ] }, - "Tags": { - "maxItems": 50, - "uniqueItems": true, - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "type": "array", - "items": { - "$ref": "#/definitions/Tag" - } + "list": { + "permissions": [ + "datasync:ListTasks" + ] } } } diff --git a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json index 457eafa0f9..1cc4b0d6eb 100644 --- a/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json +++ b/internal/service/cloudformation/schemas/AWS_DynamoDB_GlobalTable.json @@ -1,86 +1,222 @@ { - "typeName": "AWS::DynamoDB::GlobalTable", - "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", - "additionalProperties": false, - "properties": { - "Arn": { - "type": "string" - }, - "StreamArn": { - "type": "string" - }, - "AttributeDefinitions": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/AttributeDefinition" - }, - "minItems": 1 - }, - "BillingMode": { - "type": "string" - }, - "GlobalSecondaryIndexes": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/GlobalSecondaryIndex" - } - }, - "KeySchema": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/KeySchema" - }, - "minItems": 1, - "maxItems": 2 + "handlers": { + "read": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:GetResourcePolicy", + "application-autoscaling:Describe*", + "cloudwatch:PutMetricData", + "dynamodb:ListTagsOfResource", + "kms:DescribeKey" + ] }, - "LocalSecondaryIndexes": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/LocalSecondaryIndex" - } + "create": { + "permissions": [ + "dynamodb:CreateTable", + "dynamodb:CreateTableReplica", + "dynamodb:Describe*", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContributorInsights", + "dynamodb:UpdateContinuousBackups", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:TagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:TagResource", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:Decrypt", + "kms:RevokeGrant", + "cloudwatch:PutMetricData", + "iam:CreateServiceLinkedRole" + ] }, - "WriteProvisionedThroughputSettings": { - "$ref": "#/definitions/WriteProvisionedThroughputSettings" + "update": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:CreateTableReplica", + "dynamodb:UpdateTable", + "dynamodb:UpdateTimeToLive", + "dynamodb:UpdateContinuousBackups", + "dynamodb:UpdateContributorInsights", + "dynamodb:ListTagsOfResource", + "dynamodb:Query", + "dynamodb:Scan", + "dynamodb:UpdateItem", + "dynamodb:PutItem", + "dynamodb:GetItem", + "dynamodb:DeleteItem", + "dynamodb:BatchWriteItem", + "dynamodb:DeleteTable", + "dynamodb:DeleteTableReplica", + "dynamodb:UpdateItem", + "dynamodb:TagResource", + "dynamodb:UntagResource", + "dynamodb:EnableKinesisStreamingDestination", + "dynamodb:DisableKinesisStreamingDestination", + "dynamodb:UpdateTableReplicaAutoScaling", + "dynamodb:UpdateKinesisStreamingDestination", + "dynamodb:GetResourcePolicy", + "dynamodb:PutResourcePolicy", + "dynamodb:DeleteResourcePolicy", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget", + "kinesis:ListStreams", + "kinesis:DescribeStream", + "kinesis:PutRecords", + "kms:CreateGrant", + "kms:DescribeKey", + "kms:ListAliases", + "kms:RevokeGrant", + "cloudwatch:PutMetricData" + ], + "timeoutInMinutes": 1200 }, - "WriteOnDemandThroughputSettings": { - "$ref": "#/definitions/WriteOnDemandThroughputSettings" + "list": { + "permissions": [ + "dynamodb:ListTables", + "cloudwatch:PutMetricData" + ] }, - "Replicas": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicaSpecification" + "delete": { + "permissions": [ + "dynamodb:Describe*", + "dynamodb:DeleteTable", + "application-autoscaling:DeleteScalingPolicy", + "application-autoscaling:DeleteScheduledAction", + "application-autoscaling:DeregisterScalableTarget", + "application-autoscaling:Describe*", + "application-autoscaling:PutScalingPolicy", + "application-autoscaling:PutScheduledAction", + "application-autoscaling:RegisterScalableTarget" + ] + } + }, + "typeName": "AWS::DynamoDB::GlobalTable", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/StreamArn", + "/properties/TableId" + ], + "description": "Version: None. Resource Type definition for AWS::DynamoDB::GlobalTable", + "additionalIdentifiers": [ + [ + "/properties/Arn" + ], + [ + "/properties/StreamArn" + ] + ], + "writeOnlyProperties": [ + "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", + "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", + "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" + ], + "createOnlyProperties": [ + "/properties/LocalSecondaryIndexes", + "/properties/TableName", + "/properties/KeySchema" + ], + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/TableName" + ], + "definitions": { + "LocalSecondaryIndex": { + "additionalProperties": false, + "type": "object", + "properties": { + "IndexName": { + "minLength": 3, + "type": "string", + "maxLength": 255 + }, + "Projection": { + "$ref": "#/definitions/Projection" + }, + "KeySchema": { + "maxItems": 2, + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/KeySchema" + } + } }, - "minItems": 1 + "required": [ + "IndexName", + "Projection", + "KeySchema" + ] }, "SSESpecification": { - "$ref": "#/definitions/SSESpecification" - }, - "StreamSpecification": { - "$ref": "#/definitions/StreamSpecification" - }, - "TableName": { - "type": "string" + "additionalProperties": false, + "type": "object", + "properties": { + "SSEEnabled": { + "type": "boolean" + }, + "SSEType": { + "type": "string" + } + }, + "required": [ + "SSEEnabled" + ] }, - "TableId": { - "type": "string" + "KinesisStreamSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "ApproximateCreationDateTimePrecision": { + "type": "string", + "enum": [ + "MICROSECOND", + "MILLISECOND" + ] + }, + "StreamArn": { + "relationshipRef": { + "typeName": "AWS::Kinesis::Stream", + "propertyPath": "/properties/Arn" + }, + "type": "string" + } + }, + "required": [ + "StreamArn" + ] }, - "TimeToLiveSpecification": { - "$ref": "#/definitions/TimeToLiveSpecification" - } - }, - "definitions": { "StreamSpecification": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "StreamViewType": { "type": "string" @@ -90,200 +226,214 @@ "StreamViewType" ] }, - "ResourcePolicy": { - "type": "object", + "ContributorInsightsSpecification": { "additionalProperties": false, + "type": "object", "properties": { - "PolicyDocument": { - "type": "object" + "Enabled": { + "type": "boolean" } }, "required": [ - "PolicyDocument" + "Enabled" ] }, - "ReplicaStreamSpecification": { - "type": "object", + "ReplicaSpecification": { "additionalProperties": false, + "type": "object", "properties": { + "SSESpecification": { + "$ref": "#/definitions/ReplicaSSESpecification" + }, + "KinesisStreamSpecification": { + "$ref": "#/definitions/KinesisStreamSpecification" + }, + "ContributorInsightsSpecification": { + "$ref": "#/definitions/ContributorInsightsSpecification" + }, + "PointInTimeRecoverySpecification": { + "$ref": "#/definitions/PointInTimeRecoverySpecification" + }, + "ReplicaStreamSpecification": { + "$ref": "#/definitions/ReplicaStreamSpecification" + }, + "GlobalSecondaryIndexes": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" + } + }, + "Region": { + "type": "string" + }, "ResourcePolicy": { "$ref": "#/definitions/ResourcePolicy" + }, + "ReadProvisionedThroughputSettings": { + "$ref": "#/definitions/ReadProvisionedThroughputSettings" + }, + "TableClass": { + "type": "string" + }, + "DeletionProtectionEnabled": { + "type": "boolean" + }, + "Tags": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/Tag" + } + }, + "ReadOnDemandThroughputSettings": { + "$ref": "#/definitions/ReadOnDemandThroughputSettings" } }, "required": [ - "ResourcePolicy" + "Region" ] }, - "KinesisStreamSpecification": { - "type": "object", + "CapacityAutoScalingSettings": { "additionalProperties": false, + "type": "object", "properties": { - "StreamArn": { - "type": "string", - "relationshipRef": { - "typeName": "AWS::Kinesis::Stream", - "propertyPath": "/properties/Arn" - } + "MinCapacity": { + "type": "integer", + "minimum": 1 }, - "ApproximateCreationDateTimePrecision": { - "type": "string", - "enum": [ - "MICROSECOND", - "MILLISECOND" - ] + "SeedCapacity": { + "type": "integer", + "minimum": 1 + }, + "TargetTrackingScalingPolicyConfiguration": { + "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + }, + "MaxCapacity": { + "type": "integer", + "minimum": 1 } }, "required": [ - "StreamArn" + "MinCapacity", + "MaxCapacity", + "TargetTrackingScalingPolicyConfiguration" ] }, - "KeySchema": { - "type": "object", + "AttributeDefinition": { "additionalProperties": false, + "type": "object", "properties": { + "AttributeType": { + "type": "string" + }, "AttributeName": { - "type": "string", "minLength": 1, + "type": "string", "maxLength": 255 - }, - "KeyType": { - "type": "string" } }, "required": [ - "KeyType", - "AttributeName" + "AttributeName", + "AttributeType" ] }, - "PointInTimeRecoverySpecification": { + "Projection": { + "additionalProperties": false, "type": "object", + "properties": { + "NonKeyAttributes": { + "maxItems": 20, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "type": "string" + } + }, + "ProjectionType": { + "type": "string" + } + } + }, + "PointInTimeRecoverySpecification": { "additionalProperties": false, + "type": "object", "properties": { "PointInTimeRecoveryEnabled": { "type": "boolean" } } }, - "ReplicaSpecification": { - "type": "object", + "ReplicaGlobalSecondaryIndexSpecification": { "additionalProperties": false, + "type": "object", "properties": { - "Region": { - "type": "string" - }, - "GlobalSecondaryIndexes": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "$ref": "#/definitions/ReplicaGlobalSecondaryIndexSpecification" - } + "IndexName": { + "minLength": 3, + "type": "string", + "maxLength": 255 }, "ContributorInsightsSpecification": { "$ref": "#/definitions/ContributorInsightsSpecification" }, - "PointInTimeRecoverySpecification": { - "$ref": "#/definitions/PointInTimeRecoverySpecification" - }, - "TableClass": { - "type": "string" - }, - "DeletionProtectionEnabled": { - "type": "boolean" - }, - "SSESpecification": { - "$ref": "#/definitions/ReplicaSSESpecification" - }, - "Tags": { - "type": "array", - "insertionOrder": false, - "uniqueItems": true, - "items": { - "$ref": "#/definitions/Tag" - } - }, "ReadProvisionedThroughputSettings": { "$ref": "#/definitions/ReadProvisionedThroughputSettings" }, "ReadOnDemandThroughputSettings": { "$ref": "#/definitions/ReadOnDemandThroughputSettings" - }, - "KinesisStreamSpecification": { - "$ref": "#/definitions/KinesisStreamSpecification" - }, - "ResourcePolicy": { - "$ref": "#/definitions/ResourcePolicy" - }, - "ReplicaStreamSpecification": { - "$ref": "#/definitions/ReplicaStreamSpecification" } }, "required": [ - "Region" + "IndexName" ] }, - "TimeToLiveSpecification": { - "type": "object", + "TargetTrackingScalingPolicyConfiguration": { "additionalProperties": false, + "type": "object", "properties": { - "AttributeName": { - "type": "string" + "ScaleOutCooldown": { + "type": "integer", + "minimum": 0 }, - "Enabled": { + "TargetValue": { + "format": "double", + "type": "number" + }, + "DisableScaleIn": { "type": "boolean" + }, + "ScaleInCooldown": { + "type": "integer", + "minimum": 0 } }, "required": [ - "Enabled" + "TargetValue" ] }, - "LocalSecondaryIndex": { - "type": "object", + "GlobalSecondaryIndex": { "additionalProperties": false, + "type": "object", "properties": { "IndexName": { - "type": "string", "minLength": 3, + "type": "string", "maxLength": 255 }, - "KeySchema": { - "type": "array", - "uniqueItems": true, - "items": { - "$ref": "#/definitions/KeySchema" - }, - "maxItems": 2 - }, "Projection": { "$ref": "#/definitions/Projection" - } - }, - "required": [ - "IndexName", - "Projection", - "KeySchema" - ] - }, - "GlobalSecondaryIndex": { - "type": "object", - "additionalProperties": false, - "properties": { - "IndexName": { - "type": "string", - "minLength": 3, - "maxLength": 255 }, "KeySchema": { - "type": "array", + "minItems": 1, + "maxItems": 2, "uniqueItems": true, + "type": "array", "items": { "$ref": "#/definitions/KeySchema" - }, - "minItems": 1, - "maxItems": 2 - }, - "Projection": { - "$ref": "#/definitions/Projection" + } }, "WriteProvisionedThroughputSettings": { "$ref": "#/definitions/WriteProvisionedThroughputSettings" @@ -298,27 +448,42 @@ "KeySchema" ] }, - "SSESpecification": { + "WriteProvisionedThroughputSettings": { + "additionalProperties": false, "type": "object", + "properties": { + "WriteCapacityAutoScalingSettings": { + "$ref": "#/definitions/CapacityAutoScalingSettings" + } + } + }, + "WriteOnDemandThroughputSettings": { "additionalProperties": false, + "type": "object", "properties": { - "SSEEnabled": { - "type": "boolean" - }, - "SSEType": { - "type": "string" + "MaxWriteRequestUnits": { + "type": "integer", + "minimum": 1 + } + } + }, + "ReplicaStreamSpecification": { + "additionalProperties": false, + "type": "object", + "properties": { + "ResourcePolicy": { + "$ref": "#/definitions/ResourcePolicy" } }, "required": [ - "SSEEnabled" + "ResourcePolicy" ] }, "ReplicaSSESpecification": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "KMSMasterKeyId": { - "type": "string", "anyOf": [ { "relationshipRef": { @@ -338,191 +503,97 @@ "propertyPath": "/properties/AliasName" } } - ] + ], + "type": "string" } }, "required": [ "KMSMasterKeyId" ] }, - "AttributeDefinition": { - "type": "object", + "ResourcePolicy": { "additionalProperties": false, - "properties": { - "AttributeName": { - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "AttributeType": { - "type": "string" - } - }, - "required": [ - "AttributeName", - "AttributeType" - ] - }, - "Tag": { "type": "object", - "additionalProperties": false, "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" + "PolicyDocument": { + "type": "object" } }, "required": [ - "Value", - "Key" + "PolicyDocument" ] }, - "Projection": { - "type": "object", + "KeySchema": { "additionalProperties": false, - "properties": { - "NonKeyAttributes": { - "type": "array", - "uniqueItems": true, - "insertionOrder": false, - "items": { - "type": "string" - }, - "maxItems": 20 - }, - "ProjectionType": { - "type": "string" - } - } - }, - "ReplicaGlobalSecondaryIndexSpecification": { "type": "object", - "additionalProperties": false, "properties": { - "IndexName": { + "KeyType": { + "type": "string" + }, + "AttributeName": { + "minLength": 1, "type": "string", - "minLength": 3, "maxLength": 255 - }, - "ContributorInsightsSpecification": { - "$ref": "#/definitions/ContributorInsightsSpecification" - }, - "ReadProvisionedThroughputSettings": { - "$ref": "#/definitions/ReadProvisionedThroughputSettings" - }, - "ReadOnDemandThroughputSettings": { - "$ref": "#/definitions/ReadOnDemandThroughputSettings" } }, "required": [ - "IndexName" + "KeyType", + "AttributeName" ] }, - "ContributorInsightsSpecification": { - "type": "object", + "Tag": { "additionalProperties": false, + "type": "object", "properties": { - "Enabled": { - "type": "boolean" + "Value": { + "type": "string" + }, + "Key": { + "type": "string" } }, "required": [ - "Enabled" + "Value", + "Key" ] }, "ReadProvisionedThroughputSettings": { - "type": "object", "additionalProperties": false, + "type": "object", "properties": { "ReadCapacityUnits": { "type": "integer", "minimum": 1 }, "ReadCapacityAutoScalingSettings": { - "$ref": "#/definitions/CapacityAutoScalingSettings" - } - } - }, - "WriteProvisionedThroughputSettings": { - "type": "object", - "additionalProperties": false, - "properties": { - "WriteCapacityAutoScalingSettings": { - "$ref": "#/definitions/CapacityAutoScalingSettings" - } - } - }, - "ReadOnDemandThroughputSettings": { - "type": "object", - "additionalProperties": false, - "properties": { - "MaxReadRequestUnits": { - "type": "integer", - "minimum": 1 - } - } - }, - "WriteOnDemandThroughputSettings": { - "type": "object", - "additionalProperties": false, - "properties": { - "MaxWriteRequestUnits": { - "type": "integer", - "minimum": 1 + "$ref": "#/definitions/CapacityAutoScalingSettings" } } }, - "CapacityAutoScalingSettings": { - "type": "object", + "TimeToLiveSpecification": { "additionalProperties": false, + "type": "object", "properties": { - "MinCapacity": { - "type": "integer", - "minimum": 1 - }, - "MaxCapacity": { - "type": "integer", - "minimum": 1 - }, - "SeedCapacity": { - "type": "integer", - "minimum": 1 + "Enabled": { + "type": "boolean" }, - "TargetTrackingScalingPolicyConfiguration": { - "$ref": "#/definitions/TargetTrackingScalingPolicyConfiguration" + "AttributeName": { + "type": "string" } }, "required": [ - "MinCapacity", - "MaxCapacity", - "TargetTrackingScalingPolicyConfiguration" + "Enabled" ] }, - "TargetTrackingScalingPolicyConfiguration": { - "type": "object", + "ReadOnDemandThroughputSettings": { "additionalProperties": false, + "type": "object", "properties": { - "DisableScaleIn": { - "type": "boolean" - }, - "ScaleInCooldown": { - "type": "integer", - "minimum": 0 - }, - "ScaleOutCooldown": { + "MaxReadRequestUnits": { "type": "integer", - "minimum": 0 - }, - "TargetValue": { - "type": "number", - "format": "double" + "minimum": 1 } - }, - "required": [ - "TargetValue" - ] + } } }, "required": [ @@ -530,150 +601,79 @@ "AttributeDefinitions", "Replicas" ], - "readOnlyProperties": [ - "/properties/Arn", - "/properties/StreamArn", - "/properties/TableId" - ], - "createOnlyProperties": [ - "/properties/LocalSecondaryIndexes", - "/properties/TableName", - "/properties/KeySchema" - ], - "primaryIdentifier": [ - "/properties/TableName" - ], - "additionalIdentifiers": [ - [ - "/properties/Arn" - ], - [ - "/properties/StreamArn" - ] - ], - "writeOnlyProperties": [ - "/properties/Replicas/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/Replicas/*/GlobalSecondaryIndexes/*/ReadProvisionedThroughputSettings/ReadCapacityAutoScalingSettings/SeedCapacity", - "/properties/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity", - "/properties/GlobalSecondaryIndexes/*/WriteProvisionedThroughputSettings/WriteCapacityAutoScalingSettings/SeedCapacity" - ], - "handlers": { - "create": { - "permissions": [ - "dynamodb:CreateTable", - "dynamodb:CreateTableReplica", - "dynamodb:Describe*", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContributorInsights", - "dynamodb:UpdateContinuousBackups", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:TagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:TagResource", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:Decrypt", - "kms:RevokeGrant", - "cloudwatch:PutMetricData", - "iam:CreateServiceLinkedRole" - ] + "properties": { + "TableId": { + "type": "string" }, - "read": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:GetResourcePolicy", - "application-autoscaling:Describe*", - "cloudwatch:PutMetricData", - "dynamodb:ListTagsOfResource", - "kms:DescribeKey" - ] + "SSESpecification": { + "$ref": "#/definitions/SSESpecification" }, - "update": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:CreateTableReplica", - "dynamodb:UpdateTable", - "dynamodb:UpdateTimeToLive", - "dynamodb:UpdateContinuousBackups", - "dynamodb:UpdateContributorInsights", - "dynamodb:ListTagsOfResource", - "dynamodb:Query", - "dynamodb:Scan", - "dynamodb:UpdateItem", - "dynamodb:PutItem", - "dynamodb:GetItem", - "dynamodb:DeleteItem", - "dynamodb:BatchWriteItem", - "dynamodb:DeleteTable", - "dynamodb:DeleteTableReplica", - "dynamodb:UpdateItem", - "dynamodb:TagResource", - "dynamodb:UntagResource", - "dynamodb:EnableKinesisStreamingDestination", - "dynamodb:DisableKinesisStreamingDestination", - "dynamodb:UpdateTableReplicaAutoScaling", - "dynamodb:UpdateKinesisStreamingDestination", - "dynamodb:GetResourcePolicy", - "dynamodb:PutResourcePolicy", - "dynamodb:DeleteResourcePolicy", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget", - "kinesis:ListStreams", - "kinesis:DescribeStream", - "kinesis:PutRecords", - "kms:CreateGrant", - "kms:DescribeKey", - "kms:ListAliases", - "kms:RevokeGrant", - "cloudwatch:PutMetricData" - ], - "timeoutInMinutes": 1200 + "StreamSpecification": { + "$ref": "#/definitions/StreamSpecification" }, - "delete": { - "permissions": [ - "dynamodb:Describe*", - "dynamodb:DeleteTable", - "application-autoscaling:DeleteScalingPolicy", - "application-autoscaling:DeleteScheduledAction", - "application-autoscaling:DeregisterScalableTarget", - "application-autoscaling:Describe*", - "application-autoscaling:PutScalingPolicy", - "application-autoscaling:PutScheduledAction", - "application-autoscaling:RegisterScalableTarget" - ] + "Replicas": { + "minItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/ReplicaSpecification" + } }, - "list": { - "permissions": [ - "dynamodb:ListTables", - "cloudwatch:PutMetricData" - ] + "WriteProvisionedThroughputSettings": { + "$ref": "#/definitions/WriteProvisionedThroughputSettings" + }, + "WriteOnDemandThroughputSettings": { + "$ref": "#/definitions/WriteOnDemandThroughputSettings" + }, + "TableName": { + "type": "string" + }, + "AttributeDefinitions": { + "minItems": 1, + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/AttributeDefinition" + } + }, + "BillingMode": { + "type": "string" + }, + "GlobalSecondaryIndexes": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/GlobalSecondaryIndex" + } + }, + "KeySchema": { + "minItems": 1, + "maxItems": 2, + "uniqueItems": true, + "type": "array", + "items": { + "$ref": "#/definitions/KeySchema" + } + }, + "LocalSecondaryIndexes": { + "uniqueItems": true, + "insertionOrder": false, + "type": "array", + "items": { + "$ref": "#/definitions/LocalSecondaryIndex" + } + }, + "Arn": { + "type": "string" + }, + "StreamArn": { + "type": "string" + }, + "TimeToLiveSpecification": { + "$ref": "#/definitions/TimeToLiveSpecification" } } } diff --git a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json index 108c1cf954..84878a7321 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_LaunchTemplate.json @@ -70,7 +70,7 @@ }, "TagSpecifications": { "uniqueItems": false, - "description": "The tags to apply to the resources that are created during instance launch.\n To tag a resource after it has been created, see [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html).\n 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).", + "description": "The tags to apply to resources that are created during instance launch.\n 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).", "type": "array", "items": { "$ref": "#/definitions/TagSpecification" @@ -114,7 +114,7 @@ }, "ElasticInferenceAccelerators": { "uniqueItems": false, - "description": "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.\n You cannot specify accelerators from different generations in the same request.\n 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.", + "description": "Amazon Elastic Inference is no longer available.\n 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.\n You cannot specify accelerators from different generations in the same request.\n 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.", "type": "array", "items": { "$ref": "#/definitions/LaunchTemplateElasticInferenceAccelerator" @@ -201,7 +201,7 @@ "$ref": "#/definitions/InstanceMarketOptions" }, "InstanceRequirements": { - "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", "$ref": "#/definitions/InstanceRequirements" }, "RamDiskId": { @@ -262,6 +262,16 @@ } } }, + "Cpu": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "References": { + "$ref": "#/definitions/References" + } + } + }, "IamInstanceProfile": { "description": "Specifies an IAM instance profile, which is a container for an IAM role for your instance. You can use an IAM role to distribute your AWS credentials to your instances.\n If you are creating the launch template for use with an ASlong group, you can specify either the name or the ARN of the instance profile, but not both.\n ``IamInstanceProfile`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties": false, @@ -401,7 +411,7 @@ "type": "string" }, "KmsKeyId": { - "description": "The ARN of the symmetric KMSlong (KMS) CMK used for encryption.", + "description": "Identifier (key ID, key alias, key ARN, or alias ARN) of the customer managed KMS key to use for EBS encryption.", "type": "string" }, "Encrypted": { @@ -528,6 +538,17 @@ } } }, + "Reference": { + "description": "", + "additionalProperties": false, + "type": "object", + "properties": { + "InstanceFamily": { + "description": "The instance family to refer. Ensure that you specify the correct family name. For example, C6i and C6g are valid values, but C6 is not.", + "type": "string" + } + } + }, "CpuOptions": { "description": "Specifies the CPU options for an instance. For more information, see [Optimize CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) in the *User Guide*.\n ``CpuOptions`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties": false, @@ -660,7 +681,7 @@ "type": "integer" }, "InterfaceType": { - "description": "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 EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n Valid values: ``interface`` | ``efa``", + "description": "The type of network interface. To create an Elastic Fabric Adapter (EFA), specify ``efa`` or ``efa``. For more information, see [Elastic Fabric Adapter](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) in the *Amazon EC2 User Guide*.\n If you are not creating an EFA, specify ``interface`` or omit this parameter.\n If you specify ``efa-only``, do not assign any IP addresses to the network interface. EFA-only network interfaces do not support IP addresses.\n Valid values: ``interface`` | ``efa`` | ``efa-only``", "type": "string" }, "AssociateCarrierIpAddress": { @@ -739,7 +760,7 @@ } }, "LaunchTemplateTagSpecification": { - "description": "Specifies the tags to apply to the launch template during creation.\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", + "description": "Specifies the tags to apply to the launch template during creation.\n To specify the tags for the resources that are created during instance launch, use [AWS::EC2::LaunchTemplate TagSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-tagspecification.html).\n ``LaunchTemplateTagSpecification`` is a property of [AWS::EC2::LaunchTemplate](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-launchtemplate.html).", "additionalProperties": false, "type": "object", "properties": { @@ -758,7 +779,7 @@ } }, "TagSpecification": { - "description": "Specifies the tags to apply to a resource when the resource is created for the launch template.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", + "description": "Specifies the tags to apply to resources that are created during instance launch.\n ``TagSpecification`` is a property type of [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications). [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications) is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties": false, "type": "object", "properties": { @@ -832,6 +853,15 @@ } } }, + "References": { + "uniqueItems": true, + "description": "A list of references to be used as baseline for the CPU performance. Currently, you can only specify a single reference across different instance type variations such as CPU manufacturers, architectures etc.", + "insertionOrder": true, + "type": "array", + "items": { + "$ref": "#/definitions/Reference" + } + }, "LaunchTemplateElasticInferenceAccelerator": { "description": "Specifies an elastic inference accelerator.\n ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).", "additionalProperties": false, @@ -863,18 +893,10 @@ } }, "InstanceRequirements": { - "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Attribute-based instance type selection for EC2 Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html), [Attribute-based instance type selection for Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-fleet-attribute-based-instance-type-selection.html), and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", + "description": "The attributes for the instance types. When you specify instance attributes, Amazon EC2 will identify instance types with these attributes.\n You must specify ``VCpuCount`` and ``MemoryMiB``. All other attributes are optional. Any unspecified optional attribute is set to its default.\n 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.\n 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:\n + ``AllowedInstanceTypes`` - The instance types to include in the list. All other instance types are ignored, even if they match your specified attributes.\n + ``ExcludedInstanceTypes`` - The instance types to exclude from the list, even if they match your specified attributes.\n \n If you specify ``InstanceRequirements``, you can't specify ``InstanceType``.\n Attribute-based instance type selection is only supported when using Auto Scaling groups, EC2 Fleet, and Spot Fleet to launch instances. If you plan to use the launch template in the [launch instance wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html), or with the [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html) API or [AWS::EC2::Instance](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html) AWS CloudFormation resource, you can't specify ``InstanceRequirements``.\n For more information, see [Specify attributes for instance type selection for EC2 Fleet or Spot Fleet](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-fleet-attribute-based-instance-type-selection.html) and [Spot placement score](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-placement-score.html) in the *Amazon EC2 User Guide*.", "additionalProperties": false, "type": "object", "properties": { - "LocalStorageTypes": { - "uniqueItems": false, - "description": "The type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: ``hdd`` and ``ssd``", - "type": "array", - "items": { - "type": "string" - } - }, "InstanceGenerations": { "uniqueItems": false, "description": "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*.\n For current generation instance types, specify ``current``.\n For previous generation instance types, specify ``previous``.\n Default: Current and previous generation instance types", @@ -883,17 +905,13 @@ "type": "string" } }, - "NetworkInterfaceCount": { - "description": "The minimum and maximum number of network interfaces.\n Default: No minimum or maximum limits", - "$ref": "#/definitions/NetworkInterfaceCount" - }, "MemoryGiBPerVCpu": { "description": "The minimum and maximum amount of memory per vCPU, in GiB.\n Default: No minimum or maximum limits", "$ref": "#/definitions/MemoryGiBPerVCpu" }, "AcceleratorTypes": { "uniqueItems": false, - "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n + For instance types with inference accelerators, specify ``inference``.\n \n Default: Any accelerator type", + "description": "The accelerator types that must be on the instance type.\n + For instance types with GPU accelerators, specify ``gpu``.\n + For instance types with FPGA accelerators, specify ``fpga``.\n \n Default: Any accelerator type", "type": "array", "items": { "type": "string" @@ -903,38 +921,70 @@ "description": "The minimum and maximum number of vCPUs.", "$ref": "#/definitions/VCpuCount" }, - "ExcludedInstanceTypes": { + "AcceleratorManufacturers": { "uniqueItems": false, - "description": "The instance types to exclude.\n 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*``.\n 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.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", + "description": "Indicates whether instance types must have accelerators by specific manufacturers.\n + For instance types with AWS devices, specify ``amazon-web-services``.\n + For instance types with AMD devices, specify ``amd``.\n + For instance types with Habana devices, specify ``habana``.\n + For instance types with NVIDIA devices, specify ``nvidia``.\n + For instance types with Xilinx devices, specify ``xilinx``.\n \n Default: Any manufacturer", "type": "array", "items": { - "description": "The user data to make available to the instance.", "type": "string" } }, - "AcceleratorManufacturers": { + "LocalStorage": { + "description": "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*.\n + To include instance types with instance store volumes, specify ``included``.\n + To require only instance types with instance store volumes, specify ``required``.\n + To exclude instance types with instance store volumes, specify ``excluded``.\n \n Default: ``included``", + "type": "string" + }, + "CpuManufacturers": { "uniqueItems": false, - "description": "Indicates whether instance types must have accelerators by specific manufacturers.\n + For instance types with AWS devices, specify ``amazon-web-services``.\n + For instance types with AMD devices, specify ``amd``.\n + For instance types with Habana devices, specify ``habana``.\n + For instance types with NVIDIA devices, specify ``nvidia``.\n + For instance types with Xilinx devices, specify ``xilinx``.\n \n Default: Any manufacturer", + "description": "The CPU manufacturers to include.\n + For instance types with Intel CPUs, specify ``intel``.\n + For instance types with AMD CPUs, specify ``amd``.\n + For instance types with AWS CPUs, specify ``amazon-web-services``.\n \n 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.\n Default: Any manufacturer", "type": "array", "items": { "type": "string" } }, - "AllowedInstanceTypes": { + "BareMetal": { + "description": "Indicates whether bare metal instance types must be included, excluded, or required.\n + To include bare metal instance types, specify ``included``.\n + To require only bare metal instance types, specify ``required``.\n + To exclude bare metal instance types, specify ``excluded``.\n \n Default: ``excluded``", + "type": "string" + }, + "RequireHibernateSupport": { + "description": "Indicates whether instance types must support hibernation for On-Demand Instances.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).\n Default: ``false``", + "type": "boolean" + }, + "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { + "description": "[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.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", + "type": "integer" + }, + "OnDemandMaxPricePercentageOverLowestPrice": { + "description": "[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.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n 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).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``", + "type": "integer" + }, + "MemoryMiB": { + "description": "The minimum and maximum amount of memory, in MiB.", + "$ref": "#/definitions/MemoryMiB" + }, + "LocalStorageTypes": { "uniqueItems": false, - "description": "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n 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*``.\n 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.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", + "description": "The type of local storage that is required.\n + For instance types with hard disk drive (HDD) storage, specify ``hdd``.\n + For instance types with solid state drive (SSD) storage, specify ``ssd``.\n \n Default: ``hdd`` and ``ssd``", "type": "array", "items": { "type": "string" } }, - "LocalStorage": { - "description": "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*.\n + To include instance types with instance store volumes, specify ``included``.\n + To require only instance types with instance store volumes, specify ``required``.\n + To exclude instance types with instance store volumes, specify ``excluded``.\n \n Default: ``included``", - "type": "string" + "NetworkInterfaceCount": { + "description": "The minimum and maximum number of network interfaces.\n Default: No minimum or maximum limits", + "$ref": "#/definitions/NetworkInterfaceCount" }, - "CpuManufacturers": { + "ExcludedInstanceTypes": { "uniqueItems": false, - "description": "The CPU manufacturers to include.\n + For instance types with Intel CPUs, specify ``intel``.\n + For instance types with AMD CPUs, specify ``amd``.\n + For instance types with AWS CPUs, specify ``amazon-web-services``.\n \n 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.\n Default: Any manufacturer", + "description": "The instance types to exclude.\n 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*``.\n 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.\n If you specify ``ExcludedInstanceTypes``, you can't specify ``AllowedInstanceTypes``.\n Default: No excluded instance types", + "type": "array", + "items": { + "description": "The user data to make available to the instance.", + "type": "string" + } + }, + "AllowedInstanceTypes": { + "uniqueItems": false, + "description": "The instance types to apply your specified attributes against. All other instance types are ignored, even if they match your specified attributes.\n 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*``.\n 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.\n If you specify ``AllowedInstanceTypes``, you can't specify ``ExcludedInstanceTypes``.\n Default: All instance types", "type": "array", "items": { "type": "string" @@ -948,18 +998,6 @@ "description": "The minimum and maximum amount of network bandwidth, in gigabits per second (Gbps).\n Default: No minimum or maximum limits", "$ref": "#/definitions/NetworkBandwidthGbps" }, - "BareMetal": { - "description": "Indicates whether bare metal instance types must be included, excluded, or required.\n + To include bare metal instance types, specify ``included``.\n + To require only bare metal instance types, specify ``required``.\n + To exclude bare metal instance types, specify ``excluded``.\n \n Default: ``excluded``", - "type": "string" - }, - "RequireHibernateSupport": { - "description": "Indicates whether instance types must support hibernation for On-Demand Instances.\n This parameter is not supported for [GetSpotPlacementScores](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_GetSpotPlacementScores.html).\n Default: ``false``", - "type": "boolean" - }, - "MaxSpotPriceAsPercentageOfOptimalOnDemandPrice": { - "description": "[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.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is based on the per vCPU or per memory price instead of the per instance price.\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.", - "type": "integer" - }, "SpotMaxPricePercentageOverLowestPrice": { "description": "[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.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n 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).\n Only one of ``SpotMaxPricePercentageOverLowestPrice`` or ``MaxSpotPriceAsPercentageOfOptimalOnDemandPrice`` can be specified. If you don't specify either, Amazon EC2 will automatically apply optimal price protection to consistently select from a wide range of instance types. To indicate no price protection threshold for Spot Instances, meaning you want to consider all instance types that match your attributes, include one of these parameters and specify a high value, such as ``999999``.\n Default: ``100``", "type": "integer" @@ -968,10 +1006,6 @@ "description": "The minimum and maximum baseline bandwidth to Amazon EBS, in Mbps. For more information, see [Amazon EBS\u2013optimized instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html) in the *Amazon EC2 User Guide*.\n Default: No minimum or maximum limits", "$ref": "#/definitions/BaselineEbsBandwidthMbps" }, - "OnDemandMaxPricePercentageOverLowestPrice": { - "description": "[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.\n The parameter accepts an integer, which Amazon EC2 interprets as a percentage.\n To turn off price protection, specify a high value, such as ``999999``.\n 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).\n If you set ``TargetCapacityUnitType`` to ``vcpu`` or ``memory-mib``, the price protection threshold is applied based on the per-vCPU or per-memory price instead of the per-instance price.\n Default: ``20``", - "type": "integer" - }, "AcceleratorNames": { "uniqueItems": false, "description": "The accelerators that must be on the instance type.\n + For instance types with NVIDIA A10G GPUs, specify ``a10g``.\n + For instance types with NVIDIA A100 GPUs, specify ``a100``.\n + For instance types with NVIDIA H100 GPUs, specify ``h100``.\n + For instance types with AWS Inferentia chips, specify ``inferentia``.\n + For instance types with NVIDIA GRID K520 GPUs, specify ``k520``.\n + For instance types with NVIDIA K80 GPUs, specify ``k80``.\n + For instance types with NVIDIA M60 GPUs, specify ``m60``.\n + For instance types with AMD Radeon Pro V520 GPUs, specify ``radeon-pro-v520``.\n + For instance types with NVIDIA T4 GPUs, specify ``t4``.\n + For instance types with NVIDIA T4G GPUs, specify ``t4g``.\n + For instance types with Xilinx VU9P FPGAs, specify ``vu9p``.\n + For instance types with NVIDIA V100 GPUs, specify ``v100``.\n \n Default: Any accelerator", @@ -988,10 +1022,6 @@ "description": "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).\n + To include burstable performance instance types, specify ``included``.\n + To require only burstable performance instance types, specify ``required``.\n + To exclude burstable performance instance types, specify ``excluded``.\n \n Default: ``excluded``", "type": "string" }, - "MemoryMiB": { - "description": "The minimum and maximum amount of memory, in MiB.", - "$ref": "#/definitions/MemoryMiB" - }, "TotalLocalStorageGB": { "description": "The minimum and maximum amount of total local storage, in GB.\n Default: No minimum or maximum limits", "$ref": "#/definitions/TotalLocalStorageGB" @@ -1126,7 +1156,7 @@ }, "TagSpecifications": { "uniqueItems": false, - "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n 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-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", + "description": "The tags to apply to the launch template on creation. To tag the launch template, the resource type must be ``launch-template``.\n To specify the tags for resources that are created during instance launch, use [TagSpecifications](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-launchtemplate-launchtemplatedata-tagspecifications).", "type": "array", "items": { "$ref": "#/definitions/LaunchTemplateTagSpecification" diff --git a/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroupVpcAssociation.json b/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroupVpcAssociation.json new file mode 100644 index 0000000000..14e227f20c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_EC2_SecurityGroupVpcAssociation.json @@ -0,0 +1,85 @@ +{ + "typeName": "AWS::EC2::SecurityGroupVpcAssociation", + "description": "Resource type definition for the AWS::EC2::SecurityGroupVpcAssociation resource", + "definitions": { + "SecurityGroupVpcAssociationState": { + "type": "string", + "additionalProperties": false, + "enum": [ + "associating", + "associated", + "association-failed", + "disassociating", + "disassociated", + "disassociation-failed" + ] + } + }, + "properties": { + "GroupId": { + "description": "The group ID of the specified security group.", + "type": "string" + }, + "VpcId": { + "description": "The ID of the VPC in the security group vpc association.", + "type": "string" + }, + "VpcOwnerId": { + "description": "The owner of the VPC in the security group vpc association.", + "type": "string" + }, + "State": { + "description": "The state of the security group vpc association.", + "$ref": "#/definitions/SecurityGroupVpcAssociationState" + }, + "StateReason": { + "description": "The reason for the state of the security group vpc association.", + "type": "string" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false + }, + "required": [ + "GroupId", + "VpcId" + ], + "createOnlyProperties": [ + "/properties/GroupId", + "/properties/VpcId" + ], + "readOnlyProperties": [ + "/properties/VpcOwnerId", + "/properties/State", + "/properties/StateReason" + ], + "primaryIdentifier": [ + "/properties/GroupId", + "/properties/VpcId" + ], + "handlers": { + "create": { + "permissions": [ + "ec2:AssociateSecurityGroupVpc", + "ec2:DescribeSecurityGroupVpcAssociations" + ] + }, + "read": { + "permissions": [ + "ec2:DescribeSecurityGroupVpcAssociations" + ] + }, + "delete": { + "permissions": [ + "ec2:DisassociateSecurityGroupVpc", + "ec2:DescribeSecurityGroupVpcAssociations" + ] + }, + "list": { + "permissions": [ + "ec2:DescribeSecurityGroupVpcAssociations" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json index de33a1ba9b..129cb03ba0 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VPNConnection.json @@ -381,6 +381,7 @@ "type": "integer", "enum": [ 2, + 5, 14, 15, 16, diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessEndpoint.json b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessEndpoint.json index ca3bb4e076..48991bfa5e 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessEndpoint.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessEndpoint.json @@ -233,15 +233,18 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DescribeTags", + "ec2:DeleteTags" + ] }, "handlers": { "create": { "permissions": [ "ec2:CreateVerifiedAccessEndpoint", "ec2:DescribeVerifiedAccessEndpoints", - "ec2:CreateTags", - "ec2:DescribeTags", "iam:CreateServiceLinkedRole", "iam:ListRoles", "acm:GetCertificateWithPK", @@ -258,8 +261,9 @@ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeListenerCertificates", + "ec2:CreateTags", + "ec2:DescribeTags", "acm:DeleteCertificateRelation", - "ec2:DeleteTags", "ec2:DeleteVerifiedAccessEndpoint", "ec2:GetVerifiedAccessEndpointPolicy", "ec2:ModifyVerifiedAccessEndpoint", @@ -282,9 +286,7 @@ "acm:DeleteCertificateRelation", "acm:DescribeCertificate", "acm:GetCertificateWithPK", - "ec2:CreateTags", "ec2:CreateVerifiedAccessEndpoint", - "ec2:DeleteTags", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DescribeAccountAttributes", "ec2:DescribeNetworkInterfaces", @@ -315,9 +317,6 @@ "ec2:ModifyVerifiedAccessEndpointPolicy", "ec2:DescribeVerifiedAccessEndpoints", "ec2:GetVerifiedAccessEndpointPolicy", - "ec2:DescribeTags", - "ec2:DeleteTags", - "ec2:CreateTags", "acm:GetCertificateWithPK", "acm:DescribeCertificate", "acm:CreateCertificateRelation", @@ -334,6 +333,9 @@ "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeListenerCertificates", + "ec2:DescribeTags", + "ec2:DeleteTags", + "ec2:CreateTags", "ec2:CreateVerifiedAccessEndpoint", "ec2:DeleteVerifiedAccessEndpoint", "iam:CreateServiceLinkedRole", @@ -349,15 +351,14 @@ "delete": { "permissions": [ "ec2:DescribeVerifiedAccessEndpoints", - "ec2:DescribeTags", "ec2:DeleteVerifiedAccessEndpoint", + "ec2:DescribeTags", "ec2:DeleteTags", "sso:DeleteManagedApplicationInstance", "acm:DeleteCertificateRelation", "acm:DescribeCertificate", "acm:CreateCertificateRelation", "acm:GetCertificateWithPK", - "ec2:CreateTags", "ec2:CreateVerifiedAccessEndpoint", "ec2:DescribeAccountAttributes", "ec2:DescribeNetworkInterfaces", @@ -391,9 +392,7 @@ "acm:DeleteCertificateRelation", "acm:DescribeCertificate", "acm:GetCertificateWithPK", - "ec2:CreateTags", "ec2:CreateVerifiedAccessEndpoint", - "ec2:DeleteTags", "ec2:DeleteVerifiedAccessEndpoint", "ec2:DescribeAccountAttributes", "ec2:DescribeNetworkInterfaces", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessGroup.json b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessGroup.json index df4d7a719c..1744058f21 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessGroup.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessGroup.json @@ -112,7 +112,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DescribeTags", + "ec2:DeleteTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessInstance.json b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessInstance.json index 9f5af565f8..18c7777a77 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessInstance.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessInstance.json @@ -193,7 +193,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DescribeTags", + "ec2:DeleteTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessTrustProvider.json b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessTrustProvider.json index 1890db509c..032d309761 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessTrustProvider.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_VerifiedAccessTrustProvider.json @@ -170,7 +170,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "ec2:CreateTags", + "ec2:DescribeTags", + "ec2:DeleteTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ECS_Service.json b/internal/service/cloudformation/schemas/AWS_ECS_Service.json index 885442a560..4943bcbf1b 100644 --- a/internal/service/cloudformation/schemas/AWS_ECS_Service.json +++ b/internal/service/cloudformation/schemas/AWS_ECS_Service.json @@ -160,7 +160,7 @@ "type": "string" }, "LoadBalancerName": { - "description": "The name of the load balancer to associate with the Amazon ECS service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", + "description": "The name of the load balancer to associate with the service or task set.\n If you are using an Application Load Balancer or a Network Load Balancer the load balancer name parameter should be omitted.", "type": "string" }, "ContainerName": { @@ -363,7 +363,7 @@ ] }, "ServiceManagedEBSVolumeConfiguration": { - "description": "The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service.\n Many of these parameters map 1:1 with the Amazon EBS ``CreateVolume`` API request parameters.", + "description": "The configuration for the Amazon EBS volume that Amazon ECS creates and manages on your behalf. These settings are used to create each Amazon EBS volume, with one volume created for each task in the service. For information about the supported launch types and operating systems, see [Supported operating systems and launch types](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ebs-volumes.html#ebs-volumes-configuration) in the*Amazon Elastic Container Service Developer Guide*.\n Many of these parameters map 1:1 with the Amazon EBS ``CreateVolume`` API request parameters.", "additionalProperties": false, "type": "object", "required": [ @@ -390,7 +390,7 @@ } }, "FilesystemType": { - "description": "The Linux filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.", + "description": "The filesystem type for the volume. For volumes created from a snapshot, you must specify the same filesystem type that the volume was using when the snapshot was created. If there is a filesystem type mismatch, the task will fail to start.\n The available Linux filesystem types are\u2028 ``ext3``, ``ext4``, and ``xfs``. If no value is specified, the ``xfs`` filesystem type is used by default.\n The available Windows filesystem types are ``NTFS``.", "type": "string" }, "Encrypted": { @@ -520,7 +520,7 @@ ] }, "DeploymentConfiguration": { - "description": "Optional deployment parameters that control how many tasks run during a deployment and the ordering of stopping and starting tasks.", + "description": "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", "additionalProperties": false, "type": "object", "properties": { @@ -742,7 +742,7 @@ "type": "string" }, "DeploymentConfiguration": { - "description": "Optional deployment parameters that control how many tasks run during the deployment and the ordering of stopping and starting tasks.", + "description": "Optional deployment parameters that control how many tasks run during the deployment and the failure detection methods.", "$ref": "#/definitions/DeploymentConfiguration" } } diff --git a/internal/service/cloudformation/schemas/AWS_EFS_AccessPoint.json b/internal/service/cloudformation/schemas/AWS_EFS_AccessPoint.json index 2dd7965e89..c1960460a0 100644 --- a/internal/service/cloudformation/schemas/AWS_EFS_AccessPoint.json +++ b/internal/service/cloudformation/schemas/AWS_EFS_AccessPoint.json @@ -156,8 +156,13 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/AccessPointTags" + "cloudFormationSystemTags": true, + "tagProperty": "/properties/AccessPointTags", + "permissions": [ + "elasticfilesystem:TagResource", + "elasticfilesystem:ListTagsForResource", + "elasticfilesystem:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json b/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json index c35f521deb..71b2ed9021 100644 --- a/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json +++ b/internal/service/cloudformation/schemas/AWS_EFS_FileSystem.json @@ -215,8 +215,14 @@ "taggable": true, "tagOnCreate": true, "tagUpdatable": true, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/FileSystemTags" + "cloudFormationSystemTags": true, + "tagProperty": "/properties/FileSystemTags", + "permissions": [ + "elasticfilesystem:TagResource", + "elasticfilesystem:ListTagsForResource", + "elasticfilesystem:UntagResource", + "elasticfilesystem:DeleteTags" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_ElasticBeanstalk_Environment.json b/internal/service/cloudformation/schemas/AWS_ElasticBeanstalk_Environment.json index 00cca2392c..7401df28e2 100644 --- a/internal/service/cloudformation/schemas/AWS_ElasticBeanstalk_Environment.json +++ b/internal/service/cloudformation/schemas/AWS_ElasticBeanstalk_Environment.json @@ -1,5 +1,10 @@ { "tagging": { + "permissions": [ + "elasticbeanstalk:AddTags", + "elasticbeanstalk:RemoveTags", + "elasticbeanstalk:ListTagsForResource" + ], "taggable": true, "tagOnCreate": true, "tagUpdatable": true, @@ -48,11 +53,15 @@ "permissions": [ "elasticbeanstalk:DescribeEnvironments", "elasticbeanstalk:UpdateEnvironment", - "elasticbeanstalk:UpdateTagsForResource", "elasticbeanstalk:AssociateEnvironmentOperationsRole", "elasticbeanstalk:DisassociateEnvironmentOperationsRole", "elasticbeanstalk:AddTags", "elasticbeanstalk:ListTagsForResource", + "elasticbeanstalk:RemoveTags", + "s3:GetBucketLocation", + "s3:GetBucketPolicy", + "s3:ListBucket", + "s3:PutBucketPolicy", "iam:PassRole" ], "timeoutInMinutes": 300 diff --git a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Dashboard.json b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Dashboard.json index f4e08e6c17..fdbcd358c8 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Dashboard.json +++ b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Dashboard.json @@ -57,7 +57,18 @@ } }, "additionalProperties": false, - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + }, "required": [ "DashboardDefinition", "DashboardDescription", @@ -118,7 +129,8 @@ }, "list": { "permissions": [ - "iotsitewise:ListDashboards" + "iotsitewise:ListDashboards", + "iotsitewise:ListTagsForResource" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Project.json b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Project.json index 7b6bf15380..62d469c08b 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Project.json +++ b/internal/service/cloudformation/schemas/AWS_IoTSiteWise_Project.json @@ -65,7 +65,18 @@ } }, "additionalProperties": false, - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotsitewise:TagResource", + "iotsitewise:UntagResource", + "iotsitewise:ListTagsForResource" + ] + }, "required": [ "PortalId", "ProjectName" @@ -118,7 +129,8 @@ }, "list": { "permissions": [ - "iotsitewise:ListProjects" + "iotsitewise:ListProjects", + "iotsitewise:ListTagsForResource" ] } } diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json index 0de3f8c636..6fbd1aa537 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_Destination.json @@ -81,14 +81,24 @@ "primaryIdentifier": [ "/properties/Name" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iam:PassRole", "iotwireless:CreateDestination", - "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "read": { @@ -100,9 +110,10 @@ "update": { "permissions": [ "iam:PassRole", + "iotwireless:GetDestination", "iotwireless:UpdateDestination", "iotwireless:UntagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_DeviceProfile.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_DeviceProfile.json index 136d06c9df..96c9afcc8c 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_DeviceProfile.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_DeviceProfile.json @@ -153,16 +153,37 @@ "/properties/Arn", "/properties/Id" ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/LoRaWAN" + ], "primaryIdentifier": [ "/properties/Id" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:CreateDeviceProfile", + "iotwireless:TagResource" + ] + }, + "update": { + "permissions": [ + "iotwireless:GetDeviceProfile", "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:UntagResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json index d35c830485..77dc8b13a2 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_FuotaTask.json @@ -2,7 +2,18 @@ "typeName": "AWS::IoTWireless::FuotaTask", "description": "Create and manage FUOTA tasks.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "definitions": { "Tag": { "type": "object", @@ -132,7 +143,6 @@ "permissions": [ "iotwireless:CreateFuotaTask", "iotwireless:TagResource", - "iotwireless:ListTagsForResource", "iam:GetRole", "iam:PassRole" ] @@ -147,8 +157,9 @@ "permissions": [ "iam:PassRole", "iotwireless:UpdateFuotaTask", + "iotwireless:GetFuotaTask", + "iotwireless:TagResource", "iotwireless:UntagResource", - "iotwireless:ListTagsForResource", "iotwireless:AssociateMulticastGroupWithFuotaTask", "iotwireless:DisassociateMulticastGroupFromFuotaTask", "iotwireless:AssociateWirelessDeviceWithFuotaTask", diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_MulticastGroup.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_MulticastGroup.json index fc7953529c..2b94a6a3c4 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_MulticastGroup.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_MulticastGroup.json @@ -2,7 +2,18 @@ "typeName": "AWS::IoTWireless::MulticastGroup", "description": "Create and manage Multicast groups.", "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "definitions": { "Tag": { "type": "object", @@ -118,8 +129,7 @@ "create": { "permissions": [ "iotwireless:CreateMulticastGroup", - "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "read": { @@ -131,8 +141,9 @@ "update": { "permissions": [ "iotwireless:UpdateMulticastGroup", + "iotwireless:GetMulticastGroup", + "iotwireless:TagResource", "iotwireless:UntagResource", - "iotwireless:ListTagsForResource", "iotwireless:AssociateWirelessDeviceWithMulticastGroup", "iotwireless:DisassociateWirelessDeviceFromMulticastGroup" ] diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_NetworkAnalyzerConfiguration.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_NetworkAnalyzerConfiguration.json index 3e786449d2..1d2f39e40e 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_NetworkAnalyzerConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_NetworkAnalyzerConfiguration.json @@ -104,9 +104,14 @@ "tagging": { "taggable": true, "tagOnCreate": true, - "tagUpdatable": false, + "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] }, "required": [ "Name" @@ -115,8 +120,7 @@ "/properties/Arn" ], "createOnlyProperties": [ - "/properties/Name", - "/properties/Tags" + "/properties/Name" ], "primaryIdentifier": [ "/properties/Name" @@ -125,8 +129,7 @@ "create": { "permissions": [ "iotwireless:CreateNetworkAnalyzerConfiguration", - "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "read": { @@ -138,8 +141,9 @@ "update": { "permissions": [ "iotwireless:UpdateNetworkAnalyzerConfiguration", - "iotwireless:UntagResource", - "iotwireless:ListTagsForResource" + "iotwireless:GetNetworkAnalyzerConfiguration", + "iotwireless:TagResource", + "iotwireless:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_PartnerAccount.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_PartnerAccount.json index ad53420038..b18e3356d6 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_PartnerAccount.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_PartnerAccount.json @@ -129,13 +129,24 @@ "primaryIdentifier": [ "/properties/PartnerAccountId" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:AssociateAwsAccountWithPartnerAccount", "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:GetPartnerAccount" ] }, "read": { @@ -152,9 +163,12 @@ }, "update": { "permissions": [ + "iotwireless:GetPartnerAccount", + "iotwireless:AssociateAwsAccountWithPartnerAccount", "iotwireless:UpdatePartnerAccount", - "iotwireless:UntagResource", - "iotwireless:ListTagsForResource" + "iotwireless:ListTagsForResource", + "iotwireless:TagResource", + "iotwireless:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json index 82c3e4b860..9dd20a4813 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_ServiceProfile.json @@ -135,16 +135,37 @@ "/properties/LoRaWAN/TargetPer", "/properties/LoRaWAN/MinGwDiversity" ], + "createOnlyProperties": [ + "/properties/Name", + "/properties/LoRaWAN" + ], "primaryIdentifier": [ "/properties/Id" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:CreateServiceProfile", + "iotwireless:TagResource" + ] + }, + "update": { + "permissions": [ + "iotwireless:GetServiceProfile", "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:UntagResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_TaskDefinition.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_TaskDefinition.json index 18fda4c2e1..34f5407e81 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_TaskDefinition.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_TaskDefinition.json @@ -150,17 +150,34 @@ "primaryIdentifier": [ "/properties/Id" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:CreateWirelessGatewayTaskDefinition", "iotwireless:TagResource", - "iotwireless:ListTagsForResource", "iam:GetRole", "iam:PassRole" ] }, + "update": { + "permissions": [ + "iotwireless:GetWirelessGatewayTaskDefinition", + "iotwireless:TagResource", + "iotwireless:UntagResource" + ] + }, "read": { "permissions": [ "iotwireless:GetWirelessGatewayTaskDefinition", @@ -173,6 +190,13 @@ ] }, "list": { + "handlerSchema": { + "properties": { + "TaskDefinitionType": { + "$ref": "#/properties/TaskDefinitionType" + } + } + }, "permissions": [ "iotwireless:ListWirelessGatewayTaskDefinitions", "iotwireless:ListTagsForResource" diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json index e9c81d5b62..f71b968d4b 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDevice.json @@ -321,13 +321,23 @@ "primaryIdentifier": [ "/properties/Id" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:CreateWirelessDevice", - "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "read": { @@ -339,9 +349,10 @@ "update": { "permissions": [ "iotwireless:UpdateWirelessDevice", - "iotwireless:UntagResource", - "iotwireless:ListTagsForResource", - "iotwireless:AssociateWirelessDeviceWithThing" + "iotwireless:GetWirelessDevice", + "iotwireless:AssociateWirelessDeviceWithThing", + "iotwireless:TagResource", + "iotwireless:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDeviceImportTask.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDeviceImportTask.json index 8d7fc05ec0..adf0c9d15b 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDeviceImportTask.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessDeviceImportTask.json @@ -80,28 +80,7 @@ "Role": { "$ref": "#/definitions/Role" } - }, - "oneOf": [ - { - "allOf": [ - { - "required": [ - "DeviceCreationFile" - ] - }, - { - "required": [ - "Role" - ] - } - ] - }, - { - "required": [ - "SidewalkManufacturingSn" - ] - } - ] + } }, "Status": { "description": "Status for import task", @@ -149,9 +128,14 @@ "tagging": { "taggable": true, "tagOnCreate": true, - "tagUpdatable": false, - "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] }, "required": [ "DestinationName", @@ -182,7 +166,6 @@ "iotwireless:StartWirelessDeviceImportTask", "iotwireless:StartSingleWirelessDeviceImportTask", "iotwireless:TagResource", - "iotwireless:ListTagsForResource", "iam:PassRole" ] }, @@ -194,9 +177,10 @@ }, "update": { "permissions": [ + "iotwireless:GetWirelessDeviceImportTask", "iotwireless:UpdateWirelessDeviceImportTask", + "iotwireless:TagResource", "iotwireless:UntagResource", - "iotwireless:ListTagsForResource", "iam:PassRole" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessGateway.json b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessGateway.json index 09cf5d8c8c..0a309e7d42 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessGateway.json +++ b/internal/service/cloudformation/schemas/AWS_IoTWireless_WirelessGateway.json @@ -96,13 +96,23 @@ "primaryIdentifier": [ "/properties/Id" ], - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "iotwireless:TagResource", + "iotwireless:UntagResource", + "iotwireless:ListTagsForResource" + ] + }, "handlers": { "create": { "permissions": [ "iotwireless:CreateWirelessGateway", - "iotwireless:TagResource", - "iotwireless:ListTagsForResource" + "iotwireless:TagResource" ] }, "read": { @@ -113,10 +123,11 @@ }, "update": { "permissions": [ + "iotwireless:GetWirelessGateway", "iotwireless:UpdateWirelessGateway", - "iotwireless:UntagResource", - "iotwireless:ListTagsForResource", - "iotwireless:AssociateWirelessGatewayWithThing" + "iotwireless:AssociateWirelessGatewayWithThing", + "iotwireless:TagResource", + "iotwireless:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_KafkaConnect_Connector.json b/internal/service/cloudformation/schemas/AWS_KafkaConnect_Connector.json index 25229ab84a..ef1b60eb19 100644 --- a/internal/service/cloudformation/schemas/AWS_KafkaConnect_Connector.json +++ b/internal/service/cloudformation/schemas/AWS_KafkaConnect_Connector.json @@ -7,7 +7,13 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "kafkaconnect:ListTagsForResource", + "kafkaconnect:UntagResource", + "kafkaconnect:TagResource", + "firehose:TagDeliveryStream" + ] }, "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-kafkaconnect.git", "properties": { diff --git a/internal/service/cloudformation/schemas/AWS_KafkaConnect_CustomPlugin.json b/internal/service/cloudformation/schemas/AWS_KafkaConnect_CustomPlugin.json index ae351a622f..8db02fa810 100644 --- a/internal/service/cloudformation/schemas/AWS_KafkaConnect_CustomPlugin.json +++ b/internal/service/cloudformation/schemas/AWS_KafkaConnect_CustomPlugin.json @@ -155,7 +155,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "kafkaconnect:ListTagsForResource", + "kafkaconnect:UntagResource", + "kafkaconnect:TagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_KafkaConnect_WorkerConfiguration.json b/internal/service/cloudformation/schemas/AWS_KafkaConnect_WorkerConfiguration.json index 1fb08fa432..edf837c6e6 100644 --- a/internal/service/cloudformation/schemas/AWS_KafkaConnect_WorkerConfiguration.json +++ b/internal/service/cloudformation/schemas/AWS_KafkaConnect_WorkerConfiguration.json @@ -86,7 +86,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "kafkaconnect:ListTagsForResource", + "kafkaconnect:UntagResource", + "kafkaconnect:TagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json index 6fb55abda1..50ae884555 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_Function.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_Function.json @@ -90,7 +90,7 @@ "/properties/SnapStartResponse/OptimizationStatus", "/properties/Arn" ], - "description": "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.\n 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. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For a .zip file archive, the code property specifies the location of the .zip file. You must also specify the handler and runtime properties. For a Python example, see [Deploy Python Lambda functions with .zip file archives](https://docs.aws.amazon.com/lambda/latest/dg/python-package.html).\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", + "description": "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.\n 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 these functions, include the URI of the container image in the ECR registry in the [ImageUri property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-imageuri). You do not need to specify the handler and runtime properties. \n You set the package type to ``Zip`` if the deployment package is a [.zip file archive](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip). For these functions, specify the S3 location of your .zip file in the ``Code`` property. Alternatively, for Node.js and Python functions, you can define your function inline in the [ZipFile property of the Code property](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-lambda-function-code.html#cfn-lambda-function-code-zipfile). In both cases, you must also specify the handler and runtime properties.\n You can use [code signing](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) if your deployment package is a .zip file archive. To enable code signing for this function, specify the ARN of a code-signing configuration. When a user attempts to deploy a code package with ``UpdateFunctionCode``, Lambda checks that the code package has a valid signature from a trusted publisher. The code-signing configuration includes a set of signing profiles, which define the trusted publishers for this function.\n When you update a ``AWS::Lambda::Function`` resource, CFNshort calls the [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html) and [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html) LAM APIs under the hood. Because these calls happen sequentially, and invocations can happen between these calls, your function may encounter errors in the time between the calls. For example, if you remove an environment variable, and the code that references that environment variable in the same CFNshort update, you may see invocation errors related to a missing environment variable. To work around this, you can invoke your function against a version or alias by default, rather than the ``$LATEST`` version.\n Note that you configure [provisioned concurrency](https://docs.aws.amazon.com/lambda/latest/dg/provisioned-concurrency.html) on a ``AWS::Lambda::Version`` or a ``AWS::Lambda::Alias``.\n For a complete introduction to Lambda functions, see [What is Lambda?](https://docs.aws.amazon.com/lambda/latest/dg/lambda-welcome.html) in the *Lambda developer guide.*", "writeOnlyProperties": [ "/properties/SnapStart", "/properties/SnapStart/ApplyOn", @@ -359,7 +359,7 @@ "type": "string" } }, - "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).", + "description": "Environment variable key-value pairs. For more information, see [Using Lambda environment variables](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).\n If the value of the environment variable is a time or a duration, enclose the value in quotes.", "additionalProperties": false, "type": "object" } @@ -389,19 +389,19 @@ ] }, "Tag": { - "description": "", + "description": "A [tag](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", "additionalProperties": false, "type": "object", "properties": { "Value": { "minLength": 0, - "description": "", + "description": "The value for this tag.", "type": "string", "maxLength": 256 }, "Key": { "minLength": 1, - "description": "", + "description": "The key for this tag.", "type": "string", "maxLength": 128 } @@ -477,7 +477,7 @@ }, "KmsKeyArn": { "pattern": "^(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()$", - "description": "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.", + "description": "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 [SnapStart](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html) is activated, LAM also uses this key is to encrypt your function's snapshot. If you deploy your function using a container image, LAM 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 ECRlong (ECR). If you don't provide a customer managed key, LAM uses a default service key.", "type": "string" }, "PackageType": { @@ -503,7 +503,7 @@ }, "Tags": { "uniqueItems": true, - "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.", + "description": "A list of [tags](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the function.\n You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.", "insertionOrder": false, "type": "array", "items": { @@ -538,7 +538,7 @@ "$ref": "#/definitions/SnapStartResponse" }, "Code": { - "description": "The code for the function.", + "description": "The code for the function. You can define your function code in multiple ways:\n + For .zip deployment packages, you can specify the S3 location of the .zip file in the ``S3Bucket``, ``S3Key``, and ``S3ObjectVersion`` properties.\n + For .zip deployment packages, you can alternatively define the function code inline in the ``ZipFile`` property. This method works only for Node.js and Python functions.\n + For container images, specify the URI of your container image in the ECR registry in the ``ImageUri`` property.", "$ref": "#/definitions/Code" }, "Role": { @@ -551,7 +551,7 @@ "$ref": "#/definitions/LoggingConfig" }, "RecursiveLoop": { - "description": "", + "description": "The status of your function's recursive loop detection configuration.\n When this value is set to ``Allow``and Lambda detects your function being invoked as part of a recursive loop, it doesn't take any action.\n When this value is set to ``Terminate`` and Lambda detects your function being invoked as part of a recursive loop, it stops your function being invoked and notifies you.", "$ref": "#/definitions/RecursiveLoop" }, "Environment": { diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_Version.json b/internal/service/cloudformation/schemas/AWS_Lambda_Version.json index c6510baf5b..f70c4cc91d 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_Version.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_Version.json @@ -27,25 +27,7 @@ "description": "The name of the Lambda function.", "minLength": 1, "maxLength": 140, - "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$", - "anyOf": [ - { - "relationshipRef": { - "typeName": "AWS::Lambda::Function", - "propertyPath": "/properties/FunctionName" - } - }, - { - "relationshipRef": { - "typeName": "AWS::Lambda::Function", - "propertyPath": "/properties/Arn" - } - } - ] - }, - "Policy": { - "description": "The resource policy of your function", - "type": "object" + "pattern": "^(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:)?(\\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\\$LATEST|[a-zA-Z0-9-_]+))?$" }, "ProvisionedConcurrencyConfig": { "description": "Specifies a provisioned concurrency configuration for a function's version. Updates are not supported for this property.", diff --git a/internal/service/cloudformation/schemas/AWS_Logs_Delivery.json b/internal/service/cloudformation/schemas/AWS_Logs_Delivery.json index c918f25ebb..acaf8e526a 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_Delivery.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_Delivery.json @@ -32,6 +32,12 @@ "minLength": 16, "maxLength": 2048, "pattern": "[\\w#+=/:,.@-]*\\*?" + }, + "FieldHeader": { + "description": "A single record field to be delivered to the destination.", + "type": "string", + "minLength": 1, + "maxLength": 50 } }, "properties": { @@ -72,6 +78,29 @@ "items": { "$ref": "#/definitions/Tag" } + }, + "RecordFields": { + "description": "The list of record fields to be delivered to the destination, in order. If the delivery's log source has mandatory fields, they must be included in this list.", + "type": "array", + "items": { + "$ref": "#/definitions/FieldHeader" + } + }, + "FieldDelimiter": { + "description": "The field delimiter to use between record fields when the final output format of a delivery is in Plain , W3C , or Raw format.", + "type": "string", + "minLength": 1, + "maxLength": 5 + }, + "S3SuffixPath": { + "description": "This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. See ConfigurationTemplate$allowedSuffixPathFields for more info on what values are supported in the suffix path for each log source.", + "type": "string", + "minLength": 0, + "maxLength": 256 + }, + "S3EnableHiveCompatiblePath": { + "description": "This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive.", + "type": "boolean" } }, "additionalProperties": false, diff --git a/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json b/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json index 4430b06efc..525fa4500d 100644 --- a/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json +++ b/internal/service/cloudformation/schemas/AWS_Logs_DeliveryDestination.json @@ -94,6 +94,13 @@ "items": { "$ref": "#/definitions/DestinationPolicy" } + }, + "OutputFormat": { + "description": "The format of the logs that are sent to this delivery destination.", + "type": "string", + "minLength": 1, + "maxLength": 12, + "pattern": "^[0-9A-Za-z]+$" } }, "additionalProperties": false, @@ -102,6 +109,7 @@ ], "createOnlyProperties": [ "/properties/Name", + "/properties/OutputFormat", "/properties/DestinationResourceArn" ], "readOnlyProperties": [ diff --git a/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json b/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json index 701d56ab8f..d32b113e5e 100644 --- a/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json +++ b/internal/service/cloudformation/schemas/AWS_NimbleStudio_LaunchProfile.json @@ -1,288 +1,169 @@ { "typeName": "AWS::NimbleStudio::LaunchProfile", - "description": "Represents a launch profile which delegates access to a collection of studio components to studio users", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio", - "definitions": { - "AutomaticTerminationMode": { - "type": "string", - "enum": [ - "DEACTIVATED", - "ACTIVATED" - ] + "description": "Resource Type definition for AWS::NimbleStudio::LaunchProfile", + "additionalProperties": false, + "properties": { + "Description": { + "type": "string" }, - "SessionBackupMode": { - "type": "string", - "enum": [ - "AUTOMATIC", - "DEACTIVATED" - ] + "Ec2SubnetIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string" + } }, - "SessionPersistenceMode": { - "type": "string", - "enum": [ - "DEACTIVATED", - "ACTIVATED" - ] + "StudioComponentIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string" + } }, "StreamConfiguration": { + "$ref": "#/definitions/StreamConfiguration" + }, + "LaunchProfileProtocolVersions": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string" + } + }, + "StudioId": { + "type": "string" + }, + "LaunchProfileId": { + "type": "string" + }, + "Tags": { "type": "object", - "description": "A configuration for a streaming session.
", + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Name": { + "type": "string" + } + }, + "definitions": { + "StreamingSessionStorageRoot": { + "type": "object", + "additionalProperties": false, "properties": { - "ClipboardMode": { - "$ref": "#/definitions/StreamingClipboardMode" + "Linux": { + "type": "string" }, - "Ec2InstanceTypes": { - "type": "array", - "items": { - "$ref": "#/definitions/StreamingInstanceType" - }, - "maxItems": 30, - "minItems": 1, - "description": "The EC2 instance types that users can select from when launching a streaming session\n with this launch profile.
" + "Windows": { + "type": "string" + } + } + }, + "StreamConfigurationSessionBackup": { + "type": "object", + "additionalProperties": false, + "properties": { + "Mode": { + "type": "string" }, + "MaxBackupsToRetain": { + "type": "number" + } + } + }, + "StreamConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { "MaxSessionLengthInMinutes": { - "type": "number", - "default": 690, - "maximum": 43200, - "minimum": 1, - "description": "The length of time, in minutes, that a streaming session can be active before it is\n stopped or terminated. After this point, Nimble Studio automatically terminates or\n stops the session. The default length of time is 690 minutes, and the maximum length of\n time is 30 days.
" + "type": "number" + }, + "ClipboardMode": { + "type": "string" }, "StreamingImageIds": { "type": "array", + "uniqueItems": false, "items": { - "type": "string", - "maxLength": 22, - "minLength": 0, - "pattern": "^[a-zA-Z0-9-_]*$" - }, - "maxItems": 20, - "minItems": 1, - "description": "The streaming images that users can select from when launching a streaming session\n with this launch profile.
" + "type": "string" + } }, "MaxStoppedSessionLengthInMinutes": { - "type": "number", - "default": 0, - "maximum": 5760, - "minimum": 0, - "description": "Integer that determines if you can start and stop your sessions and how long a session\n can stay in the STOPPED
state. The default value is 0. The maximum value is\n 5760.
This field is allowed only when sessionPersistenceMode
is\n ACTIVATED
and automaticTerminationMode
is\n ACTIVATED
.
If the value is set to 0, your sessions can?t be STOPPED
. If you then\n call StopStreamingSession
, the session fails. If the time that a session\n stays in the READY
state exceeds the maxSessionLengthInMinutes
\n value, the session will automatically be terminated (instead of\n STOPPED
).
If the value is set to a positive number, the session can be stopped. You can call\n StopStreamingSession
to stop sessions in the READY
state.\n If the time that a session stays in the READY
state exceeds the\n maxSessionLengthInMinutes
value, the session will automatically be\n stopped (instead of terminated).
Configures how streaming sessions are backed up when launched from this launch\n profile.
", + "additionalProperties": false, "properties": { - "Mode": { - "$ref": "#/definitions/SessionBackupMode" + "Throughput": { + "type": "number" }, - "MaxBackupsToRetain": { - "type": "number", - "default": 0, - "maximum": 10, - "minimum": 0, - "description": "The maximum number of backups that each streaming session created from this launch\n profile can have.
" + "Iops": { + "type": "number" + }, + "Size": { + "type": "number" } - }, - "additionalProperties": false + } }, "StreamConfigurationSessionStorage": { "type": "object", - "description": "The configuration for a streaming session?s upload storage.
", + "additionalProperties": false, "properties": { "Root": { "$ref": "#/definitions/StreamingSessionStorageRoot" }, "Mode": { "type": "array", + "uniqueItems": false, "items": { - "$ref": "#/definitions/StreamingSessionStorageMode" - }, - "minItems": 1, - "description": "Allows artists to upload files to their workstations. The only valid option is\n UPLOAD
.
The upload storage root location (folder) on streaming workstations where files are\n uploaded.
", - "properties": { - "Linux": { - "type": "string", - "maxLength": 128, - "minLength": 1, - "pattern": "^(\\$HOME|/)[/]?([A-Za-z0-9-_]+/)*([A-Za-z0-9_-]+)$", - "description": "The folder path in Linux workstations where files are uploaded.
" - }, - "Windows": { - "type": "string", - "maxLength": 128, - "minLength": 1, - "pattern": "^((\\%HOMEPATH\\%)|[a-zA-Z]:)[\\\\/](?:[a-zA-Z0-9_-]+[\\\\/])*[a-zA-Z0-9_-]+$", - "description": "The folder path in Windows workstations where files are uploaded.
" - } - }, - "additionalProperties": false - }, - "Tags": { - "type": "object", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false - }, - "VolumeConfiguration": { - "type": "object", - "description": "Custom volume configuration for the root volumes that are attached to streaming\n sessions.
\nThis parameter is only allowed when sessionPersistenceMode
is\n ACTIVATED
.
The size of the root volume that is attached to the streaming session. The root volume\n size is measured in GiBs.
" - }, - "Throughput": { - "type": "number", - "default": 125, - "maximum": 1000, - "minimum": 125, - "description": "The throughput to provision for the root volume that is attached to the streaming\n session. The throughput is measured in MiB/s.
" - }, - "Iops": { - "type": "number", - "default": 3000, - "maximum": 16000, - "minimum": 3000, - "description": "The number of I/O operations per second for the root volume that is attached to\n streaming session.
" - } - }, - "additionalProperties": false - } - }, - "properties": { - "Description": { - "type": "string", - "maxLength": 256, - "minLength": 0, - "description": "The description.
" - }, - "Ec2SubnetIds": { - "type": "array", - "items": { - "type": "string" - }, - "maxItems": 6, - "minItems": 0, - "description": "Specifies the IDs of the EC2 subnets where streaming sessions will be accessible from.\n These subnets must support the specified instance types.
" - }, - "LaunchProfileId": { - "type": "string" - }, - "LaunchProfileProtocolVersions": { - "type": "array", - "items": { - "type": "string", - "maxLength": 10, - "minLength": 0, - "pattern": "^2021\\-03\\-31$", - "description": "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
" - }, - "description": "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
" - }, - "Name": { - "type": "string", - "maxLength": 64, - "minLength": 1, - "description": "The name for the launch profile.
" - }, - "StreamConfiguration": { - "$ref": "#/definitions/StreamConfiguration" - }, - "StudioComponentIds": { - "type": "array", - "items": { - "type": "string" - }, - "maxItems": 100, - "minItems": 1, - "description": "Unique identifiers for a collection of studio components that can be used with this\n launch profile.
" - }, - "StudioId": { - "type": "string", - "description": "The studio ID.
" - }, - "Tags": { - "$ref": "#/definitions/Tags" } }, "required": [ - "StudioId", - "Name", - "StudioComponentIds", "Ec2SubnetIds", + "StudioComponentIds", "StreamConfiguration", - "LaunchProfileProtocolVersions" - ], - "readOnlyProperties": [ - "/properties/LaunchProfileId" + "LaunchProfileProtocolVersions", + "StudioId", + "Name" ], "createOnlyProperties": [ "/properties/Ec2SubnetIds", @@ -290,58 +171,9 @@ "/properties/Tags" ], "primaryIdentifier": [ - "/properties/LaunchProfileId", - "/properties/StudioId" + "/properties/LaunchProfileId" ], - "handlers": { - "create": { - "permissions": [ - "nimble:CreateLaunchProfile", - "nimble:GetLaunchProfile", - "nimble:TagResource", - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:RunInstances", - "ec2:DescribeSubnets" - ] - }, - "read": { - "permissions": [ - "nimble:GetLaunchProfile" - ] - }, - "update": { - "permissions": [ - "nimble:UpdateLaunchProfile", - "nimble:GetLaunchProfile", - "ec2:CreateNetworkInterface", - "ec2:CreateNetworkInterfacePermission", - "ec2:DescribeSubnets", - "ec2:RunInstances" - ] - }, - "delete": { - "permissions": [ - "nimble:DeleteLaunchProfile", - "nimble:GetLaunchProfile", - "nimble:UntagResource" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "StudioId": { - "$ref": "resource-schema.json#/properties/StudioId" - } - }, - "required": [ - "StudioId" - ] - }, - "permissions": [ - "nimble:ListLaunchProfiles" - ] - } - }, - "additionalProperties": false + "readOnlyProperties": [ + "/properties/LaunchProfileId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_NimbleStudio_StreamingImage.json b/internal/service/cloudformation/schemas/AWS_NimbleStudio_StreamingImage.json index f71e10e104..d398e8d0c5 100644 --- a/internal/service/cloudformation/schemas/AWS_NimbleStudio_StreamingImage.json +++ b/internal/service/cloudformation/schemas/AWS_NimbleStudio_StreamingImage.json @@ -1,177 +1,91 @@ { "typeName": "AWS::NimbleStudio::StreamingImage", - "description": "Represents a streaming session machine image that can be used to launch a streaming session", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio", - "definitions": { - "StreamingImageEncryptionConfiguration": { - "type": "object", - "description": "TODO
", - "properties": { - "KeyType": { - "$ref": "#/definitions/StreamingImageEncryptionConfigurationKeyType" - }, - "KeyArn": { - "type": "string", - "minLength": 4, - "pattern": "^arn:.*", - "description": "The ARN for a KMS key that is used to encrypt studio data.
" - } - }, - "required": [ - "KeyType" - ], - "additionalProperties": false - }, - "StreamingImageEncryptionConfigurationKeyType": { - "type": "string", - "description": "", - "enum": [ - "CUSTOMER_MANAGED_KEY" - ] - }, - "Tags": { - "type": "object", - "description": "", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false - } - }, + "description": "Resource Type definition for AWS::NimbleStudio::StreamingImage", + "additionalProperties": false, "properties": { + "Owner": { + "type": "string" + }, "Description": { - "type": "string", - "maxLength": 256, - "minLength": 0, - "description": "A human-readable description of the streaming image.
" + "type": "string" }, - "Ec2ImageId": { - "type": "string", - "pattern": "^ami-[0-9A-z]+$", - "description": "The ID of an EC2 machine image with which to create this streaming image.
" + "Platform": { + "type": "string" }, "EncryptionConfiguration": { "$ref": "#/definitions/StreamingImageEncryptionConfiguration" }, + "EncryptionConfigurationKeyType": { + "type": "string" + }, "EulaIds": { "type": "array", + "uniqueItems": false, "items": { "type": "string" - }, - "description": "The list of EULAs that must be accepted before a Streaming Session can be started using this streaming image.
" + } }, - "Name": { - "type": "string", - "maxLength": 64, - "minLength": 0, - "description": "A friendly name for a streaming image resource.
" + "Ec2ImageId": { + "type": "string" }, - "Owner": { - "type": "string", - "description": "The owner of the streaming image, either the studioId that contains the streaming image, or 'amazon' for images that are provided by Amazon Nimble Studio.
" + "StudioId": { + "type": "string" }, - "Platform": { - "type": "string", - "pattern": "^[a-zA-Z]*$", - "description": "The platform of the streaming image, either WINDOWS or LINUX.
" + "EncryptionConfigurationKeyArn": { + "type": "string" }, "StreamingImageId": { "type": "string" }, - "StudioId": { - "type": "string", - "description": "The studioId.
" - }, "Tags": { - "$ref": "#/definitions/Tags" + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Name": { + "type": "string" } }, - "readOnlyProperties": [ - "/properties/EncryptionConfiguration", - "/properties/EulaIds", - "/properties/Owner", - "/properties/Platform", - "/properties/StreamingImageId" + "definitions": { + "StreamingImageEncryptionConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "KeyType": { + "type": "string" + }, + "KeyArn": { + "type": "string" + } + }, + "required": [ + "KeyType" + ] + } + }, + "required": [ + "Ec2ImageId", + "StudioId", + "Name" ], "createOnlyProperties": [ - "/properties/Ec2ImageId", "/properties/StudioId", - "/properties/Tags" + "/properties/Tags", + "/properties/Ec2ImageId" ], "primaryIdentifier": [ - "/properties/StudioId", "/properties/StreamingImageId" ], - "required": [ - "StudioId", - "Ec2ImageId", - "Name" - ], - "handlers": { - "create": { - "permissions": [ - "nimble:CreateStreamingImage", - "nimble:GetStreamingImage", - "nimble:TagResource", - "ec2:DescribeImages", - "ec2:DescribeSnapshots", - "ec2:ModifyInstanceAttribute", - "ec2:ModifySnapshotAttribute", - "ec2:ModifyImageAttribute", - "ec2:RegisterImage", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant", - "kms:ListGrants", - "kms:GenerateDataKey" - ] - }, - "read": { - "permissions": [ - "nimble:GetStreamingImage" - ] - }, - "update": { - "permissions": [ - "nimble:UpdateStreamingImage", - "nimble:GetStreamingImage", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant", - "kms:ListGrants", - "kms:GenerateDataKey" - ] - }, - "delete": { - "permissions": [ - "nimble:DeleteStreamingImage", - "nimble:GetStreamingImage", - "nimble:UntagResource", - "ec2:ModifyInstanceAttribute", - "ec2:ModifySnapshotAttribute", - "ec2:DeregisterImage", - "ec2:DeleteSnapshot", - "kms:ListGrants", - "kms:RetireGrant" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "StudioId": { - "$ref": "resource-schema.json#/properties/StudioId" - } - }, - "required": [ - "StudioId" - ] - }, - "permissions": [ - "nimble:ListStreamingImages" - ] - } - }, - "additionalProperties": false + "readOnlyProperties": [ + "/properties/Platform", + "/properties/EulaIds", + "/properties/Owner", + "/properties/EncryptionConfiguration.KeyArn", + "/properties/EncryptionConfiguration", + "/properties/EncryptionConfiguration.KeyType", + "/properties/StreamingImageId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_NimbleStudio_Studio.json b/internal/service/cloudformation/schemas/AWS_NimbleStudio_Studio.json index 26484b9cee..9822f2c054 100644 --- a/internal/service/cloudformation/schemas/AWS_NimbleStudio_Studio.json +++ b/internal/service/cloudformation/schemas/AWS_NimbleStudio_Studio.json @@ -1,98 +1,66 @@ { "typeName": "AWS::NimbleStudio::Studio", - "description": "Represents a studio that contains other Nimble Studio resources", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio", - "definitions": { - "StudioEncryptionConfiguration": { - "type": "object", - "description": "Configuration of the encryption method that is used for the studio.
", - "properties": { - "KeyType": { - "$ref": "#/definitions/StudioEncryptionConfigurationKeyType" - }, - "KeyArn": { - "type": "string", - "minLength": 4, - "pattern": "^arn:.*", - "description": "The ARN for a KMS key that is used to encrypt studio data.
" - } - }, - "required": [ - "KeyType" - ], - "additionalProperties": false + "description": "Resource Type definition for AWS::NimbleStudio::Studio", + "additionalProperties": false, + "properties": { + "UserRoleArn": { + "type": "string" }, - "StudioEncryptionConfigurationKeyType": { - "type": "string", - "description": "The type of KMS key that is used to encrypt studio data.
", - "enum": [ - "AWS_OWNED_KEY", - "CUSTOMER_MANAGED_KEY" - ] + "HomeRegion": { + "type": "string" }, - "Tags": { - "type": "object", - "description": "", - "patternProperties": { - "": { - "type": "string" - } - }, - "additionalProperties": false - } - }, - "properties": { - "AdminRoleArn": { - "type": "string", - "description": "The IAM role that Studio Admins will assume when logging in to the Nimble Studio portal.
" + "StudioUrl": { + "type": "string" }, "DisplayName": { - "type": "string", - "maxLength": 64, - "minLength": 0, - "description": "A friendly name for the studio.
" + "type": "string" }, - "HomeRegion": { - "type": "string", - "maxLength": 50, - "minLength": 0, - "pattern": "[a-z]{2}-?(iso|gov)?-{1}[a-z]*-{1}[0-9]", - "description": "The Amazon Web Services Region where the studio resource is located.
" + "StudioName": { + "type": "string" }, "SsoClientId": { - "type": "string", - "description": "The Amazon Web Services SSO application client ID used to integrate with Amazon Web Services SSO to enable Amazon Web Services SSO users to log in to Nimble Studio portal.
" + "type": "string" }, - "StudioEncryptionConfiguration": { - "$ref": "#/definitions/StudioEncryptionConfiguration" + "AdminRoleArn": { + "type": "string" }, "StudioId": { "type": "string" }, - "StudioName": { - "type": "string", - "maxLength": 64, - "minLength": 3, - "pattern": "^[a-z0-9]*$", - "description": "The studio name that is used in the URL of the Nimble Studio portal when accessed by Nimble Studio users.
" - }, - "StudioUrl": { - "type": "string", - "description": "The address of the web page for the studio.
" + "StudioEncryptionConfiguration": { + "$ref": "#/definitions/StudioEncryptionConfiguration" }, "Tags": { - "$ref": "#/definitions/Tags" - }, - "UserRoleArn": { - "type": "string", - "description": "The IAM role that Studio Users will assume when logging in to the Nimble Studio portal.
" + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + } } }, - "readOnlyProperties": [ - "/properties/HomeRegion", - "/properties/SsoClientId", - "/properties/StudioId", - "/properties/StudioUrl" + "definitions": { + "StudioEncryptionConfiguration": { + "type": "object", + "additionalProperties": false, + "properties": { + "KeyType": { + "type": "string" + }, + "KeyArn": { + "type": "string" + } + }, + "required": [ + "KeyType" + ] + } + }, + "required": [ + "UserRoleArn", + "DisplayName", + "StudioName", + "AdminRoleArn" ], "createOnlyProperties": [ "/properties/StudioName", @@ -101,67 +69,10 @@ "primaryIdentifier": [ "/properties/StudioId" ], - "required": [ - "DisplayName", - "UserRoleArn", - "AdminRoleArn", - "StudioName" - ], - "handlers": { - "create": { - "permissions": [ - "iam:PassRole", - "nimble:CreateStudio", - "nimble:GetStudio", - "nimble:TagResource", - "sso:CreateManagedApplicationInstance", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant", - "kms:ListGrants", - "kms:GenerateDataKey" - ] - }, - "read": { - "permissions": [ - "nimble:GetStudio", - "kms:Encrypt", - "kms:Decrypt", - "kms:ListGrants", - "kms:GenerateDataKey" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "nimble:UpdateStudio", - "nimble:GetStudio", - "kms:Encrypt", - "kms:Decrypt", - "kms:CreateGrant", - "kms:ListGrants", - "kms:GenerateDataKey" - ] - }, - "delete": { - "permissions": [ - "nimble:DeleteStudio", - "nimble:GetStudio", - "nimble:UntagResource", - "kms:Encrypt", - "kms:Decrypt", - "kms:ListGrants", - "kms:RetireGrant", - "kms:GenerateDataKey", - "sso:DeleteManagedApplicationInstance", - "sso:GetManagedApplicationInstance" - ] - }, - "list": { - "permissions": [ - "nimble:ListStudios" - ] - } - }, - "additionalProperties": false + "readOnlyProperties": [ + "/properties/StudioId", + "/properties/HomeRegion", + "/properties/SsoClientId", + "/properties/StudioUrl" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_NimbleStudio_StudioComponent.json b/internal/service/cloudformation/schemas/AWS_NimbleStudio_StudioComponent.json index 1f45455b42..1c0465514b 100644 --- a/internal/service/cloudformation/schemas/AWS_NimbleStudio_StudioComponent.json +++ b/internal/service/cloudformation/schemas/AWS_NimbleStudio_StudioComponent.json @@ -1,393 +1,196 @@ { "typeName": "AWS::NimbleStudio::StudioComponent", - "description": "Represents a studio component that connects a non-Nimble Studio resource in your account to your studio", - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-nimblestudio", + "description": "Resource Type definition for AWS::NimbleStudio::StudioComponent", + "additionalProperties": false, + "properties": { + "InitializationScripts": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/StudioComponentInitializationScript" + } + }, + "Type": { + "type": "string" + }, + "Description": { + "type": "string" + }, + "Configuration": { + "$ref": "#/definitions/StudioComponentConfiguration" + }, + "Ec2SecurityGroupIds": { + "type": "array", + "uniqueItems": false, + "items": { + "type": "string" + } + }, + "ScriptParameters": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ScriptParameterKeyValue" + } + }, + "StudioId": { + "type": "string" + }, + "StudioComponentId": { + "type": "string" + }, + "Subtype": { + "type": "string" + }, + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string" + } + } + }, + "Name": { + "type": "string" + } + }, "definitions": { - "ActiveDirectoryComputerAttribute": { + "LicenseServiceConfiguration": { "type": "object", - "description": "An LDAP attribute of an Active Directory computer account, in the form of a name:value\n pair.
", + "additionalProperties": false, "properties": { - "Name": { - "type": "string", - "maxLength": 40, - "minLength": 1, - "description": "The name for the LDAP attribute.
" - }, - "Value": { - "type": "string", - "maxLength": 64, - "minLength": 1, - "description": "The value for the LDAP attribute.
" + "Endpoint": { + "type": "string" } - }, - "additionalProperties": false + } }, - "ActiveDirectoryConfiguration": { + "StudioComponentInitializationScript": { "type": "object", - "description": "The configuration for a Microsoft Active Directory (Microsoft AD) studio\n resource.
", + "additionalProperties": false, "properties": { - "ComputerAttributes": { - "type": "array", - "items": { - "$ref": "#/definitions/ActiveDirectoryComputerAttribute" - }, - "maxItems": 50, - "minItems": 0, - "description": "A collection of custom attributes for an Active Directory computer.
" + "Script": { + "type": "string" }, - "DirectoryId": { - "type": "string", - "description": "The directory ID of the Directory Service for Microsoft Active Directory to access\n using this studio component.
" + "RunContext": { + "type": "string" }, - "OrganizationalUnitDistinguishedName": { - "type": "string", - "maxLength": 2000, - "minLength": 1, - "description": "The distinguished name (DN) and organizational unit (OU) of an Active Directory\n computer.
" + "LaunchProfileProtocolVersion": { + "type": "string" + }, + "Platform": { + "type": "string" } - }, - "additionalProperties": false + } }, "ComputeFarmConfiguration": { "type": "object", - "description": "The configuration for a render farm that is associated with a studio resource.
", + "additionalProperties": false, "properties": { "ActiveDirectoryUser": { - "type": "string", - "description": "The name of an Active Directory user that is used on ComputeFarm worker\n instances.
" + "type": "string" }, "Endpoint": { - "type": "string", - "description": "The endpoint of the ComputeFarm that is accessed by the studio component\n resource.
" + "type": "string" } - }, - "additionalProperties": false - }, - "LaunchProfilePlatform": { - "type": "string", - "enum": [ - "LINUX", - "WINDOWS" - ] + } }, - "LicenseServiceConfiguration": { + "SharedFileSystemConfiguration": { "type": "object", - "description": "The configuration for a license service that is associated with a studio\n resource.
", + "additionalProperties": false, "properties": { + "FileSystemId": { + "type": "string" + }, + "ShareName": { + "type": "string" + }, "Endpoint": { - "type": "string", - "description": "The endpoint of the license service that is accessed by the studio component\n resource.
" + "type": "string" + }, + "WindowsMountDrive": { + "type": "string" + }, + "LinuxMountPoint": { + "type": "string" } - }, - "additionalProperties": false + } }, - "ScriptParameterKeyValue": { + "ActiveDirectoryConfiguration": { "type": "object", - "description": "A parameter for a studio component script, in the form of a key:value pair.
", + "additionalProperties": false, "properties": { - "Key": { - "type": "string", - "maxLength": 64, - "minLength": 1, - "pattern": "^[a-zA-Z_][a-zA-Z0-9_]+$", - "description": "A script parameter key.
" + "ComputerAttributes": { + "type": "array", + "uniqueItems": false, + "items": { + "$ref": "#/definitions/ActiveDirectoryComputerAttribute" + } }, - "Value": { - "type": "string", - "maxLength": 256, - "minLength": 1, - "description": "A script parameter value.
" + "DirectoryId": { + "type": "string" + }, + "OrganizationalUnitDistinguishedName": { + "type": "string" } - }, - "additionalProperties": false + } }, - "SharedFileSystemConfiguration": { + "ActiveDirectoryComputerAttribute": { "type": "object", - "description": "The configuration for a shared file storage system that is associated with a studio\n resource.
", + "additionalProperties": false, "properties": { - "Endpoint": { - "type": "string", - "description": "The endpoint of the shared file system that is accessed by the studio component\n resource.
" - }, - "FileSystemId": { - "type": "string", - "description": "The unique identifier for a file system.
" - }, - "LinuxMountPoint": { - "type": "string", - "maxLength": 128, - "minLength": 0, - "pattern": "^(/?|(\\$HOME)?(/[^/\\n\\s\\\\]+)*)$", - "description": "The mount location for a shared file system on a Linux virtual workstation.
" - }, - "ShareName": { - "type": "string", - "description": "The name of the file share.
" + "Value": { + "type": "string" }, - "WindowsMountDrive": { - "type": "string", - "pattern": "^[A-Z]$", - "description": "The mount location for a shared file system on a Windows virtual workstation.
" + "Name": { + "type": "string" } - }, - "additionalProperties": false + } }, - "StudioComponentConfiguration": { - "description": "The configuration of the studio component, based on component type.
", - "oneOf": [ - { - "type": "object", - "title": "ActiveDirectoryConfiguration", - "properties": { - "ActiveDirectoryConfiguration": { - "$ref": "#/definitions/ActiveDirectoryConfiguration" - } - }, - "required": [ - "ActiveDirectoryConfiguration" - ], - "additionalProperties": false - }, - { - "type": "object", - "title": "ComputeFarmConfiguration", - "properties": { - "ComputeFarmConfiguration": { - "$ref": "#/definitions/ComputeFarmConfiguration" - } - }, - "required": [ - "ComputeFarmConfiguration" - ], - "additionalProperties": false - }, - { - "type": "object", - "title": "LicenseServiceConfiguration", - "properties": { - "LicenseServiceConfiguration": { - "$ref": "#/definitions/LicenseServiceConfiguration" - } - }, - "required": [ - "LicenseServiceConfiguration" - ], - "additionalProperties": false + "ScriptParameterKeyValue": { + "type": "object", + "additionalProperties": false, + "properties": { + "Value": { + "type": "string" }, - { - "type": "object", - "title": "SharedFileSystemConfiguration", - "properties": { - "SharedFileSystemConfiguration": { - "$ref": "#/definitions/SharedFileSystemConfiguration" - } - }, - "required": [ - "SharedFileSystemConfiguration" - ], - "additionalProperties": false + "Key": { + "type": "string" } - ] + } }, - "StudioComponentInitializationScript": { + "StudioComponentConfiguration": { "type": "object", - "description": "Initialization scripts for studio components.
", + "additionalProperties": false, "properties": { - "LaunchProfileProtocolVersion": { - "type": "string", - "maxLength": 10, - "minLength": 0, - "pattern": "^2021\\-03\\-31$", - "description": "The version number of the protocol that is used by the launch profile. The only valid\n version is \"2021-03-31\".
" + "LicenseServiceConfiguration": { + "$ref": "#/definitions/LicenseServiceConfiguration" }, - "Platform": { - "$ref": "#/definitions/LaunchProfilePlatform" + "ComputeFarmConfiguration": { + "$ref": "#/definitions/ComputeFarmConfiguration" }, - "RunContext": { - "$ref": "#/definitions/StudioComponentInitializationScriptRunContext" + "ActiveDirectoryConfiguration": { + "$ref": "#/definitions/ActiveDirectoryConfiguration" }, - "Script": { - "type": "string", - "maxLength": 5120, - "minLength": 1, - "description": "The initialization script.
" - } - }, - "additionalProperties": false - }, - "StudioComponentInitializationScriptRunContext": { - "type": "string", - "enum": [ - "SYSTEM_INITIALIZATION", - "USER_INITIALIZATION" - ] - }, - "StudioComponentSubtype": { - "type": "string", - "enum": [ - "AWS_MANAGED_MICROSOFT_AD", - "AMAZON_FSX_FOR_WINDOWS", - "AMAZON_FSX_FOR_LUSTRE", - "CUSTOM" - ] - }, - "StudioComponentType": { - "type": "string", - "enum": [ - "ACTIVE_DIRECTORY", - "SHARED_FILE_SYSTEM", - "COMPUTE_FARM", - "LICENSE_SERVICE", - "CUSTOM" - ] - }, - "Tags": { - "type": "object", - "patternProperties": { - "": { - "type": "string" + "SharedFileSystemConfiguration": { + "$ref": "#/definitions/SharedFileSystemConfiguration" } - }, - "additionalProperties": false - } - }, - "properties": { - "Configuration": { - "$ref": "#/definitions/StudioComponentConfiguration" - }, - "Description": { - "type": "string", - "maxLength": 256, - "minLength": 0, - "description": "The description.
" - }, - "Ec2SecurityGroupIds": { - "type": "array", - "items": { - "type": "string" - }, - "maxItems": 30, - "minItems": 0, - "description": "The EC2 security groups that control access to the studio component.
" - }, - "InitializationScripts": { - "type": "array", - "items": { - "$ref": "#/definitions/StudioComponentInitializationScript" - }, - "description": "Initialization scripts for studio components.
" - }, - "Name": { - "type": "string", - "maxLength": 64, - "minLength": 0, - "description": "The name for the studio component.
" - }, - "RuntimeRoleArn": { - "type": "string", - "maxLength": 2048, - "minLength": 0 - }, - "ScriptParameters": { - "type": "array", - "items": { - "$ref": "#/definitions/ScriptParameterKeyValue" - }, - "maxItems": 30, - "minItems": 0, - "description": "Parameters for the studio component scripts.
" - }, - "SecureInitializationRoleArn": { - "type": "string", - "maxLength": 2048, - "minLength": 0 - }, - "StudioComponentId": { - "type": "string" - }, - "StudioId": { - "type": "string", - "description": "The studio ID.
" - }, - "Subtype": { - "$ref": "#/definitions/StudioComponentSubtype" - }, - "Tags": { - "$ref": "#/definitions/Tags" - }, - "Type": { - "$ref": "#/definitions/StudioComponentType" + } } }, "required": [ + "Type", "StudioId", - "Name", - "Type" - ], - "readOnlyProperties": [ - "/properties/StudioComponentId" + "Name" ], "createOnlyProperties": [ - "/properties/StudioId", "/properties/Subtype", + "/properties/StudioId", "/properties/Tags" ], "primaryIdentifier": [ - "/properties/StudioComponentId", - "/properties/StudioId" + "/properties/StudioComponentId" ], - "handlers": { - "create": { - "permissions": [ - "iam:PassRole", - "nimble:CreateStudioComponent", - "nimble:GetStudioComponent", - "nimble:TagResource", - "ds:AuthorizeApplication", - "ec2:DescribeSecurityGroups", - "fsx:DescribeFilesystems", - "ds:DescribeDirectories" - ] - }, - "read": { - "permissions": [ - "nimble:GetStudioComponent" - ] - }, - "update": { - "permissions": [ - "iam:PassRole", - "nimble:UpdateStudioComponent", - "nimble:GetStudioComponent", - "ds:AuthorizeApplication", - "ec2:DescribeSecurityGroups", - "fsx:DescribeFilesystems", - "ds:DescribeDirectories" - ] - }, - "delete": { - "permissions": [ - "nimble:DeleteStudioComponent", - "nimble:GetStudioComponent", - "nimble:UntagResource", - "ds:UnauthorizeApplication" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "StudioId": { - "$ref": "resource-schema.json#/properties/StudioId" - } - }, - "required": [ - "StudioId" - ] - }, - "permissions": [ - "nimble:ListStudioComponents" - ] - } - }, - "additionalProperties": false + "readOnlyProperties": [ + "/properties/StudioComponentId" + ] } diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json index deab08f313..bad515c3e5 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBCluster.json @@ -1,552 +1,558 @@ { - "tagging": { - "permissions": [ - "rds:AddTagsToResource", - "rds:RemoveTagsFromResource" - ], - "taggable": true, - "tagOnCreate": true, - "tagUpdatable": true, - "tagProperty": "/properties/Tags", - "cloudFormationSystemTags": true - }, "typeName": "AWS::RDS::DBCluster", - "readOnlyProperties": [ - "/properties/DBClusterArn", - "/properties/DBClusterResourceId", - "/properties/Endpoint", - "/properties/Endpoint/Address", - "/properties/Endpoint/Port", - "/properties/ReadEndpoint/Address", - "/properties/MasterUserSecret/SecretArn", - "/properties/StorageThroughput" - ], "description": "The ``AWS::RDS::DBCluster`` resource creates an Amazon Aurora DB cluster or Multi-AZ DB cluster.\n For more information about creating 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*.\n For more information about creating a Multi-AZ DB cluster, see [Creating a Multi-AZ DB cluster](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html) in the *Amazon RDS User Guide*.\n You can only create this resource in AWS Regions where Amazon Aurora or Multi-AZ DB clusters are supported.\n *Updating DB clusters* \n When properties labeled \"*Update requires:* [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)\" are updated, AWS CloudFormation first creates a replacement DB cluster, then changes references from other dependent resources to point to the replacement DB cluster, and finally deletes the old DB cluster.\n We highly recommend that you take a snapshot of the database before updating the stack. If you don't, you lose the data when AWS CloudFormation replaces your DB cluster. To preserve your data, perform the following procedure:\n 1. Deactivate any applications that are using the DB cluster so that there's no activity on the DB instance.\n 1. Create a snapshot of the DB cluster. For more information, see [Creating a DB cluster snapshot](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_CreateSnapshotCluster.html).\n 1. If you want to restore your DB cluster using a DB cluster snapshot, modify the updated template with your DB cluster changes and add the ``SnapshotIdentifier`` property with the ID of the DB cluster snapshot that you want to use.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the DB cluster snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n 1. Update the stack.\n \n Currently, when you are updating the stack for an Aurora Serverless DB cluster, you can't include changes to any other properties when you specify one of the following properties: ``PreferredBackupWindow``, ``PreferredMaintenanceWindow``, and ``Port``. This limitation doesn't apply to provisioned DB clusters.\n For more information about updating other properties of this resource, see ``ModifyDBCluster``. For more information about updating stacks, see [CloudFormation Stacks Updates](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html).\n *Deleting DB clusters* \n The default ``DeletionPolicy`` for ``AWS::RDS::DBCluster`` resources is ``Snapshot``. For more information about how AWS CloudFormation deletes resources, see [DeletionPolicy Attribute](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-deletionpolicy.html).", - "createOnlyProperties": [ - "/properties/AvailabilityZones", - "/properties/DBClusterIdentifier", - "/properties/DBSubnetGroupName", - "/properties/DBSystemId", - "/properties/DatabaseName", - "/properties/EngineMode", - "/properties/KmsKeyId", - "/properties/PubliclyAccessible", - "/properties/RestoreToTime", - "/properties/RestoreType", - "/properties/SnapshotIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceRegion", - "/properties/StorageEncrypted", - "/properties/UseLatestRestorableTime" - ], - "primaryIdentifier": [ - "/properties/DBClusterIdentifier" - ], - "conditionalCreateOnlyProperties": [ - "/properties/Engine", - "/properties/GlobalClusterIdentifier", - "/properties/MasterUsername" - ], "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", - "propertyTransform": { - "/properties/KmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", KmsKeyId])", - "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", - "/properties/StorageType": "$lowercase(StorageType)", - "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", MasterUserSecret.KmsKeyId])", - "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", - "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", - "/properties/NetworkType": "$lowercase(NetworkType)", - "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", PerformanceInsightsKmsKeyId])", - "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", - "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", - "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", - "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", - "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", - "/properties/Engine": "$lowercase(Engine)" - }, - "handlers": { - "read": { - "permissions": [ - "rds:DescribeDBClusters" - ] - }, - "create": { - "permissions": [ - "iam:CreateServiceLinkedRole", - "iam:PassRole", - "rds:AddRoleToDBCluster", - "rds:AddTagsToResource", - "rds:CreateDBCluster", - "rds:CreateDBInstance", - "rds:DescribeDBClusters", - "rds:DescribeDBClusterSnapshots", - "rds:DescribeDBSnapshots", - "rds:DescribeEvents", - "rds:EnableHttpEndpoint", - "rds:ModifyDBCluster", - "rds:RestoreDBClusterFromSnapshot", - "rds:RestoreDBClusterToPointInTime", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 + "properties": { + "Endpoint": { + "$ref": "#/definitions/Endpoint", + "description": "" }, - "update": { - "permissions": [ - "ec2:DescribeSecurityGroups", - "iam:PassRole", - "rds:AddRoleToDBCluster", - "rds:AddTagsToResource", - "rds:DescribeDBClusters", - "rds:DescribeDBSubnetGroups", - "rds:DescribeEvents", - "rds:DescribeGlobalClusters", - "rds:DisableHttpEndpoint", - "rds:EnableHttpEndpoint", - "rds:ModifyDBCluster", - "rds:ModifyDBInstance", - "rds:RemoveFromGlobalCluster", - "rds:RemoveRoleFromDBCluster", - "rds:RemoveTagsFromResource", - "secretsmanager:CreateSecret", - "secretsmanager:TagResource" - ], - "timeoutInMinutes": 2160 + "ReadEndpoint": { + "$ref": "#/definitions/ReadEndpoint", + "description": "This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a response element in the following actions:\n + ``CreateDBInstance`` \n + ``DescribeDBInstances`` \n + ``DeleteDBInstance`` \n \n For the data structure that represents Amazon Aurora DB cluster endpoints, see ``DBClusterEndpoint``." }, - "list": { - "permissions": [ - "rds:DescribeDBClusters" - ] + "AllocatedStorage": { + "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only\n This setting is required to create a Multi-AZ DB cluster.", + "type": "integer" }, - "delete": { - "permissions": [ - "rds:AddTagsToResource", - "rds:CreateDBClusterSnapshot", - "rds:DeleteDBCluster", - "rds:DeleteDBInstance", - "rds:DescribeDBClusters", - "rds:DescribeGlobalClusters", - "rds:RemoveFromGlobalCluster" - ] - } - }, - "writeOnlyProperties": [ - "/properties/DBInstanceParameterGroupName", - "/properties/MasterUserPassword", - "/properties/RestoreToTime", - "/properties/RestoreType", - "/properties/SnapshotIdentifier", - "/properties/SourceDBClusterIdentifier", - "/properties/SourceRegion", - "/properties/UseLatestRestorableTime" - ], - "additionalProperties": false, - "definitions": { - "MasterUserSecret": { - "description": "The ``MasterUserSecret`` return value specifies the secret managed by RDS in AWS Secrets Manager for the master user password.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", - "additionalProperties": false, - "type": "object", - "properties": { - "SecretArn": { - "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values).", - "type": "string" - }, - "KmsKeyId": { - "description": "The AWS KMS key identifier that is used to encrypt the secret.", - "type": "string" - } + "AssociatedRoles": { + "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "array", + "uniqueItems": true, + "items": { + "$ref": "#/definitions/DBClusterRole" } }, - "Endpoint": { - "description": "The ``Endpoint`` return value specifies the connection endpoint for the primary instance of the DB cluster.", - "additionalProperties": false, - "type": "object", - "properties": { - "Address": { - "description": "Specifies the connection endpoint for the primary instance of the DB cluster.", - "type": "string" - }, - "Port": { - "description": "Specifies the port that the database engine is listening on.", - "type": "string" - } + "AvailabilityZones": { + "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. \n Valid for: Aurora DB clusters only", + "type": "array", + "uniqueItems": true, + "items": { + "type": "string" } }, - "ServerlessV2ScalingConfiguration": { - "description": "The ``ServerlessV2ScalingConfiguration`` property type specifies the scaling configuration of an Aurora Serverless V2 DB cluster. For more information, see [Using Amazon Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) in the *Amazon Aurora User Guide*.\n If you have an Aurora cluster, you must set this attribute before you add a DB instance that uses the ``db.serverless`` DB instance class. For more information, see [Clusters that use Aurora Serverless v2 must have a capacity range specified](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html#aurora-serverless-v2.requirements.capacity-range) in the *Amazon Aurora User Guide*.\n This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, use the ``ScalingConfiguration`` property.\n Valid for: Aurora Serverless v2 DB clusters", - "additionalProperties": false, - "type": "object", - "properties": { - "MinCapacity": { - "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", - "type": "number" - }, - "MaxCapacity": { - "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.\n The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*.\n Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range.", - "type": "number" - } - } + "AutoMinorVersionUpgrade": { + "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "type": "boolean" }, - "ScalingConfiguration": { - "description": "The ``ScalingConfiguration`` property type specifies the scaling configuration of an Aurora Serverless v1 DB cluster. \n For more information, see [Using Amazon Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) in the *Amazon Aurora User Guide*.\n This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the ``ServerlessV2ScalingConfiguration`` property.\n Valid for: Aurora Serverless v1 DB clusters only", - "additionalProperties": false, - "type": "object", - "properties": { - "TimeoutAction": { - "description": "The action to take when the timeout is reached, either ``ForceApplyCapacityChange`` or ``RollbackCapacityChange``.\n ``ForceApplyCapacityChange`` sets the capacity to the specified value as soon as possible.\n ``RollbackCapacityChange``, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n If you specify ``ForceApplyCapacityChange``, connections that prevent Aurora Serverless v1 from finding a scaling point might be dropped.\n For more information, see [Autoscaling for Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling) in the *Amazon Aurora User Guide*.", - "type": "string" - }, - "SecondsBeforeTimeout": { - "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300.\n Specify a value between 60 and 600 seconds.", - "type": "integer" - }, - "SecondsUntilAutoPause": { - "description": "The time, in seconds, before an Aurora DB cluster in ``serverless`` mode is paused.\n Specify a value between 300 and 86,400 seconds.", - "type": "integer" - }, - "AutoPause": { - "description": "Indicates whether to allow or disallow automatic pause for an Aurora DB cluster in ``serverless`` DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).\n If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.", - "type": "boolean" - }, - "MinCapacity": { - "description": "The minimum capacity for an Aurora DB cluster in ``serverless`` DB engine mode.\n For Aurora MySQL, valid capacity values are ``1``, ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``128``, and ``256``.\n For Aurora PostgreSQL, valid capacity values are ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``192``, and ``384``.\n The minimum capacity must be less than or equal to the maximum capacity.", - "type": "integer" - }, - "MaxCapacity": { - "description": "The maximum capacity for an Aurora DB cluster in ``serverless`` DB engine mode.\n For Aurora MySQL, valid capacity values are ``1``, ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``128``, and ``256``.\n For Aurora PostgreSQL, valid capacity values are ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``192``, and ``384``.\n The maximum capacity must be greater than or equal to the minimum capacity.", - "type": "integer" - } - } + "BacktrackWindow": { + "description": "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", + "minimum": 0, + "type": "integer" }, - "ReadEndpoint": { - "description": "The ``ReadEndpoint`` return value specifies the reader endpoint for the DB cluster.\n The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.\n If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.\n For more information about Aurora endpoints, see [Amazon Aurora connection management](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html) in the *Amazon Aurora User Guide*.", - "additionalProperties": false, - "type": "object", - "properties": { - "Address": { - "description": "The host address of the reader endpoint.", - "type": "string" - } - } + "BackupRetentionPeriod": { + "description": "The number of days for which automated backups are retained.\n Default: 1\n Constraints:\n + Must be a value from 1 to 35\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "default": 1, + "minimum": 1, + "type": "integer" }, - "DBClusterRole": { - "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", - "additionalProperties": false, - "type": "object", - "properties": { - "RoleArn": { - "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", - "type": "string" - }, - "FeatureName": { - "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB cluster grant permission for the DB cluster 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*.", - "type": "string" - } - }, - "required": [ - "RoleArn" - ] + "ClusterScalabilityType": { + "type": "string", + "description": "" }, - "Tag": { - "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", - "additionalProperties": false, - "type": "object", - "properties": { - "Value": { - "minLength": 0, - "description": "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}_.:/=+\\\\-@]*)$\").", - "type": "string", - "maxLength": 256 - }, - "Key": { - "minLength": 1, - "description": "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}_.:/=+\\\\-@]*)$\").", - "type": "string", - "maxLength": 128 - } - }, - "required": [ - "Key" - ] - } - }, - "properties": { - "StorageEncrypted": { - "description": "Indicates whether the DB cluster is encrypted.\n If you specify the ``KmsKeyId`` property, then you must enable encryption.\n If you specify the ``SourceDBClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified ``KmsKeyId`` property is used.\n If you specify the ``SnapshotIdentifier`` 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.\n If you specify the ``SnapshotIdentifier`` and the specified snapshot isn't encrypted, you can use this property to specify that the restored DB cluster is encrypted. Specify the ``KmsKeyId`` property for the KMS key to use for encryption. If you don't want the restored DB cluster to be encrypted, then don't set this property or set it to ``false``.\n If you specify both the ``StorageEncrypted`` and ``SnapshotIdentifier`` properties without specifying the ``KmsKeyId`` property, then the restored DB cluster inherits the encryption settings from the DB snapshot that provide.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "CopyTagsToSnapshot": { + "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "boolean" }, - "DBSystemId": { - "description": "Reserved for future use.", + "DatabaseName": { + "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, - "RestoreToTime": { - "description": "The date and time to restore the DB cluster to.\n Valid Values: Value must be a time in Universal Coordinated Time (UTC) format\n Constraints:\n + Must be before the latest restorable time for the DB instance\n + Must be specified if ``UseLatestRestorableTime`` parameter isn't provided\n + Can't be specified if the ``UseLatestRestorableTime`` parameter is enabled\n + Can't be specified if the ``RestoreType`` parameter is ``copy-on-write`` \n \n This property must be used with ``SourceDBClusterIdentifier`` property. The resulting cluster will have the identifier that matches the value of the ``DBclusterIdentifier`` property.\n Example: ``2015-03-07T23:45:00Z`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "DBClusterArn": { + "type": "string", + "description": "" + }, + "DBClusterInstanceClass": { + "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example ``db.m6gd.xlarge``. Not all DB instance classes are available in all AWS-Regions, or for all database engines.\n 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*.\n This setting is required to create a Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only", "type": "string" }, - "EngineMode": { - "description": "The DB engine mode of the DB cluster, either ``provisioned`` or ``serverless``.\n The ``serverless`` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the ``provisioned`` engine mode.\n For information about limitations and requirements for Serverless DB clusters, see the following sections in the *Amazon Aurora User Guide*:\n + [Limitations of Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n + [Requirements for Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) \n \n Valid for Cluster Type: Aurora DB clusters only", + "DBClusterResourceId": { + "description": "", "type": "string" }, - "Port": { - "description": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + When ``EngineMode`` is ``provisioned``, ``3306`` (for both Aurora MySQL and Aurora PostgreSQL)\n + When ``EngineMode`` is ``serverless``:\n + ``3306`` when ``Engine`` is ``aurora`` or ``aurora-mysql`` \n + ``5432`` when ``Engine`` is ``aurora-postgresql`` \n \n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "integer" + "DBInstanceParameterGroupName": { + "description": "The name of the DB parameter group to apply to all instances of the DB cluster.\n When you apply a parameter group using the ``DBInstanceParameterGroupName`` parameter, the DB cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather than during the next maintenance window.\n Valid for Cluster Type: Aurora DB clusters only\n Default: The existing name setting\n Constraints:\n + The DB parameter group must be in the same DB parameter group family as this DB cluster.\n + The ``DBInstanceParameterGroupName`` parameter is valid in combination with the ``AllowMajorVersionUpgrade`` parameter for a major version upgrade only.", + "type": "string" + }, + "DBSystemId": { + "description": "Reserved for future use.", + "type": "string" + }, + "GlobalClusterIdentifier": { + "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource. \n If you aren't configuring a global database cluster, don't specify this property. \n To remove the DB cluster from a global database cluster, specify an empty value for the ``GlobalClusterIdentifier`` property.\n For information about Aurora global databases, see [Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*.\n Valid for: Aurora DB clusters only", + "type": "string", + "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "minLength": 0, + "maxLength": 63 }, "DBClusterIdentifier": { - "minLength": 1, - "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", "description": "The DB cluster identifier. This parameter is stored as a lowercase string.\n Constraints:\n + Must contain from 1 to 63 letters, numbers, or hyphens.\n + First character must be a letter.\n + Can't end with a hyphen or contain two consecutive hyphens.\n \n Example: ``my-cluster1`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string", + "pattern": "^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", + "minLength": 1, "maxLength": 63 }, - "StorageThroughput": { - "description": "", - "type": "integer" + "DBClusterParameterGroupName": { + "description": "The name of the DB cluster parameter group to associate with this DB cluster.\n If you apply a parameter group to an existing DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started.\n To list all of the available DB cluster parameter group names, use the following command:\n ``aws rds describe-db-cluster-parameter-groups --query \"DBClusterParameterGroups[].DBClusterParameterGroupName\" --output text`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" }, - "MonitoringInterval": { - "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", - "type": "integer" + "DBSubnetGroupName": { + "description": "A DB subnet group that you want to associate with this DB cluster. \n If you are restoring a DB cluster to a point in time with ``RestoreType`` set to ``copy-on-write``, and don't specify a DB subnet group name, then the DB cluster is restored with a default DB subnet group.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" }, - "Endpoint": { - "description": "", - "$ref": "#/definitions/Endpoint" + "DeletionProtection": { + "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "boolean" }, - "ReplicationSourceIdentifier": { - "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.\n Valid for: Aurora DB clusters only", + "Domain": { + "description": "Indicates the directory ID of the Active Directory to create the DB cluster.\n For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate users that connect to the DB cluster.\n For more information, see [Kerberos authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) in the *Amazon Aurora User Guide*.\n Valid for: Aurora DB clusters only", "type": "string" }, - "Engine": { - "description": "The name of the database engine to be used for this DB cluster.\n Valid Values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres`` \n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "DomainIAMRoleName": { + "description": "Specifies the name of the IAM role to use when making API calls to the Directory Service.\n Valid for: Aurora DB clusters only", "type": "string" }, - "Tags": { - "maxItems": 50, - "uniqueItems": true, - "description": "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", - "insertionOrder": false, + "EnableCloudwatchLogsExports": { + "description": "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/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*.\n *Aurora MySQL* \n Valid values: ``audit``, ``error``, ``general``, ``slowquery`` \n *Aurora PostgreSQL* \n Valid values: ``postgresql`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "array", + "uniqueItems": true, "items": { - "$ref": "#/definitions/Tag" + "type": "string" } }, - "EngineVersion": { - "description": "The version number of the database engine to use.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" - }, - "StorageType": { - "description": "The storage type to associate with the DB cluster.\n For information on storage types for Aurora DB clusters, see [Storage configurations for Amazon Aurora DB clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type). For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ DB clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings).\n This setting is required to create a Multi-AZ DB cluster.\n When specified for a Multi-AZ DB cluster, a value for the ``Iops`` parameter is required.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + Aurora DB clusters - ``aurora | aurora-iopt1`` \n + Multi-AZ DB clusters - ``io1 | io2 | gp3`` \n \n Default:\n + Aurora DB clusters - ``aurora`` \n + Multi-AZ DB clusters - ``io1`` \n \n When you create an Aurora DB cluster with the storage type set to ``aurora-iopt1``, the storage type is returned in the response. The storage type isn't returned when you set it to ``aurora``.", - "type": "string" - }, - "KmsKeyId": { - "description": "The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the database instances in the DB cluster, 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, the default KMS key is used. If you specify this property, you must set the ``StorageEncrypted`` property to ``true``.\n If you specify the ``SnapshotIdentifier`` property, the ``StorageEncrypted`` property value is inherited from the snapshot, and if the DB cluster is encrypted, the specified ``KmsKeyId`` property is used.\n If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to set ``KmsKeyId`` to a KMS key identifier that is valid in the destination AWS Region. This KMS key is used to encrypt the read replica in that AWS Region.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" - }, - "ServerlessV2ScalingConfiguration": { - "description": "The scaling configuration of an Aurora Serverless V2 DB cluster. \n This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the ``ScalingConfiguration`` property.\n Valid for: Aurora Serverless v2 DB clusters only", - "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + "EnableGlobalWriteForwarding": { + "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.\n You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster, and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by a global cluster API operation, but it does nothing until then.\n Valid for Cluster Type: Aurora DB clusters only", + "type": "boolean" }, - "PerformanceInsightsRetentionPeriod": { - "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *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)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", - "type": "integer" + "EnableHttpEndpoint": { + "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", + "type": "boolean" }, - "DatabaseName": { - "description": "The name of your database. If you don't provide a name, then Amazon RDS won't create a database in this DB cluster. For naming constraints, see [Naming Constraints](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_Limits.html#RDS_Limits.Constraints) in the *Amazon Aurora User Guide*. \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" + "EnableIAMDatabaseAuthentication": { + "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.\n For more information, see [IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide.* \n Valid for: Aurora DB clusters only", + "type": "boolean" }, "EnableLocalWriteForwarding": { "description": "Specifies whether read replicas can forward write operations to the writer DB instance in the DB cluster. By default, write operations aren't allowed on reader DB instances.\n Valid for: Aurora DB clusters only", "type": "boolean" }, - "DBClusterResourceId": { - "description": "", + "Engine": { + "description": "The name of the database engine to be used for this DB cluster.\n Valid Values:\n + ``aurora-mysql`` \n + ``aurora-postgresql`` \n + ``mysql`` \n + ``postgres`` \n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, - "AutoMinorVersionUpgrade": { - "description": "Specifies whether minor engine upgrades are applied automatically to the DB cluster during the maintenance window. By default, minor engine upgrades are applied automatically.\n Valid for Cluster Type: Multi-AZ DB clusters only", - "type": "boolean" + "EngineLifecycleSupport": { + "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", + "type": "string" }, - "DBSubnetGroupName": { - "description": "A DB subnet group that you want to associate with this DB cluster. \n If you are restoring a DB cluster to a point in time with ``RestoreType`` set to ``copy-on-write``, and don't specify a DB subnet group name, then the DB cluster is restored with a default DB subnet group.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "EngineMode": { + "description": "The DB engine mode of the DB cluster, either ``provisioned`` or ``serverless``.\n The ``serverless`` engine mode only applies for Aurora Serverless v1 DB clusters. Aurora Serverless v2 DB clusters use the ``provisioned`` engine mode.\n For information about limitations and requirements for Serverless DB clusters, see the following sections in the *Amazon Aurora User Guide*:\n + [Limitations of Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.limitations) \n + [Requirements for Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html) \n \n Valid for Cluster Type: Aurora DB clusters only", "type": "string" }, - "DeletionProtection": { - "description": "A value that indicates whether the DB cluster has deletion protection enabled. The database can't be deleted when deletion protection is enabled. By default, deletion protection is disabled.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "EngineVersion": { + "description": "The version number of the database engine to use.\n To list all of the available engine versions for Aurora MySQL version 2 (5.7-compatible) and version 3 (8.0-compatible), use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-mysql --query \"DBEngineVersions[].EngineVersion\"`` \n You can supply either ``5.7`` or ``8.0`` to use the default engine version for Aurora MySQL version 2 or version 3, respectively.\n To list all of the available engine versions for Aurora PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine aurora-postgresql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for MySQL, use the following command:\n ``aws rds describe-db-engine-versions --engine mysql --query \"DBEngineVersions[].EngineVersion\"`` \n To list all of the available engine versions for RDS for PostgreSQL, use the following command:\n ``aws rds describe-db-engine-versions --engine postgres --query \"DBEngineVersions[].EngineVersion\"`` \n *Aurora MySQL* \n For information, see [Database engine updates for Amazon Aurora MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.html) in the *Amazon Aurora User Guide*.\n *Aurora PostgreSQL* \n For information, see [Amazon Aurora PostgreSQL releases and engine versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html) in the *Amazon Aurora User Guide*.\n *MySQL* \n For information, see [Amazon RDS for MySQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_MySQL.html#MySQL.Concepts.VersionMgmt) in the *Amazon RDS User Guide*.\n *PostgreSQL* \n For information, see [Amazon RDS for PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts) in the *Amazon RDS User Guide*.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" + }, + "ManageMasterUserPassword": { + "description": "Specifies whether to manage the master user password with AWS Secrets Manager.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Constraints:\n + Can't manage the master user password with AWS Secrets Manager if ``MasterUserPassword`` is specified.", "type": "boolean" }, - "AllocatedStorage": { - "description": "The amount of storage in gibibytes (GiB) to allocate to each DB instance in the Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only\n This setting is required to create a Multi-AZ DB cluster.", + "Iops": { + "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.\n For information about valid IOPS values, see [Provisioned IOPS storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*.\n This setting is required to create a Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Constraints:\n + Must be a multiple between .5 and 50 of the storage amount for the DB cluster.", "type": "integer" }, + "KmsKeyId": { + "description": "The Amazon Resource Name (ARN) of the AWS KMS key that is used to encrypt the database instances in the DB cluster, 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, the default KMS key is used. If you specify this property, you must set the ``StorageEncrypted`` property to ``true``.\n If you specify the ``SnapshotIdentifier`` property, the ``StorageEncrypted`` property value is inherited from the snapshot, and if the DB cluster is encrypted, the specified ``KmsKeyId`` property is used.\n If you create a read replica of an encrypted DB cluster in another AWS Region, make sure to set ``KmsKeyId`` to a KMS key identifier that is valid in the destination AWS Region. This KMS key is used to encrypt the read replica in that AWS Region.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" + }, + "MasterUsername": { + "description": "The name of the master user for the DB cluster.\n If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string", + "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", + "minLength": 1 + }, "MasterUserPassword": { "description": "The master password for the DB instance.\n If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, "MasterUserSecret": { - "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*", - "$ref": "#/definitions/MasterUserSecret" + "$ref": "#/definitions/MasterUserSecret", + "description": "The secret managed by RDS in AWS Secrets Manager for the master user password.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*" }, - "SourceDBClusterIdentifier": { - "description": "When restoring a DB cluster to a point in time, the identifier of the source DB cluster from which to restore.\n Constraints:\n + Must match the identifier of an existing DBCluster.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" + "MonitoringInterval": { + "description": "The interval, in seconds, between points when Enhanced Monitoring metrics are collected for the DB cluster. To turn off collecting Enhanced Monitoring metrics, specify ``0``.\n If ``MonitoringRoleArn`` is specified, also set ``MonitoringInterval`` to a value other than ``0``.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values: ``0 | 1 | 5 | 10 | 15 | 30 | 60`` \n Default: ``0``", + "type": "integer" }, - "MasterUsername": { - "minLength": 1, - "pattern": "^[a-zA-Z]{1}[a-zA-Z0-9_]*$", - "description": "The name of the master user for the DB cluster.\n If you specify the ``SourceDBClusterIdentifier``, ``SnapshotIdentifier``, or ``GlobalClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, the snapshot, or the primary DB cluster for the global database cluster, respectively.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "MonitoringRoleArn": { + "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``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*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", "type": "string" }, - "ScalingConfiguration": { - "description": "The scaling configuration of an Aurora Serverless v1 DB cluster.\n This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the ``ServerlessV2ScalingConfiguration`` property.\n Valid for: Aurora Serverless v1 DB clusters only", - "$ref": "#/definitions/ScalingConfiguration" + "NetworkType": { + "description": "The network type of the DB cluster.\n Valid values:\n + ``IPV4`` \n + ``DUAL`` \n \n The network type is determined by the ``DBSubnetGroup`` specified for the DB cluster. A ``DBSubnetGroup`` can support only the IPv4 protocol or the IPv4 and IPv6 protocols (``DUAL``).\n For more information, see [Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) in the *Amazon Aurora User Guide.* \n Valid for: Aurora DB clusters only", + "type": "string" }, - "ReadEndpoint": { - "description": "This data type represents the information you need to connect to an Amazon RDS DB instance. This data type is used as a response element in the following actions:\n + ``CreateDBInstance`` \n + ``DescribeDBInstances`` \n + ``DeleteDBInstance`` \n \n For the data structure that represents Amazon Aurora DB cluster endpoints, see ``DBClusterEndpoint``.", - "$ref": "#/definitions/ReadEndpoint" + "PerformanceInsightsEnabled": { + "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n 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*.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "type": "boolean" }, "PerformanceInsightsKmsKeyId": { "description": "The AWS KMS key identifier for encryption of Performance Insights data.\n The AWS KMS key identifier is the key ARN, key ID, alias ARN, or alias name for the KMS key.\n If you don't 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.\n Valid for Cluster Type: Multi-AZ DB clusters only", "type": "string" }, - "PubliclyAccessible": { - "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn\u2019t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", - "type": "boolean" + "PerformanceInsightsRetentionPeriod": { + "description": "The number of days to retain Performance Insights data.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Valid Values:\n + ``7`` \n + *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)\n + ``731`` \n \n Default: ``7`` days\n If you specify a retention period that isn't valid, such as ``94``, Amazon RDS issues an error.", + "type": "integer" }, - "Domain": { - "description": "Indicates the directory ID of the Active Directory to create the DB cluster.\n For Amazon Aurora DB clusters, Amazon RDS can use Kerberos authentication to authenticate users that connect to the DB cluster.\n For more information, see [Kerberos authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/kerberos-authentication.html) in the *Amazon Aurora User Guide*.\n Valid for: Aurora DB clusters only", - "type": "string" + "Port": { + "description": "The port number on which the DB instances in the DB cluster accept connections.\n Default:\n + When ``EngineMode`` is ``provisioned``, ``3306`` (for both Aurora MySQL and Aurora PostgreSQL)\n + When ``EngineMode`` is ``serverless``:\n + ``3306`` when ``Engine`` is ``aurora`` or ``aurora-mysql`` \n + ``5432`` when ``Engine`` is ``aurora-postgresql`` \n \n \n The ``No interruption`` on update behavior only applies to DB clusters. If you are updating a DB instance, see [Port](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-rds-database-instance.html#cfn-rds-dbinstance-port) for the AWS::RDS::DBInstance resource.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "integer" }, - "BacktrackWindow": { - "description": "The target backtrack window, in seconds. To disable backtracking, set this value to ``0``.\n Valid for Cluster Type: Aurora MySQL DB clusters only\n Default: ``0`` \n Constraints:\n + If specified, this value must be set to a number from 0 to 259,200 (72 hours).", - "type": "integer", - "minimum": 0 + "PreferredBackupWindow": { + "description": "The daily time range during which automated backups are created. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide.* \n Constraints:\n + Must be in the format ``hh24:mi-hh24:mi``.\n + Must be in Universal Coordinated Time (UTC).\n + Must not conflict with the preferred maintenance window.\n + Must be at least 30 minutes.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" }, - "DBInstanceParameterGroupName": { - "description": "The name of the DB parameter group to apply to all instances of the DB cluster.\n When you apply a parameter group using the ``DBInstanceParameterGroupName`` parameter, the DB cluster isn't rebooted automatically. Also, parameter changes are applied immediately rather than during the next maintenance window.\n Valid for Cluster Type: Aurora DB clusters only\n Default: The existing name setting\n Constraints:\n + The DB parameter group must be in the same DB parameter group family as this DB cluster.\n + The ``DBInstanceParameterGroupName`` parameter is valid in combination with the ``AllowMajorVersionUpgrade`` parameter for a major version upgrade only.", + "PreferredMaintenanceWindow": { + "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).\n Format: ``ddd:hh24:mi-ddd:hh24:mi`` \n 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 Cluster Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide.* \n Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.\n Constraints: Minimum 30-minute window.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, - "EnableGlobalWriteForwarding": { - "description": "Specifies whether to enable this DB cluster to forward write operations to the primary cluster of a global cluster (Aurora global database). By default, write operations are not allowed on Aurora DB clusters that are secondary clusters in an Aurora global database.\n You can set this value only on Aurora DB clusters that are members of an Aurora global database. With this parameter enabled, a secondary cluster can forward writes to the current primary cluster, and the resulting changes are replicated back to this cluster. For the primary DB cluster of an Aurora global database, this value is used immediately if the primary is demoted by a global cluster API operation, but it does nothing until then.\n Valid for Cluster Type: Aurora DB clusters only", + "PubliclyAccessible": { + "description": "Specifies whether the DB cluster is publicly accessible.\n When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.\n When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Default: The default behavior varies depending on whether ``DBSubnetGroupName`` is specified.\n If ``DBSubnetGroupName`` isn't specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the default VPC in the target Region doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the default VPC in the target Region has an internet gateway attached to it, the DB cluster is public.\n \n If ``DBSubnetGroupName`` is specified, and ``PubliclyAccessible`` isn't specified, the following applies:\n + If the subnets are part of a VPC that doesn?t have an internet gateway attached to it, the DB cluster is private.\n + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.", "type": "boolean" }, - "MonitoringRoleArn": { - "description": "The Amazon Resource Name (ARN) for the IAM role that permits RDS to send Enhanced Monitoring metrics to Amazon CloudWatch Logs. An example is ``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*.\n If ``MonitoringInterval`` is set to a value other than ``0``, supply a ``MonitoringRoleArn`` value.\n Valid for Cluster Type: Multi-AZ DB clusters only", + "ReplicationSourceIdentifier": { + "description": "The Amazon Resource Name (ARN) of the source DB instance or DB cluster if this DB cluster is created as a read replica.\n Valid for: Aurora DB clusters only", "type": "string" }, - "AssociatedRoles": { - "uniqueItems": true, - "description": "Provides a list of the AWS Identity and Access Management (IAM) roles that are associated with the DB cluster. IAM roles that are associated with a DB cluster grant permission for the DB cluster to access other Amazon Web Services on your behalf.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "array", - "items": { - "$ref": "#/definitions/DBClusterRole" - } + "RestoreToTime": { + "description": "The date and time to restore the DB cluster to.\n Valid Values: Value must be a time in Universal Coordinated Time (UTC) format\n Constraints:\n + Must be before the latest restorable time for the DB instance\n + Must be specified if ``UseLatestRestorableTime`` parameter isn't provided\n + Can't be specified if the ``UseLatestRestorableTime`` parameter is enabled\n + Can't be specified if the ``RestoreType`` parameter is ``copy-on-write`` \n \n This property must be used with ``SourceDBClusterIdentifier`` property. The resulting cluster will have the identifier that matches the value of the ``DBclusterIdentifier`` property.\n Example: ``2015-03-07T23:45:00Z`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" }, - "EnableHttpEndpoint": { - "description": "Specifies whether to enable the HTTP endpoint for the DB cluster. By default, the HTTP endpoint isn't enabled.\n When enabled, the HTTP endpoint provides a connectionless web service API (RDS Data API) for running SQL queries on the DB cluster. You can also query your database from inside the RDS console with the RDS query editor.\n RDS Data API is supported with the following DB clusters:\n + Aurora PostgreSQL Serverless v2 and provisioned\n + Aurora PostgreSQL and Aurora MySQL Serverless v1\n \n For more information, see [Using RDS Data API](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html) in the *Amazon Aurora User Guide*.\n Valid for Cluster Type: Aurora DB clusters only", - "type": "boolean" + "RestoreType": { + "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "string" + }, + "ServerlessV2ScalingConfiguration": { + "description": "The scaling configuration of an Aurora Serverless V2 DB cluster. \n This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, Use the ``ScalingConfiguration`` property.\n Valid for: Aurora Serverless v2 DB clusters only", + "$ref": "#/definitions/ServerlessV2ScalingConfiguration" + }, + "ScalingConfiguration": { + "description": "The scaling configuration of an Aurora Serverless v1 DB cluster.\n This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the ``ServerlessV2ScalingConfiguration`` property.\n Valid for: Aurora Serverless v1 DB clusters only", + "$ref": "#/definitions/ScalingConfiguration" }, "SnapshotIdentifier": { "description": "The identifier for the DB snapshot or DB cluster snapshot to restore from.\n You can use either the name or the Amazon Resource Name (ARN) to specify a DB cluster snapshot. However, you can use only the ARN to specify a DB snapshot.\n After you restore a DB cluster with a ``SnapshotIdentifier`` property, you must specify the same ``SnapshotIdentifier`` property for any future updates to the DB cluster. When you specify this property for an update, the DB cluster is not restored from the snapshot again, and the data in the database is not changed. However, if you don't specify the ``SnapshotIdentifier`` property, an empty DB cluster is created, and the original DB cluster is deleted. If you specify a property that is different from the previous snapshot restore property, a new DB cluster is restored from the specified ``SnapshotIdentifier`` property, and the original DB cluster is deleted.\n If you specify the ``SnapshotIdentifier`` property to restore a DB cluster (as opposed to specifying it for DB cluster updates), then don't specify the following properties:\n + ``GlobalClusterIdentifier`` \n + ``MasterUsername`` \n + ``MasterUserPassword`` \n + ``ReplicationSourceIdentifier`` \n + ``RestoreType`` \n + ``SourceDBClusterIdentifier`` \n + ``SourceRegion`` \n + ``StorageEncrypted`` (for an encrypted snapshot)\n + ``UseLatestRestorableTime`` \n \n Constraints:\n + Must match the identifier of an existing Snapshot.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, - "PreferredBackupWindow": { - "description": "The daily time range during which automated backups are created. For more information, see [Backup Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Backups.html#Aurora.Managing.Backups.BackupWindow) in the *Amazon Aurora User Guide.* \n Constraints:\n + Must be in the format ``hh24:mi-hh24:mi``.\n + Must be in Universal Coordinated Time (UTC).\n + Must not conflict with the preferred maintenance window.\n + Must be at least 30 minutes.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "SourceDBClusterIdentifier": { + "description": "When restoring a DB cluster to a point in time, the identifier of the source DB cluster from which to restore.\n Constraints:\n + Must match the identifier of an existing DBCluster.\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "string" }, - "NetworkType": { - "description": "The network type of the DB cluster.\n Valid values:\n + ``IPV4`` \n + ``DUAL`` \n \n The network type is determined by the ``DBSubnetGroup`` specified for the DB cluster. A ``DBSubnetGroup`` can support only the IPv4 protocol or the IPv4 and IPv6 protocols (``DUAL``).\n For more information, see [Working with a DB instance in a VPC](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_VPC.WorkingWithRDSInstanceinaVPC.html) in the *Amazon Aurora User Guide.* \n Valid for: Aurora DB clusters only", + "SourceRegion": { + "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, ``us-east-1``. \n Valid for: Aurora DB clusters only", "type": "string" }, - "VpcSecurityGroupIds": { - "uniqueItems": true, - "description": "A list of EC2 VPC security groups to associate with this DB cluster.\n If you plan to update the resource, don't specify VPC security groups in a shared VPC.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "array", - "items": { - "type": "string" - } - }, - "CopyTagsToSnapshot": { - "description": "A value that indicates whether to copy all tags from the DB cluster to snapshots of the DB cluster. The default is not to copy them.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "StorageEncrypted": { + "description": "Indicates whether the DB cluster is encrypted.\n If you specify the ``KmsKeyId`` property, then you must enable encryption.\n If you specify the ``SourceDBClusterIdentifier`` property, don't specify this property. The value is inherited from the source DB cluster, and if the DB cluster is encrypted, the specified ``KmsKeyId`` property is used.\n If you specify the ``SnapshotIdentifier`` 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.\n If you specify the ``SnapshotIdentifier`` and the specified snapshot isn't encrypted, you can use this property to specify that the restored DB cluster is encrypted. Specify the ``KmsKeyId`` property for the KMS key to use for encryption. If you don't want the restored DB cluster to be encrypted, then don't set this property or set it to ``false``.\n If you specify both the ``StorageEncrypted`` and ``SnapshotIdentifier`` properties without specifying the ``KmsKeyId`` property, then the restored DB cluster inherits the encryption settings from the DB snapshot that provide.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "type": "boolean" }, - "GlobalClusterIdentifier": { - "minLength": 0, - "pattern": "^$|^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$", - "description": "If you are configuring an Aurora global database cluster and want your Aurora DB cluster to be a secondary member in the global database cluster, specify the global cluster ID of the global database cluster. To define the primary database cluster of the global cluster, use the [AWS::RDS::GlobalCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-globalcluster.html) resource. \n If you aren't configuring a global database cluster, don't specify this property. \n To remove the DB cluster from a global database cluster, specify an empty value for the ``GlobalClusterIdentifier`` property.\n For information about Aurora global databases, see [Working with Amazon Aurora Global Databases](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database.html) in the *Amazon Aurora User Guide*.\n Valid for: Aurora DB clusters only", - "type": "string", - "maxLength": 63 - }, - "RestoreType": { - "description": "The type of restore to be performed. You can specify one of the following values:\n + ``full-copy`` - The new DB cluster is restored as a full copy of the source DB cluster.\n + ``copy-on-write`` - The new DB cluster is restored as a clone of the source DB cluster.\n \n If you don't specify a ``RestoreType`` value, then the new DB cluster is restored as a full copy of the source DB cluster.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" + "StorageThroughput": { + "description": "", + "type": "integer" }, - "DomainIAMRoleName": { - "description": "Specifies the name of the IAM role to use when making API calls to the Directory Service.\n Valid for: Aurora DB clusters only", + "StorageType": { + "description": "The storage type to associate with the DB cluster.\n For information on storage types for Aurora DB clusters, see [Storage configurations for Amazon Aurora DB clusters](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.StorageReliability.html#aurora-storage-type). For information on storage types for Multi-AZ DB clusters, see [Settings for creating Multi-AZ DB clusters](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/create-multi-az-db-cluster.html#create-multi-az-db-cluster-settings).\n This setting is required to create a Multi-AZ DB cluster.\n When specified for a Multi-AZ DB cluster, a value for the ``Iops`` parameter is required.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values:\n + Aurora DB clusters - ``aurora | aurora-iopt1`` \n + Multi-AZ DB clusters - ``io1 | io2 | gp3`` \n \n Default:\n + Aurora DB clusters - ``aurora`` \n + Multi-AZ DB clusters - ``io1`` \n \n When you create an Aurora DB cluster with the storage type set to ``aurora-iopt1``, the storage type is returned in the response. The storage type isn't returned when you set it to ``aurora``.", "type": "string" }, - "EngineLifecycleSupport": { - "description": "The life cycle type for this DB cluster.\n By default, this value is set to ``open-source-rds-extended-support``, which enrolls your DB cluster into Amazon RDS Extended Support. At the end of standard support, you can avoid charges for Extended Support by setting the value to ``open-source-rds-extended-support-disabled``. In this case, creating the DB cluster will fail if the DB major version is past its end of standard support date.\n You can use this setting to enroll your DB cluster into Amazon RDS Extended Support. With RDS Extended Support, you can run the selected major engine version on your DB cluster past the end of standard support for that engine version. For more information, see the following sections:\n + Amazon Aurora (PostgreSQL only) - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/extended-support.html) in the *Amazon Aurora User Guide* \n + Amazon RDS - [Using Amazon RDS Extended Support](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support.html) in the *Amazon RDS User Guide* \n \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Valid Values: ``open-source-rds-extended-support | open-source-rds-extended-support-disabled`` \n Default: ``open-source-rds-extended-support``", - "type": "string" + "Tags": { + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "description": "Tags to assign to the DB cluster.\n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters", + "items": { + "$ref": "#/definitions/Tag" + } }, - "DBClusterInstanceClass": { - "description": "The compute and memory capacity of each DB instance in the Multi-AZ DB cluster, for example ``db.m6gd.xlarge``. Not all DB instance classes are available in all AWS-Regions, or for all database engines.\n 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*.\n This setting is required to create a Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only", - "type": "string" + "UseLatestRestorableTime": { + "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time. \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", + "type": "boolean" }, - "AvailabilityZones": { + "VpcSecurityGroupIds": { + "description": "A list of EC2 VPC security groups to associate with this DB cluster.\n If you plan to update the resource, don't specify VPC security groups in a shared VPC.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", "uniqueItems": true, - "description": "A list of Availability Zones (AZs) where instances in the DB cluster can be created. For information on AWS Regions and Availability Zones, see [Choosing the Regions and Availability Zones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.RegionsAndAvailabilityZones.html) in the *Amazon Aurora User Guide*. \n Valid for: Aurora DB clusters only", - "type": "array", "items": { "type": "string" - } - }, - "DBClusterArn": { - "description": "", - "type": "string" + }, + "type": "array" + } + }, + "definitions": { + "Endpoint": { + "type": "object", + "additionalProperties": false, + "properties": { + "Address": { + "description": "Specifies the connection endpoint for the primary instance of the DB cluster.", + "type": "string" + }, + "Port": { + "description": "Specifies the port that the database engine is listening on.", + "type": "string" + } + }, + "description": "The ``Endpoint`` return value specifies the connection endpoint for the primary instance of the DB cluster." }, - "PreferredMaintenanceWindow": { - "description": "The weekly time range during which system maintenance can occur, in Universal Coordinated Time (UTC).\n Format: ``ddd:hh24:mi-ddd:hh24:mi`` \n 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 Cluster Maintenance Window](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#AdjustingTheMaintenanceWindow.Aurora) in the *Amazon Aurora User Guide.* \n Valid Days: Mon, Tue, Wed, Thu, Fri, Sat, Sun.\n Constraints: Minimum 30-minute window.\n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" + "ReadEndpoint": { + "type": "object", + "additionalProperties": false, + "properties": { + "Address": { + "description": "The host address of the reader endpoint.", + "type": "string" + } + }, + "description": "The ``ReadEndpoint`` return value specifies the reader endpoint for the DB cluster.\n The reader endpoint for a DB cluster load-balances connections across the Aurora Replicas that are available in a DB cluster. As clients request new connections to the reader endpoint, Aurora distributes the connection requests among the Aurora Replicas in the DB cluster. This functionality can help balance your read workload across multiple Aurora Replicas in your DB cluster.\n If a failover occurs, and the Aurora Replica that you are connected to is promoted to be the primary instance, your connection is dropped. To continue sending your read workload to other Aurora Replicas in the cluster, you can then reconnect to the reader endpoint.\n For more information about Aurora endpoints, see [Amazon Aurora connection management](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Overview.Endpoints.html) in the *Amazon Aurora User Guide*." }, - "Iops": { - "description": "The amount of Provisioned IOPS (input/output operations per second) to be initially allocated for each DB instance in the Multi-AZ DB cluster.\n For information about valid IOPS values, see [Provisioned IOPS storage](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Storage.html#USER_PIOPS) in the *Amazon RDS User Guide*.\n This setting is required to create a Multi-AZ DB cluster.\n Valid for Cluster Type: Multi-AZ DB clusters only\n Constraints:\n + Must be a multiple between .5 and 50 of the storage amount for the DB cluster.", - "type": "integer" + "DBClusterRole": { + "description": "Describes an AWS Identity and Access Management (IAM) role that is associated with a DB cluster.", + "type": "object", + "additionalProperties": false, + "properties": { + "FeatureName": { + "description": "The name of the feature associated with the AWS Identity and Access Management (IAM) role. IAM roles that are associated with a DB cluster grant permission for the DB cluster 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*.", + "type": "string" + }, + "RoleArn": { + "description": "The Amazon Resource Name (ARN) of the IAM role that is associated with the DB cluster.", + "type": "string" + } + }, + "required": [ + "RoleArn" + ] }, - "SourceRegion": { - "description": "The AWS Region which contains the source DB cluster when replicating a DB cluster. For example, ``us-east-1``. \n Valid for: Aurora DB clusters only", - "type": "string" + "ServerlessV2ScalingConfiguration": { + "description": "The ``ServerlessV2ScalingConfiguration`` property type specifies the scaling configuration of an Aurora Serverless V2 DB cluster. For more information, see [Using Amazon Aurora Serverless v2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html) in the *Amazon Aurora User Guide*.\n If you have an Aurora cluster, you must set this attribute before you add a DB instance that uses the ``db.serverless`` DB instance class. For more information, see [Clusters that use Aurora Serverless v2 must have a capacity range specified](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.requirements.html#aurora-serverless-v2.requirements.capacity-range) in the *Amazon Aurora User Guide*.\n This property is only supported for Aurora Serverless v2. For Aurora Serverless v1, use the ``ScalingConfiguration`` property.\n Valid for: Aurora Serverless v2 DB clusters", + "type": "object", + "additionalProperties": false, + "properties": { + "MinCapacity": { + "description": "The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5.", + "type": "number" + }, + "MaxCapacity": { + "description": "The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128.\n The maximum capacity must be higher than 0.5 ACUs. For more information, see [Choosing the maximum Aurora Serverless v2 capacity setting for a cluster](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations) in the *Amazon Aurora User Guide*.\n Aurora automatically sets certain parameters for Aurora Serverless V2 DB instances to values that depend on the maximum ACU value in the capacity range. When you update the maximum capacity value, the ``ParameterApplyStatus`` value for the DB instance changes to ``pending-reboot``. You can update the parameter values by rebooting the DB instance after changing the capacity range.", + "type": "number" + } + } }, - "UseLatestRestorableTime": { - "description": "A value that indicates whether to restore the DB cluster to the latest restorable backup time. By default, the DB cluster is not restored to the latest restorable backup time. \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "boolean" + "ScalingConfiguration": { + "description": "The ``ScalingConfiguration`` property type specifies the scaling configuration of an Aurora Serverless v1 DB cluster. \n For more information, see [Using Amazon Aurora Serverless](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html) in the *Amazon Aurora User Guide*.\n This property is only supported for Aurora Serverless v1. For Aurora Serverless v2, Use the ``ServerlessV2ScalingConfiguration`` property.\n Valid for: Aurora Serverless v1 DB clusters only", + "type": "object", + "additionalProperties": false, + "properties": { + "AutoPause": { + "description": "Indicates whether to allow or disallow automatic pause for an Aurora DB cluster in ``serverless`` DB engine mode. A DB cluster can be paused only when it's idle (it has no connections).\n If a DB cluster is paused for more than seven days, the DB cluster might be backed up with a snapshot. In this case, the DB cluster is restored when there is a request to connect to it.", + "type": "boolean" + }, + "MaxCapacity": { + "description": "The maximum capacity for an Aurora DB cluster in ``serverless`` DB engine mode.\n For Aurora MySQL, valid capacity values are ``1``, ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``128``, and ``256``.\n For Aurora PostgreSQL, valid capacity values are ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``192``, and ``384``.\n The maximum capacity must be greater than or equal to the minimum capacity.", + "type": "integer" + }, + "MinCapacity": { + "description": "The minimum capacity for an Aurora DB cluster in ``serverless`` DB engine mode.\n For Aurora MySQL, valid capacity values are ``1``, ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``128``, and ``256``.\n For Aurora PostgreSQL, valid capacity values are ``2``, ``4``, ``8``, ``16``, ``32``, ``64``, ``192``, and ``384``.\n The minimum capacity must be less than or equal to the maximum capacity.", + "type": "integer" + }, + "SecondsBeforeTimeout": { + "description": "The amount of time, in seconds, that Aurora Serverless v1 tries to find a scaling point to perform seamless scaling before enforcing the timeout action. The default is 300.\n Specify a value between 60 and 600 seconds.", + "type": "integer" + }, + "SecondsUntilAutoPause": { + "description": "The time, in seconds, before an Aurora DB cluster in ``serverless`` mode is paused.\n Specify a value between 300 and 86,400 seconds.", + "type": "integer" + }, + "TimeoutAction": { + "description": "The action to take when the timeout is reached, either ``ForceApplyCapacityChange`` or ``RollbackCapacityChange``.\n ``ForceApplyCapacityChange`` sets the capacity to the specified value as soon as possible.\n ``RollbackCapacityChange``, the default, ignores the capacity change if a scaling point isn't found in the timeout period.\n If you specify ``ForceApplyCapacityChange``, connections that prevent Aurora Serverless v1 from finding a scaling point might be dropped.\n For more information, see [Autoscaling for Aurora Serverless v1](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.how-it-works.html#aurora-serverless.how-it-works.auto-scaling) in the *Amazon Aurora User Guide*.", + "type": "string" + } + } }, - "ManageMasterUserPassword": { - "description": "Specifies whether to manage the master user password with AWS Secrets Manager.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.* \n Valid for Cluster Type: Aurora DB clusters and Multi-AZ DB clusters\n Constraints:\n + Can't manage the master user password with AWS Secrets Manager if ``MasterUserPassword`` is specified.", - "type": "boolean" + "Tag": { + "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n For more information, see [Tagging Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html) in the *Amazon RDS User Guide* or [Tagging Amazon Aurora and Amazon RDS resources](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html) in the *Amazon Aurora User Guide*.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "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}_.:/=+\\\\-@]*)$\").", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "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}_.:/=+\\\\-@]*)$\").", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key" + ] }, - "EnableIAMDatabaseAuthentication": { - "description": "A value that indicates whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. By default, mapping is disabled.\n For more information, see [IAM Database Authentication](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/UsingWithRDS.IAMDBAuth.html) in the *Amazon Aurora User Guide.* \n Valid for: Aurora DB clusters only", - "type": "boolean" + "MasterUserSecret": { + "type": "object", + "additionalProperties": false, + "properties": { + "SecretArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) of the secret. This parameter is a return value that you can retrieve using the ``Fn::GetAtt`` intrinsic function. For more information, see [Return values](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-rds-dbcluster.html#aws-resource-rds-dbcluster-return-values)." + }, + "KmsKeyId": { + "type": "string", + "description": "The AWS KMS key identifier that is used to encrypt the secret." + } + }, + "description": "The ``MasterUserSecret`` return value specifies the secret managed by RDS in AWS Secrets Manager for the master user password.\n 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* and [Password management with Secrets Manager](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/rds-secrets-manager.html) in the *Amazon Aurora User Guide.*" + } + }, + "additionalProperties": false, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBClusterParameterGroupName": "$lowercase(DBClusterParameterGroupName)", + "/properties/DBSubnetGroupName": "$lowercase(DBSubnetGroupName)", + "/properties/EnableHttpEndpoint": "$lowercase($string(EngineMode)) = 'serverless' ? EnableHttpEndpoint : ($lowercase($string(Engine)) in ['aurora-postgresql', 'aurora-mysql'] ? EnableHttpEndpoint : false )", + "/properties/Engine": "$lowercase(Engine)", + "/properties/EngineVersion": "$join([$string(EngineVersion), \".*\"])", + "/properties/KmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", KmsKeyId])", + "/properties/MasterUserSecret/KmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", MasterUserSecret.KmsKeyId])", + "/properties/NetworkType": "$lowercase(NetworkType)", + "/properties/PerformanceInsightsKmsKeyId": "$join([\"arn:.+?:kms:.+?:.+?:key\\/\", PerformanceInsightsKmsKeyId])", + "/properties/PreferredMaintenanceWindow": "$lowercase(PreferredMaintenanceWindow)", + "/properties/SnapshotIdentifier": "$lowercase(SnapshotIdentifier)", + "/properties/SourceDBClusterIdentifier": "$lowercase(SourceDBClusterIdentifier)", + "/properties/StorageType": "$lowercase(StorageType)" + }, + "readOnlyProperties": [ + "/properties/DBClusterArn", + "/properties/DBClusterResourceId", + "/properties/Endpoint", + "/properties/Endpoint/Address", + "/properties/Endpoint/Port", + "/properties/ReadEndpoint/Address", + "/properties/MasterUserSecret/SecretArn", + "/properties/StorageThroughput" + ], + "createOnlyProperties": [ + "/properties/AvailabilityZones", + "/properties/ClusterScalabilityType", + "/properties/DBClusterIdentifier", + "/properties/DBSubnetGroupName", + "/properties/DBSystemId", + "/properties/DatabaseName", + "/properties/EngineMode", + "/properties/KmsKeyId", + "/properties/PubliclyAccessible", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/StorageEncrypted", + "/properties/UseLatestRestorableTime" + ], + "conditionalCreateOnlyProperties": [ + "/properties/Engine", + "/properties/GlobalClusterIdentifier", + "/properties/MasterUsername" + ], + "primaryIdentifier": [ + "/properties/DBClusterIdentifier" + ], + "writeOnlyProperties": [ + "/properties/ClusterScalabilityType", + "/properties/DBInstanceParameterGroupName", + "/properties/MasterUserPassword", + "/properties/RestoreToTime", + "/properties/RestoreType", + "/properties/SnapshotIdentifier", + "/properties/SourceDBClusterIdentifier", + "/properties/SourceRegion", + "/properties/UseLatestRestorableTime" + ], + "handlers": { + "create": { + "permissions": [ + "iam:CreateServiceLinkedRole", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:CreateDBCluster", + "rds:CreateDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeDBClusterSnapshots", + "rds:DescribeDBSnapshots", + "rds:DescribeEvents", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:RestoreDBClusterFromSnapshot", + "rds:RestoreDBClusterToPointInTime", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 }, - "DBClusterParameterGroupName": { - "description": "The name of the DB cluster parameter group to associate with this DB cluster.\n If you apply a parameter group to an existing DB cluster, then its DB instances might need to reboot. This can result in an outage while the DB instances are rebooting.\n If you apply a change to parameter group associated with a stopped DB cluster, then the update stack waits until the DB cluster is started.\n To list all of the available DB cluster parameter group names, use the following command:\n ``aws rds describe-db-cluster-parameter-groups --query \"DBClusterParameterGroups[].DBClusterParameterGroupName\" --output text`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "string" + "read": { + "permissions": [ + "rds:DescribeDBClusters" + ] }, - "PerformanceInsightsEnabled": { - "description": "Specifies whether to turn on Performance Insights for the DB cluster.\n 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*.\n Valid for Cluster Type: Multi-AZ DB clusters only", - "type": "boolean" + "update": { + "permissions": [ + "ec2:DescribeSecurityGroups", + "iam:PassRole", + "rds:AddRoleToDBCluster", + "rds:AddTagsToResource", + "rds:DescribeDBClusters", + "rds:DescribeDBSubnetGroups", + "rds:DescribeEvents", + "rds:DescribeGlobalClusters", + "rds:DisableHttpEndpoint", + "rds:EnableHttpEndpoint", + "rds:ModifyDBCluster", + "rds:ModifyDBInstance", + "rds:RemoveFromGlobalCluster", + "rds:RemoveRoleFromDBCluster", + "rds:RemoveTagsFromResource", + "secretsmanager:CreateSecret", + "secretsmanager:TagResource" + ], + "timeoutInMinutes": 2160 }, - "BackupRetentionPeriod": { - "default": 1, - "description": "The number of days for which automated backups are retained.\n Default: 1\n Constraints:\n + Must be a value from 1 to 35\n \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "integer", - "minimum": 1 + "delete": { + "permissions": [ + "rds:AddTagsToResource", + "rds:CreateDBClusterSnapshot", + "rds:DeleteDBCluster", + "rds:DeleteDBInstance", + "rds:DescribeDBClusters", + "rds:DescribeGlobalClusters", + "rds:RemoveFromGlobalCluster" + ] }, - "EnableCloudwatchLogsExports": { - "uniqueItems": true, - "description": "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/AuroraUserGuide/USER_LogAccess.html#USER_LogAccess.Procedural.UploadtoCloudWatch) in the *Amazon Aurora User Guide*.\n *Aurora MySQL* \n Valid values: ``audit``, ``error``, ``general``, ``slowquery`` \n *Aurora PostgreSQL* \n Valid values: ``postgresql`` \n Valid for: Aurora DB clusters and Multi-AZ DB clusters", - "type": "array", - "items": { - "type": "string" - } + "list": { + "permissions": [ + "rds:DescribeDBClusters" + ] } + }, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ] } } diff --git a/internal/service/cloudformation/schemas/AWS_RDS_DBShardGroup.json b/internal/service/cloudformation/schemas/AWS_RDS_DBShardGroup.json new file mode 100644 index 0000000000..85c2a8875c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_RDS_DBShardGroup.json @@ -0,0 +1,155 @@ +{ + "typeName": "AWS::RDS::DBShardGroup", + "description": "The AWS::RDS::DBShardGroup resource creates an Amazon Aurora Limitless DB Shard Group.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-rds", + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "rds:AddTagsToResource", + "rds:RemoveTagsFromResource" + ], + "taggable": true, + "tagOnCreate": false, + "tagUpdatable": true, + "tagProperty": "/properties/Tags" + }, + "properties": { + "DBShardGroupResourceId": { + "description": "The Amazon Web Services Region-unique, immutable identifier for the DB shard group.", + "type": "string" + }, + "DBShardGroupIdentifier": { + "description": "The name of the DB shard group.", + "type": "string", + "minLength": 1, + "maxLength": 63 + }, + "DBClusterIdentifier": { + "description": "The name of the primary DB cluster for the DB shard group.", + "type": "string", + "minLength": 1, + "maxLength": 63 + }, + "ComputeRedundancy": { + "description": "Specifies whether to create standby instances for the DB shard group.", + "minimum": 0, + "type": "integer" + }, + "MaxACU": { + "description": "The maximum capacity of the DB shard group in Aurora capacity units (ACUs).", + "type": "number" + }, + "MinACU": { + "description": "The minimum capacity of the DB shard group in Aurora capacity units (ACUs).", + "type": "number" + }, + "PubliclyAccessible": { + "description": "Indicates whether the DB shard group is publicly accessible.", + "type": "boolean" + }, + "Endpoint": { + "description": "The connection endpoint for the DB shard group.", + "type": "string" + }, + "Tags": { + "type": "array", + "maxItems": 50, + "uniqueItems": true, + "insertionOrder": false, + "description": "An array of key-value pairs to apply to this resource.", + "items": { + "$ref": "#/definitions/Tag" + } + } + }, + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "additionalProperties": false, + "properties": { + "Key": { + "type": "string", + "description": "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 -. ", + "minLength": 1, + "maxLength": 128 + }, + "Value": { + "type": "string", + "description": "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 -. ", + "minLength": 0, + "maxLength": 256 + } + }, + "required": [ + "Key" + ] + } + }, + "additionalProperties": false, + "propertyTransform": { + "/properties/DBClusterIdentifier": "$lowercase(DBClusterIdentifier)", + "/properties/DBShardGroupIdentifier": "$lowercase(DBShardGroupIdentifier)" + }, + "required": [ + "DBClusterIdentifier", + "MaxACU" + ], + "createOnlyProperties": [ + "/properties/DBClusterIdentifier", + "/properties/DBShardGroupIdentifier", + "/properties/PubliclyAccessible" + ], + "readOnlyProperties": [ + "/properties/DBShardGroupResourceId", + "/properties/Endpoint" + ], + "writeOnlyProperties": [ + "/properties/MinACU" + ], + "primaryIdentifier": [ + "/properties/DBShardGroupIdentifier" + ], + "handlers": { + "create": { + "permissions": [ + "rds:AddTagsToResource", + "rds:CreateDBShardGroup", + "rds:DescribeDBClusters", + "rds:DescribeDBShardGroups", + "rds:ListTagsForResource" + ], + "timeoutInMinutes": 2160 + }, + "read": { + "permissions": [ + "rds:DescribeDBShardGroups", + "rds:ListTagsForResource" + ] + }, + "update": { + "permissions": [ + "rds:AddTagsToResource", + "rds:DescribeDBShardGroups", + "rds:DescribeDBClusters", + "rds:RemoveTagsFromResource", + "rds:ModifyDBShardGroup", + "rds:ListTagsForResource" + ] + }, + "delete": { + "permissions": [ + "rds:DeleteDBShardGroup", + "rds:DescribeDBClusters", + "rds:DescribeDbShardGroups" + ], + "timeoutInMinutes": 2160 + }, + "list": { + "permissions": [ + "rds:DescribeDBShardGroups", + "rds:ListTagsForResource" + ] + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_RDS_GlobalCluster.json b/internal/service/cloudformation/schemas/AWS_RDS_GlobalCluster.json index f511e7bcc2..a7612768c6 100644 --- a/internal/service/cloudformation/schemas/AWS_RDS_GlobalCluster.json +++ b/internal/service/cloudformation/schemas/AWS_RDS_GlobalCluster.json @@ -141,5 +141,8 @@ "rds:DescribeGlobalClusters" ] } + }, + "tagging": { + "taggable": true } } diff --git a/internal/service/cloudformation/schemas/AWS_Route53Resolver_OutpostResolver.json b/internal/service/cloudformation/schemas/AWS_Route53Resolver_OutpostResolver.json index 56dbf18b5c..01bfe1c3ed 100644 --- a/internal/service/cloudformation/schemas/AWS_Route53Resolver_OutpostResolver.json +++ b/internal/service/cloudformation/schemas/AWS_Route53Resolver_OutpostResolver.json @@ -115,7 +115,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "route53resolver:TagResource", + "route53resolver:UntagResource" + ] }, "required": [ "OutpostArn", @@ -143,7 +147,8 @@ "route53resolver:CreateOutpostResolver", "route53resolver:GetOutpostResolver", "route53resolver:ListTagsForResource", - "outposts:GetOutpost" + "outposts:GetOutpost", + "route53resolver:TagResource" ] }, "read": { diff --git a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json index 8988b84f90..6c6ffb6a51 100644 --- a/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json +++ b/internal/service/cloudformation/schemas/AWS_SES_ConfigurationSet.json @@ -27,6 +27,12 @@ "SendingPoolName": { "type": "string", "description": "The name of the dedicated IP pool to associate with the configuration set." + }, + "MaxDeliverySeconds": { + "type": "number", + "description": "Specifies the maximum time until which SES will retry sending emails", + "minimum": 300, + "maximum": 50400 } } }, diff --git a/internal/service/cloudformation/schemas/AWS_Transfer_User.json b/internal/service/cloudformation/schemas/AWS_Transfer_User.json new file mode 100644 index 0000000000..138f34e0cd --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Transfer_User.json @@ -0,0 +1,250 @@ +{ + "typeName": "AWS::Transfer::User", + "description": "Definition of AWS::Transfer::User Resource Type", + "definitions": { + "HomeDirectoryMapEntry": { + "type": "object", + "properties": { + "Entry": { + "type": "string", + "maxLength": 1024, + "minLength": 0, + "pattern": "^/.*$" + }, + "Target": { + "type": "string", + "maxLength": 1024, + "minLength": 0, + "pattern": "^/.*$" + }, + "Type": { + "$ref": "#/definitions/MapType" + } + }, + "required": [ + "Entry", + "Target" + ], + "additionalProperties": false + }, + "HomeDirectoryType": { + "type": "string", + "enum": [ + "PATH", + "LOGICAL" + ] + }, + "MapType": { + "type": "string", + "enum": [ + "FILE", + "DIRECTORY" + ] + }, + "PosixProfile": { + "type": "object", + "properties": { + "Uid": { + "type": "number", + "maximum": 4294967295, + "minimum": 0 + }, + "Gid": { + "type": "number", + "maximum": 4294967295, + "minimum": 0 + }, + "SecondaryGids": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "number", + "maximum": 4294967295, + "minimum": 0 + }, + "maxItems": 16, + "minItems": 0 + } + }, + "required": [ + "Gid", + "Uid" + ], + "additionalProperties": false + }, + "Tag": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 0 + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 0 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "Arn": { + "type": "string", + "maxLength": 1600, + "minLength": 20, + "pattern": "^arn:\\S+$" + }, + "HomeDirectory": { + "type": "string", + "maxLength": 1024, + "minLength": 0, + "pattern": "^(|/.*)$" + }, + "HomeDirectoryMappings": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/HomeDirectoryMapEntry" + }, + "maxItems": 50000, + "minItems": 1 + }, + "HomeDirectoryType": { + "$ref": "#/definitions/HomeDirectoryType" + }, + "Policy": { + "type": "string", + "maxLength": 2048, + "minLength": 0 + }, + "PosixProfile": { + "$ref": "#/definitions/PosixProfile" + }, + "Role": { + "type": "string", + "maxLength": 2048, + "minLength": 20, + "pattern": "^arn:.*role/\\S+$" + }, + "ServerId": { + "type": "string", + "maxLength": 19, + "minLength": 19, + "pattern": "^s-([0-9a-f]{17})$" + }, + "SshPublicKeys": { + "type": "array", + "insertionOrder": false, + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 0, + "pattern": "^\\s*(ssh|ecdsa)-[a-z0-9-]+[ \\t]+(([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{1,3})?(={0,3})?)(\\s*|[ \\t]+[\\S \\t]*\\s*)$" + }, + "description": "This represents the SSH User Public Keys for CloudFormation resource" + }, + "Tags": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + }, + "maxItems": 50, + "minItems": 1 + }, + "UserName": { + "type": "string", + "maxLength": 100, + "minLength": 3, + "pattern": "^[\\w][\\w@.-]{2,99}$" + } + }, + "required": [ + "Role", + "ServerId", + "UserName" + ], + "readOnlyProperties": [ + "/properties/Arn" + ], + "createOnlyProperties": [ + "/properties/ServerId", + "/properties/UserName" + ], + "primaryIdentifier": [ + "/properties/Arn" + ], + "additionalIdentifiers": [ + [ + "/properties/ServerId", + "/properties/UserName" + ] + ], + "handlers": { + "create": { + "permissions": [ + "iam:PassRole", + "transfer:CreateUser", + "transfer:DescribeUser", + "transfer:ImportSshPublicKey", + "transfer:TagResource" + ] + }, + "read": { + "permissions": [ + "transfer:DescribeUser" + ] + }, + "update": { + "permissions": [ + "iam:PassRole", + "transfer:DeleteSshPublicKey", + "transfer:DescribeUser", + "transfer:ImportSshPublicKey", + "transfer:TagResource", + "transfer:UnTagResource", + "transfer:UpdateUser" + ] + }, + "delete": { + "permissions": [ + "transfer:DeleteUser" + ] + }, + "list": { + "permissions": [ + "transfer:ListUsers" + ], + "handlerSchema": { + "properties": { + "ServerId": { + "$ref": "resource-schema.json#/properties/ServerId" + } + }, + "required": [ + "ServerId" + ] + } + } + }, + "tagging": { + "cloudFormationSystemTags": true, + "permissions": [ + "transfer:TagResource", + "transfer:UnTagResource", + "transfer:ListTagsForResource" + ], + "tagOnCreate": true, + "tagProperty": "/properties/Tags", + "tagUpdatable": true, + "taggable": true + }, + "additionalProperties": false, + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-transfer" +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json new file mode 100644 index 0000000000..e96d5c5abf --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgent.json @@ -0,0 +1,374 @@ +{ + "typeName": "AWS::Wisdom::AIAgent", + "description": "Definition of AWS::Wisdom::AIAgent Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "AIAgentAssociationConfigurationType": { + "type": "string", + "enum": [ + "KNOWLEDGE_BASE" + ] + }, + "AIAgentConfiguration": { + "oneOf": [ + { + "type": "object", + "title": "ManualSearchAIAgentConfiguration", + "properties": { + "ManualSearchAIAgentConfiguration": { + "$ref": "#/definitions/ManualSearchAIAgentConfiguration" + } + }, + "required": [ + "ManualSearchAIAgentConfiguration" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "AnswerRecommendationAIAgentConfiguration", + "properties": { + "AnswerRecommendationAIAgentConfiguration": { + "$ref": "#/definitions/AnswerRecommendationAIAgentConfiguration" + } + }, + "required": [ + "AnswerRecommendationAIAgentConfiguration" + ], + "additionalProperties": false + } + ] + }, + "AIAgentType": { + "type": "string", + "enum": [ + "MANUAL_SEARCH", + "ANSWER_RECOMMENDATION" + ] + }, + "AnswerRecommendationAIAgentConfiguration": { + "type": "object", + "properties": { + "IntentLabelingGenerationAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "QueryReformulationAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "AnswerGenerationAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "AssociationConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociationConfiguration" + } + } + }, + "additionalProperties": false + }, + "AssociationConfiguration": { + "type": "object", + "properties": { + "AssociationId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AssociationType": { + "$ref": "#/definitions/AIAgentAssociationConfigurationType" + }, + "AssociationConfigurationData": { + "$ref": "#/definitions/AssociationConfigurationData" + } + }, + "additionalProperties": false + }, + "AssociationConfigurationData": { + "oneOf": [ + { + "type": "object", + "title": "KnowledgeBaseAssociationConfigurationData", + "properties": { + "KnowledgeBaseAssociationConfigurationData": { + "$ref": "#/definitions/KnowledgeBaseAssociationConfigurationData" + } + }, + "required": [ + "KnowledgeBaseAssociationConfigurationData" + ], + "additionalProperties": false + } + ] + }, + "KnowledgeBaseAssociationConfigurationData": { + "type": "object", + "properties": { + "ContentTagFilter": { + "$ref": "#/definitions/TagFilter" + }, + "MaxResults": { + "type": "number", + "maximum": 100, + "minimum": 1 + }, + "OverrideKnowledgeBaseSearchType": { + "$ref": "#/definitions/KnowledgeBaseSearchType" + } + }, + "additionalProperties": false + }, + "KnowledgeBaseSearchType": { + "type": "string", + "enum": [ + "HYBRID", + "SEMANTIC" + ] + }, + "ManualSearchAIAgentConfiguration": { + "type": "object", + "properties": { + "AnswerGenerationAIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "AssociationConfigurations": { + "type": "array", + "items": { + "$ref": "#/definitions/AssociationConfiguration" + } + } + }, + "additionalProperties": false + }, + "OrCondition": { + "oneOf": [ + { + "type": "object", + "title": "AndConditions", + "properties": { + "AndConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/TagCondition" + } + } + }, + "required": [ + "AndConditions" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "TagCondition", + "properties": { + "TagCondition": { + "$ref": "#/definitions/TagCondition" + } + }, + "required": [ + "TagCondition" + ], + "additionalProperties": false + } + ] + }, + "TagCondition": { + "type": "object", + "properties": { + "Key": { + "type": "string", + "maxLength": 128, + "minLength": 1, + "pattern": "" + }, + "Value": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + }, + "required": [ + "Key" + ], + "additionalProperties": false + }, + "TagFilter": { + "oneOf": [ + { + "type": "object", + "title": "TagCondition", + "properties": { + "TagCondition": { + "$ref": "#/definitions/TagCondition" + } + }, + "required": [ + "TagCondition" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "AndConditions", + "properties": { + "AndConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/TagCondition" + } + } + }, + "required": [ + "AndConditions" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "OrConditions", + "properties": { + "OrConditions": { + "type": "array", + "items": { + "$ref": "#/definitions/OrCondition" + } + } + }, + "required": [ + "OrConditions" + ], + "additionalProperties": false + } + ] + }, + "Tags": { + "type": "object", + "patternProperties": { + "": { + "type": "string", + "maxLength": 256, + "minLength": 1 + } + }, + "additionalProperties": false + } + }, + "properties": { + "AIAgentId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}(:[A-Z0-9_$]+){0,1}$" + }, + "AIAgentArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "AssistantId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$|^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "AssistantArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}){0,2}$" + }, + "Configuration": { + "$ref": "#/definitions/AIAgentConfiguration" + }, + "Description": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "pattern": "^[a-zA-Z0-9\\s_.,-]+" + }, + "Name": { + "type": "string", + "maxLength": 255, + "minLength": 1, + "pattern": "^[a-zA-Z0-9\\s_.,-]+" + }, + "Tags": { + "$ref": "#/definitions/Tags" + }, + "Type": { + "$ref": "#/definitions/AIAgentType" + } + }, + "required": [ + "AssistantId", + "Configuration", + "Type" + ], + "readOnlyProperties": [ + "/properties/AIAgentArn", + "/properties/AIAgentId", + "/properties/AssistantArn" + ], + "createOnlyProperties": [ + "/properties/AssistantId", + "/properties/Name", + "/properties/Tags", + "/properties/Type" + ], + "primaryIdentifier": [ + "/properties/AIAgentId", + "/properties/AssistantId" + ], + "additionalIdentifiers": [ + [ + "/properties/AIAgentArn", + "/properties/AssistantArn" + ] + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": false, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "wisdom:TagResource" + ] + }, + "handlers": { + "create": { + "permissions": [ + "wisdom:CreateAIAgent", + "wisdom:TagResource" + ] + }, + "read": { + "permissions": [ + "wisdom:GetAIAgent" + ] + }, + "update": { + "permissions": [ + "wisdom:UpdateAIAgent" + ] + }, + "delete": { + "permissions": [ + "wisdom:DeleteAIAgent" + ] + }, + "list": { + "permissions": [ + "wisdom:ListAIAgents" + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + } + }, + "required": [ + "AssistantId" + ] + } + } + }, + "additionalProperties": false +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json new file mode 100644 index 0000000000..51019a2354 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIAgentVersion.json @@ -0,0 +1,110 @@ +{ + "typeName": "AWS::Wisdom::AIAgentVersion", + "description": "Definition of AWS::Wisdom::AIAgentVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": {}, + "properties": { + "AIAgentArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AssistantArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AIAgentId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AssistantId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AIAgentVersionId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "VersionNumber": { + "type": "number" + }, + "ModifiedTimeSeconds": { + "type": "number" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "AssistantId", + "AIAgentId" + ], + "createOnlyProperties": [ + "/properties/AssistantId", + "/properties/AIAgentId", + "/properties/ModifiedTimeSeconds" + ], + "readOnlyProperties": [ + "/properties/AIAgentVersionId", + "/properties/AIAgentArn", + "/properties/AssistantArn", + "/properties/VersionNumber" + ], + "primaryIdentifier": [ + "/properties/AssistantId", + "/properties/AIAgentId", + "/properties/VersionNumber" + ], + "additionalIdentifiers": [ + [ + "/properties/AIAgentArn", + "/properties/AssistantArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "wisdom:CreateAIAgentVersion" + ] + }, + "read": { + "permissions": [ + "wisdom:GetAIAgent", + "wisdom:GetAIAgentVersion" + ] + }, + "update": { + "permissions": [ + "wisdom:GetAIAgent", + "wisdom:GetAIAgentVersion" + ] + }, + "delete": { + "permissions": [ + "wisdom:DeleteAIAgentVersion" + ] + }, + "list": { + "permissions": [ + "wisdom:ListAIAgentVersions" + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + }, + "AIAgentId": { + "$ref": "resource-schema.json#/properties/AIAgentId" + } + }, + "required": [ + "AssistantId", + "AIAgentId" + ] + } + } + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json new file mode 100644 index 0000000000..e75b629963 --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Wisdom_AIPromptVersion.json @@ -0,0 +1,110 @@ +{ + "typeName": "AWS::Wisdom::AIPromptVersion", + "description": "Definition of AWS::Wisdom::AIPromptVersion Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": {}, + "properties": { + "AIPromptArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AssistantArn": { + "type": "string", + "pattern": "^arn:[a-z-]*?:wisdom:[a-z0-9-]*?:[0-9]{12}:[a-z-]*?/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(?:/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})?$" + }, + "AIPromptId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AssistantId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$" + }, + "AIPromptVersionId": { + "type": "string", + "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}(:[A-Z0-9_$]+){0,1}$" + }, + "VersionNumber": { + "type": "number" + }, + "ModifiedTimeSeconds": { + "type": "number" + } + }, + "additionalProperties": false, + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "required": [ + "AssistantId", + "AIPromptId" + ], + "createOnlyProperties": [ + "/properties/AssistantId", + "/properties/AIPromptId", + "/properties/ModifiedTimeSeconds" + ], + "readOnlyProperties": [ + "/properties/AIPromptArn", + "/properties/AIPromptVersionId", + "/properties/AssistantArn", + "/properties/VersionNumber" + ], + "primaryIdentifier": [ + "/properties/AssistantId", + "/properties/AIPromptId", + "/properties/VersionNumber" + ], + "additionalIdentifiers": [ + [ + "/properties/AIPromptArn", + "/properties/AssistantArn" + ] + ], + "handlers": { + "create": { + "permissions": [ + "wisdom:CreateAIPromptVersion" + ] + }, + "read": { + "permissions": [ + "wisdom:GetAIPrompt", + "wisdom:GetAIPromptVersion" + ] + }, + "update": { + "permissions": [ + "wisdom:GetAIPrompt", + "wisdom:GetAIPromptVersion" + ] + }, + "delete": { + "permissions": [ + "wisdom:DeleteAIPromptVersion" + ] + }, + "list": { + "permissions": [ + "wisdom:ListAIPromptVersions" + ], + "handlerSchema": { + "properties": { + "AssistantId": { + "$ref": "resource-schema.json#/properties/AssistantId" + }, + "AIPromptId": { + "$ref": "resource-schema.json#/properties/AIPromptId" + } + }, + "required": [ + "AssistantId", + "AIPromptId" + ] + } + } + } +}