From 32527e5736803a32a75458bac71e887f411d22c2 Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 14:31:04 -0700 Subject: [PATCH 01/20] remove suppression --- internal/provider/all_schemas.hcl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 1a384abb2..008c56c64 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -2002,10 +2002,11 @@ resource_schema "aws_events_archive" { resource_schema "aws_events_connection" { cloudformation_type_name = "AWS::Events::Connection" - # Suppression Reason: error creating write-only attribute path (/definitions/BasicAuthParameters/Password): expected "properties" for the second property path segment, got: "definitions" + # Suppression Update: the latest schema refer `Password` with type string. + # Historical suppression Reason: error creating write-only attribute path (/definitions/BasicAuthParameters/Password): expected "properties" for the second property path segment, got: "definitions" # https://github.com/hashicorp/terraform-provider-awscc/issues/1521 - suppress_resource_generation = true - suppress_singular_data_source_generation = true + suppress_resource_generation = false + suppress_singular_data_source_generation = false } resource_schema "aws_events_endpoint" { From ad42eb3652fdac768eb04f9fd7ba763df2dbf881 Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 14:31:20 -0700 Subject: [PATCH 02/20] make schemas --- internal/provider/import_examples_gen.json | 5 +++++ internal/provider/resources.go | 1 + internal/provider/singular_data_sources.go | 1 + 3 files changed, 7 insertions(+) diff --git a/internal/provider/import_examples_gen.json b/internal/provider/import_examples_gen.json index 18f2582e3..ad8955e4c 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -2089,6 +2089,11 @@ "identifier": ["ArchiveName"], "path": "./examples/resources/awscc_events_archive/import.sh" }, + { + "resource": "awscc_events_connection", + "identifier": ["Name"], + "path": "./examples/resources/awscc_events_connection/import.sh" + }, { "resource": "awscc_events_endpoint", "identifier": ["Name"], diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 0fdb24d00..34cd67525 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -420,6 +420,7 @@ //go:generate go run generators/resource/main.go -resource awscc_eventschemas_schema -cfschema ../service/cloudformation/schemas/AWS_EventSchemas_Schema.json -package eventschemas -- ../aws/eventschemas/schema_resource_gen.go ../aws/eventschemas/schema_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_api_destination -cfschema ../service/cloudformation/schemas/AWS_Events_ApiDestination.json -package events -- ../aws/events/api_destination_resource_gen.go ../aws/events/api_destination_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_archive -cfschema ../service/cloudformation/schemas/AWS_Events_Archive.json -package events -- ../aws/events/archive_resource_gen.go ../aws/events/archive_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_events_connection -cfschema ../service/cloudformation/schemas/AWS_Events_Connection.json -package events -- ../aws/events/connection_resource_gen.go ../aws/events/connection_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_endpoint -cfschema ../service/cloudformation/schemas/AWS_Events_Endpoint.json -package events -- ../aws/events/endpoint_resource_gen.go ../aws/events/endpoint_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_event_bus -cfschema ../service/cloudformation/schemas/AWS_Events_EventBus.json -package events -- ../aws/events/event_bus_resource_gen.go ../aws/events/event_bus_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_events_rule -cfschema ../service/cloudformation/schemas/AWS_Events_Rule.json -package events -- ../aws/events/rule_resource_gen.go ../aws/events/rule_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index addb6af23..532cddf15 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -420,6 +420,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_eventschemas_schema -cfschema ../service/cloudformation/schemas/AWS_EventSchemas_Schema.json -package eventschemas ../aws/eventschemas/schema_singular_data_source_gen.go ../aws/eventschemas/schema_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_api_destination -cfschema ../service/cloudformation/schemas/AWS_Events_ApiDestination.json -package events ../aws/events/api_destination_singular_data_source_gen.go ../aws/events/api_destination_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_archive -cfschema ../service/cloudformation/schemas/AWS_Events_Archive.json -package events ../aws/events/archive_singular_data_source_gen.go ../aws/events/archive_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_events_connection -cfschema ../service/cloudformation/schemas/AWS_Events_Connection.json -package events ../aws/events/connection_singular_data_source_gen.go ../aws/events/connection_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_endpoint -cfschema ../service/cloudformation/schemas/AWS_Events_Endpoint.json -package events ../aws/events/endpoint_singular_data_source_gen.go ../aws/events/endpoint_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_event_bus -cfschema ../service/cloudformation/schemas/AWS_Events_EventBus.json -package events ../aws/events/event_bus_singular_data_source_gen.go ../aws/events/event_bus_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_events_rule -cfschema ../service/cloudformation/schemas/AWS_Events_Rule.json -package events ../aws/events/rule_singular_data_source_gen.go ../aws/events/rule_singular_data_source_gen_test.go From 4eca93af91c55a4b29a0d32d250387d630dd52ae Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 16:30:30 -0700 Subject: [PATCH 03/20] make resources --- .../aws/events/connection_resource_gen.go | 720 ++++++++++++++++++ .../events/connection_resource_gen_test.go | 46 ++ 2 files changed, 766 insertions(+) create mode 100644 internal/aws/events/connection_resource_gen.go create mode 100644 internal/aws/events/connection_resource_gen_test.go diff --git a/internal/aws/events/connection_resource_gen.go b/internal/aws/events/connection_resource_gen.go new file mode 100644 index 000000000..31214a047 --- /dev/null +++ b/internal/aws/events/connection_resource_gen.go @@ -0,0 +1,720 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package events + +import ( + "context" + + "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/booldefault" + "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/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" +) + +func init() { + registry.AddResourceFactory("awscc_events_connection", connectionResource) +} + +// connectionResource returns the Terraform awscc_events_connection resource. +// This Terraform resource corresponds to the CloudFormation AWS::Events::Connection resource. +func connectionResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The arn of the connection resource.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The arn of the connection resource.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: AuthParameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "oneOf": [ + // { + // "required": [ + // "BasicAuthParameters" + // ] + // }, + // { + // "required": [ + // "OAuthParameters" + // ] + // }, + // { + // "required": [ + // "ApiKeyAuthParameters" + // ] + // } + // ], + // "properties": { + // "ApiKeyAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "ApiKeyName": { + // "type": "string" + // }, + // "ApiKeyValue": { + // "type": "string" + // } + // }, + // "required": [ + // "ApiKeyName", + // "ApiKeyValue" + // ], + // "type": "object" + // }, + // "BasicAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "Password": { + // "type": "string" + // }, + // "Username": { + // "type": "string" + // } + // }, + // "required": [ + // "Username", + // "Password" + // ], + // "type": "object" + // }, + // "InvocationHttpParameters": { + // "additionalProperties": false, + // "properties": { + // "BodyParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "HeaderParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "QueryStringParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "OAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationEndpoint": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "ClientParameters": { + // "additionalProperties": false, + // "properties": { + // "ClientID": { + // "type": "string" + // }, + // "ClientSecret": { + // "type": "string" + // } + // }, + // "required": [ + // "ClientID", + // "ClientSecret" + // ], + // "type": "object" + // }, + // "HttpMethod": { + // "enum": [ + // "GET", + // "POST", + // "PUT" + // ], + // "type": "string" + // }, + // "OAuthHttpParameters": { + // "additionalProperties": false, + // "properties": { + // "BodyParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "HeaderParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "QueryStringParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "ClientParameters", + // "AuthorizationEndpoint", + // "HttpMethod" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiKeyAuthParameters + "api_key_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiKeyName + "api_key_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ApiKeyValue + "api_key_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BasicAuthParameters + "basic_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Password + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Username + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InvocationHttpParameters + "invocation_http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BodyParameters + "body_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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: HeaderParameters + "header_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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: QueryStringParameters + "query_string_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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*/ + // Property: OAuthParameters + "o_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationEndpoint + "authorization_endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ClientParameters + "client_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientID + "client_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: ClientSecret + "client_secret": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: HttpMethod + "http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "GET", + "POST", + "PUT", + ), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: OAuthHttpParameters + "o_auth_http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BodyParameters + "body_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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: HeaderParameters + "header_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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: QueryStringParameters + "query_string_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Default: booldefault.StaticBool(true), + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Key + "key": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*END ATTRIBUTE*/ + // Property: Value + "value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Required: true, + }, /*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*/ + 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*/ + // AuthParameters is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: AuthorizationType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "API_KEY", + // "BASIC", + // "OAUTH_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // } + "authorization_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "API_KEY", + "BASIC", + "OAUTH_CLIENT_CREDENTIALS", + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the connection.", + // "maxLength": 512, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the connection.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(512), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name of the connection.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the connection.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SecretArn + // CloudFormation resource type schema: + // + // { + // "description": "The arn of the secrets manager secret created in the customer account.", + // "type": "string" + // } + "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The arn of the secrets manager secret created in the customer account.", + 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 AWS::Events::Connection.", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Events::Connection").WithTerraformTypeName("awscc_events_connection") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "api_key_auth_parameters": "ApiKeyAuthParameters", + "api_key_name": "ApiKeyName", + "api_key_value": "ApiKeyValue", + "arn": "Arn", + "auth_parameters": "AuthParameters", + "authorization_endpoint": "AuthorizationEndpoint", + "authorization_type": "AuthorizationType", + "basic_auth_parameters": "BasicAuthParameters", + "body_parameters": "BodyParameters", + "client_id": "ClientID", + "client_parameters": "ClientParameters", + "client_secret": "ClientSecret", + "description": "Description", + "header_parameters": "HeaderParameters", + "http_method": "HttpMethod", + "invocation_http_parameters": "InvocationHttpParameters", + "is_value_secret": "IsValueSecret", + "key": "Key", + "name": "Name", + "o_auth_http_parameters": "OAuthHttpParameters", + "o_auth_parameters": "OAuthParameters", + "password": "Password", + "query_string_parameters": "QueryStringParameters", + "secret_arn": "SecretArn", + "username": "Username", + "value": "Value", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/AuthParameters", + }) + 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/events/connection_resource_gen_test.go b/internal/aws/events/connection_resource_gen_test.go new file mode 100644 index 000000000..2960a35e5 --- /dev/null +++ b/internal/aws/events/connection_resource_gen_test.go @@ -0,0 +1,46 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package events_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEventsConnection_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Connection", "awscc_events_connection", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + ), + }, + { + ResourceName: td.ResourceName, + ImportState: true, + ImportStateVerify: true, + }, + }) +} + +func TestAccAWSEventsConnection_disappears(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Connection", "awscc_events_connection", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + Check: resource.ComposeTestCheckFunc( + td.CheckExistsInAWS(), + td.DeleteResource(), + ), + ExpectNonEmptyPlan: true, + }, + }) +} From 5cc12dbce631fd98e7f7ed8afde3309919246174 Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 16:30:41 -0700 Subject: [PATCH 04/20] make singular data source --- .../connection_singular_data_source_gen.go | 579 ++++++++++++++++++ ...onnection_singular_data_source_gen_test.go | 40 ++ 2 files changed, 619 insertions(+) create mode 100644 internal/aws/events/connection_singular_data_source_gen.go create mode 100644 internal/aws/events/connection_singular_data_source_gen_test.go diff --git a/internal/aws/events/connection_singular_data_source_gen.go b/internal/aws/events/connection_singular_data_source_gen.go new file mode 100644 index 000000000..7a6ad3cf6 --- /dev/null +++ b/internal/aws/events/connection_singular_data_source_gen.go @@ -0,0 +1,579 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package events + +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_events_connection", connectionDataSource) +} + +// connectionDataSource returns the Terraform awscc_events_connection data source. +// This Terraform data source corresponds to the CloudFormation AWS::Events::Connection resource. +func connectionDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Arn + // CloudFormation resource type schema: + // + // { + // "description": "The arn of the connection resource.", + // "type": "string" + // } + "arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The arn of the connection resource.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthParameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "oneOf": [ + // { + // "required": [ + // "BasicAuthParameters" + // ] + // }, + // { + // "required": [ + // "OAuthParameters" + // ] + // }, + // { + // "required": [ + // "ApiKeyAuthParameters" + // ] + // } + // ], + // "properties": { + // "ApiKeyAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "ApiKeyName": { + // "type": "string" + // }, + // "ApiKeyValue": { + // "type": "string" + // } + // }, + // "required": [ + // "ApiKeyName", + // "ApiKeyValue" + // ], + // "type": "object" + // }, + // "BasicAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "Password": { + // "type": "string" + // }, + // "Username": { + // "type": "string" + // } + // }, + // "required": [ + // "Username", + // "Password" + // ], + // "type": "object" + // }, + // "InvocationHttpParameters": { + // "additionalProperties": false, + // "properties": { + // "BodyParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "HeaderParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "QueryStringParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // }, + // "OAuthParameters": { + // "additionalProperties": false, + // "properties": { + // "AuthorizationEndpoint": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "ClientParameters": { + // "additionalProperties": false, + // "properties": { + // "ClientID": { + // "type": "string" + // }, + // "ClientSecret": { + // "type": "string" + // } + // }, + // "required": [ + // "ClientID", + // "ClientSecret" + // ], + // "type": "object" + // }, + // "HttpMethod": { + // "enum": [ + // "GET", + // "POST", + // "PUT" + // ], + // "type": "string" + // }, + // "OAuthHttpParameters": { + // "additionalProperties": false, + // "properties": { + // "BodyParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "HeaderParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // }, + // "QueryStringParameters": { + // "items": { + // "additionalProperties": false, + // "properties": { + // "IsValueSecret": { + // "default": true, + // "type": "boolean" + // }, + // "Key": { + // "type": "string" + // }, + // "Value": { + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "type": "object" + // }, + // "type": "array" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "ClientParameters", + // "AuthorizationEndpoint", + // "HttpMethod" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiKeyAuthParameters + "api_key_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ApiKeyName + "api_key_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ApiKeyValue + "api_key_value": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BasicAuthParameters + "basic_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Password + "password": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Username + "username": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InvocationHttpParameters + "invocation_http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BodyParameters + "body_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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: HeaderParameters + "header_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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: QueryStringParameters + "query_string_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OAuthParameters + "o_auth_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AuthorizationEndpoint + "authorization_endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ClientParameters + "client_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ClientID + "client_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ClientSecret + "client_secret": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HttpMethod + "http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: OAuthHttpParameters + "o_auth_http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: BodyParameters + "body_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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: HeaderParameters + "header_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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: QueryStringParameters + "query_string_parameters": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: IsValueSecret + "is_value_secret": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // 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*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: AuthorizationType + // CloudFormation resource type schema: + // + // { + // "enum": [ + // "API_KEY", + // "BASIC", + // "OAUTH_CLIENT_CREDENTIALS" + // ], + // "type": "string" + // } + "authorization_type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "Description of the connection.", + // "maxLength": 512, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Description of the connection.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "Name of the connection.", + // "maxLength": 64, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Name of the connection.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SecretArn + // CloudFormation resource type schema: + // + // { + // "description": "The arn of the secrets manager secret created in the customer account.", + // "type": "string" + // } + "secret_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The arn of the secrets manager secret created in the customer account.", + 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::Events::Connection", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Events::Connection").WithTerraformTypeName("awscc_events_connection") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "api_key_auth_parameters": "ApiKeyAuthParameters", + "api_key_name": "ApiKeyName", + "api_key_value": "ApiKeyValue", + "arn": "Arn", + "auth_parameters": "AuthParameters", + "authorization_endpoint": "AuthorizationEndpoint", + "authorization_type": "AuthorizationType", + "basic_auth_parameters": "BasicAuthParameters", + "body_parameters": "BodyParameters", + "client_id": "ClientID", + "client_parameters": "ClientParameters", + "client_secret": "ClientSecret", + "description": "Description", + "header_parameters": "HeaderParameters", + "http_method": "HttpMethod", + "invocation_http_parameters": "InvocationHttpParameters", + "is_value_secret": "IsValueSecret", + "key": "Key", + "name": "Name", + "o_auth_http_parameters": "OAuthHttpParameters", + "o_auth_parameters": "OAuthParameters", + "password": "Password", + "query_string_parameters": "QueryStringParameters", + "secret_arn": "SecretArn", + "username": "Username", + "value": "Value", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/events/connection_singular_data_source_gen_test.go b/internal/aws/events/connection_singular_data_source_gen_test.go new file mode 100644 index 000000000..2f251bc81 --- /dev/null +++ b/internal/aws/events/connection_singular_data_source_gen_test.go @@ -0,0 +1,40 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package events_test + +import ( + "fmt" + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSEventsConnectionDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Connection", "awscc_events_connection", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithEmptyResourceConfig(), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "id", td.ResourceName, "id"), + resource.TestCheckResourceAttrPair(fmt.Sprintf("data.%s", td.ResourceName), "arn", td.ResourceName, "arn"), + ), + }, + }) +} + +func TestAccAWSEventsConnectionDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Events::Connection", "awscc_events_connection", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} From 09f38eb8dfc51193d4a2922f490fd60f41090160 Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 18:35:40 -0700 Subject: [PATCH 05/20] make docs --- docs/resources/events_connection.md | 238 ++++++++++++++++++ .../connection_with_api_key_authorizer.tf | 17 ++ .../connection_with_oauth_authorizer.tf | 25 ++ .../awscc_events_connection/import.sh | 1 + templates/resources/events_connection.md.tmpl | 35 +++ 5 files changed, 316 insertions(+) create mode 100644 docs/resources/events_connection.md create mode 100644 examples/resources/awscc_events_connection/connection_with_api_key_authorizer.tf create mode 100644 examples/resources/awscc_events_connection/connection_with_oauth_authorizer.tf create mode 100644 examples/resources/awscc_events_connection/import.sh create mode 100644 templates/resources/events_connection.md.tmpl diff --git a/docs/resources/events_connection.md b/docs/resources/events_connection.md new file mode 100644 index 000000000..b78007e25 --- /dev/null +++ b/docs/resources/events_connection.md @@ -0,0 +1,238 @@ +--- +page_title: "awscc_events_connection Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Events::Connection. +--- + +# awscc_events_connection (Resource) + +Resource Type definition for AWS::Events::Connection. + +## Example Usage + +### Create a connection with ApiKey authorization parameters + +The following example creates a connection named pagerduty-connection using ApiKey authorization and stores a secret from Secrets Manager. + +```terraform +resource "awscc_events_connection" "pagerduty_connection" { + name = "pagerduty-connection" + authorization_type = "API_KEY" + + auth_parameters = { + api_key_auth_parameters = { + api_key_name = "Authorization" + api_key_value = "my-secret-string" + } + + additional_parameters = { + body_parameters = { + routing_key = "my-pagerduty-integration-key" + } + } + } +} +``` + +### Create a connection with OAuth authorization parameters + +The following example creates a connection named auth0-connection using OAuth authorization and stores a secret from Secrets Manager. + +```terraform +resource "awscc_events_connection" "auth0_connection" { + name = "auth0-connection" + authorization_type = "OAUTH_CLIENT_CREDENTIALS" + + auth_parameters = { + o_auth_parameters = { + client_parameters = { + client_id = "my-client-id" + client_secret = "my-secret-string" + } + + authorization_endpoint = "https://yourUserName.us.auth0.com/oauth/token" + http_method = "POST" + + o_auth_http_parameters = { + body_parameters = [ + { + key = "audience", + value = "my-auth0-identifier" + } + ] + } + } + } +} +``` + + +## Schema + +### Optional + +- `auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters)) +- `authorization_type` (String) +- `description` (String) Description of the connection. +- `name` (String) Name of the connection. + +### Read-Only + +- `arn` (String) The arn of the connection resource. +- `id` (String) Uniquely identifies the resource. +- `secret_arn` (String) The arn of the secrets manager secret created in the customer account. + + +### Nested Schema for `auth_parameters` + +Optional: + +- `api_key_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--api_key_auth_parameters)) +- `basic_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--basic_auth_parameters)) +- `invocation_http_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters)) +- `o_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters)) + + +### Nested Schema for `auth_parameters.api_key_auth_parameters` + +Required: + +- `api_key_name` (String) +- `api_key_value` (String) + + + +### Nested Schema for `auth_parameters.basic_auth_parameters` + +Required: + +- `password` (String) +- `username` (String) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters` + +Optional: + +- `body_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--body_parameters)) +- `header_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--header_parameters)) +- `query_string_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--query_string_parameters)) + + +### Nested Schema for `auth_parameters.invocation_http_parameters.body_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters.header_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters.query_string_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + + + + +### Nested Schema for `auth_parameters.o_auth_parameters` + +Required: + +- `authorization_endpoint` (String) +- `client_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--client_parameters)) +- `http_method` (String) + +Optional: + +- `o_auth_http_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters)) + + +### Nested Schema for `auth_parameters.o_auth_parameters.client_parameters` + +Required: + +- `client_id` (String) +- `client_secret` (String) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters` + +Optional: + +- `body_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--body_parameters)) +- `header_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--header_parameters)) +- `query_string_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--query_string_parameters)) + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.body_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.header_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.query_string_parameters` + +Required: + +- `key` (String) +- `value` (String) + +Optional: + +- `is_value_secret` (Boolean) + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_events_connection.example "name" +``` \ No newline at end of file diff --git a/examples/resources/awscc_events_connection/connection_with_api_key_authorizer.tf b/examples/resources/awscc_events_connection/connection_with_api_key_authorizer.tf new file mode 100644 index 000000000..4052412c8 --- /dev/null +++ b/examples/resources/awscc_events_connection/connection_with_api_key_authorizer.tf @@ -0,0 +1,17 @@ +resource "awscc_events_connection" "pagerduty_connection" { + name = "pagerduty-connection" + authorization_type = "API_KEY" + + auth_parameters = { + api_key_auth_parameters = { + api_key_name = "Authorization" + api_key_value = "my-secret-string" + } + + additional_parameters = { + body_parameters = { + routing_key = "my-pagerduty-integration-key" + } + } + } +} \ No newline at end of file diff --git a/examples/resources/awscc_events_connection/connection_with_oauth_authorizer.tf b/examples/resources/awscc_events_connection/connection_with_oauth_authorizer.tf new file mode 100644 index 000000000..996f44ce6 --- /dev/null +++ b/examples/resources/awscc_events_connection/connection_with_oauth_authorizer.tf @@ -0,0 +1,25 @@ +resource "awscc_events_connection" "auth0_connection" { + name = "auth0-connection" + authorization_type = "OAUTH_CLIENT_CREDENTIALS" + + auth_parameters = { + o_auth_parameters = { + client_parameters = { + client_id = "my-client-id" + client_secret = "my-secret-string" + } + + authorization_endpoint = "https://yourUserName.us.auth0.com/oauth/token" + http_method = "POST" + + o_auth_http_parameters = { + body_parameters = [ + { + key = "audience", + value = "my-auth0-identifier" + } + ] + } + } + } +} \ No newline at end of file diff --git a/examples/resources/awscc_events_connection/import.sh b/examples/resources/awscc_events_connection/import.sh new file mode 100644 index 000000000..925043690 --- /dev/null +++ b/examples/resources/awscc_events_connection/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_events_connection.example "name" \ No newline at end of file diff --git a/templates/resources/events_connection.md.tmpl b/templates/resources/events_connection.md.tmpl new file mode 100644 index 000000000..2aa2d8885 --- /dev/null +++ b/templates/resources/events_connection.md.tmpl @@ -0,0 +1,35 @@ +--- +page_title: "{{.Name}} {{.Type}} - {{.ProviderName}}" +subcategory: "" +description: |- +{{ .Description | plainmarkdown | trimspace | prefixlines " " }} +--- + +# {{.Name}} ({{.Type}}) + +{{ .Description | trimspace }} + +## Example Usage + +### Create a connection with ApiKey authorization parameters + +The following example creates a connection named pagerduty-connection using ApiKey authorization and stores a secret from Secrets Manager. + +{{ tffile (printf "examples/resources/%s/connection_with_api_key_authorizer.tf" .Name)}} + +### Create a connection with OAuth authorization parameters + +The following example creates a connection named auth0-connection using OAuth authorization and stores a secret from Secrets Manager. + +{{ tffile (printf "examples/resources/%s/connection_with_oauth_authorizer.tf" .Name)}} + +{{ .SchemaMarkdown | trimspace }} +{{- if .HasImport }} + +## Import + +Import is supported using the following syntax: + +{{ codefile "shell" .ImportFile }} + +{{- end }} \ No newline at end of file From 9f8405d9496c877c866cba7589cc3620e10e4b1b Mon Sep 17 00:00:00 2001 From: wellsiau-aws Date: Fri, 6 Sep 2024 19:22:15 -0700 Subject: [PATCH 06/20] singular data source --- docs/data-sources/events_connection.md | 154 +++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 docs/data-sources/events_connection.md diff --git a/docs/data-sources/events_connection.md b/docs/data-sources/events_connection.md new file mode 100644 index 000000000..93e1a242e --- /dev/null +++ b/docs/data-sources/events_connection.md @@ -0,0 +1,154 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_events_connection Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Events::Connection +--- + +# awscc_events_connection (Data Source) + +Data Source schema for AWS::Events::Connection + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `arn` (String) The arn of the connection resource. +- `auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters)) +- `authorization_type` (String) +- `description` (String) Description of the connection. +- `name` (String) Name of the connection. +- `secret_arn` (String) The arn of the secrets manager secret created in the customer account. + + +### Nested Schema for `auth_parameters` + +Read-Only: + +- `api_key_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--api_key_auth_parameters)) +- `basic_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--basic_auth_parameters)) +- `invocation_http_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters)) +- `o_auth_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters)) + + +### Nested Schema for `auth_parameters.api_key_auth_parameters` + +Read-Only: + +- `api_key_name` (String) +- `api_key_value` (String) + + + +### Nested Schema for `auth_parameters.basic_auth_parameters` + +Read-Only: + +- `password` (String) +- `username` (String) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters` + +Read-Only: + +- `body_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--body_parameters)) +- `header_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--header_parameters)) +- `query_string_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--invocation_http_parameters--query_string_parameters)) + + +### Nested Schema for `auth_parameters.invocation_http_parameters.body_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters.header_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) + + + +### Nested Schema for `auth_parameters.invocation_http_parameters.query_string_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) + + + + +### Nested Schema for `auth_parameters.o_auth_parameters` + +Read-Only: + +- `authorization_endpoint` (String) +- `client_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--client_parameters)) +- `http_method` (String) +- `o_auth_http_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters)) + + +### Nested Schema for `auth_parameters.o_auth_parameters.client_parameters` + +Read-Only: + +- `client_id` (String) +- `client_secret` (String) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters` + +Read-Only: + +- `body_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--body_parameters)) +- `header_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--header_parameters)) +- `query_string_parameters` (Attributes List) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters--query_string_parameters)) + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.body_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.header_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) + + + +### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.query_string_parameters` + +Read-Only: + +- `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) From 08338033e51364bbe91eebc94c3c4101d1ae777d Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 13:57:04 -0400 Subject: [PATCH 07/20] 09/18/2024 CloudFormation schemas in us-east-1; Refresh existing schemas. --- .../schemas/AWS_ApiGatewayV2_Integration.json | 216 ++++++++++++++---- .../AWS_ApplicationInsights_Application.json | 88 ++++++- .../AWS_CodeGuruProfiler_ProfilingGroup.json | 4 +- ...WS_CodeStarConnections_RepositoryLink.json | 7 +- .../AWS_Cognito_UserPoolResourceServer.json | 6 +- .../AWS_Config_AggregationAuthorization.json | 7 +- .../AWS_Config_ConfigurationAggregator.json | 7 +- .../schemas/AWS_DMS_InstanceProfile.json | 1 - .../schemas/AWS_DataZone_Environment.json | 37 ++- .../schemas/AWS_EC2_Instance.json | 4 + .../schemas/AWS_EC2_Subnet.json | 2 +- .../schemas/AWS_EC2_Volume.json | 2 +- .../schemas/AWS_FMS_Policy.json | 2 +- .../AWS_FSx_DataRepositoryAssociation.json | 6 +- .../schemas/AWS_IoTFleetWise_Campaign.json | 133 ++++++++++- .../AWS_IoTFleetWise_SignalCatalog.json | 2 +- .../schemas/AWS_Lambda_CodeSigningConfig.json | 48 +++- .../AWS_Lambda_EventSourceMapping.json | 59 ++++- .../schemas/AWS_Location_APIKey.json | 6 +- .../AWS_Location_GeofenceCollection.json | 6 +- .../schemas/AWS_Location_Map.json | 6 +- .../schemas/AWS_Location_RouteCalculator.json | 6 +- .../schemas/AWS_Location_Tracker.json | 6 +- .../schemas/AWS_Rekognition_Collection.json | 13 +- .../AWS_Rekognition_StreamProcessor.json | 13 +- .../AWS_S3Express_DirectoryBucket.json | 132 ++++++----- .../schemas/AWS_Synthetics_Canary.json | 22 +- .../schemas/AWS_XRay_Group.json | 6 +- .../schemas/AWS_XRay_SamplingRule.json | 6 +- 29 files changed, 710 insertions(+), 143 deletions(-) diff --git a/internal/service/cloudformation/schemas/AWS_ApiGatewayV2_Integration.json b/internal/service/cloudformation/schemas/AWS_ApiGatewayV2_Integration.json index db7805267..10a946388 100644 --- a/internal/service/cloudformation/schemas/AWS_ApiGatewayV2_Integration.json +++ b/internal/service/cloudformation/schemas/AWS_ApiGatewayV2_Integration.json @@ -1,75 +1,167 @@ { "typeName": "AWS::ApiGatewayV2::Integration", - "description": "Resource Type definition for AWS::ApiGatewayV2::Integration", "additionalProperties": false, - "properties": { - "Description": { - "type": "string" - }, - "TemplateSelectionExpression": { - "type": "string" + "description": "An example resource schema demonstrating some basic constructs and validation rules.", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", + "definitions": { + "ResponseParameter": { + "description": "response parameter", + "type": "object", + "additionalProperties": false, + "properties": { + "Destination": { + "type": "string" + }, + "Source": { + "type": "string" + } + } }, - "ConnectionType": { - "type": "string" + "ResponseParameterList": { + "description": "list of response parameters", + "type": "array", + "items": { + "$ref": "#/definitions/ResponseParameter" + } }, - "ResponseParameters": { - "type": "object" + "ResponseParameterMap": { + "description": "map of response parameter lists", + "type": "object", + "additionalProperties": false, + "properties": { + "ResponseParameters": { + "$ref": "#/definitions/ResponseParameterList" + } + } }, - "IntegrationMethod": { - "type": "string" + "TlsConfig": { + "description": "The TlsConfig property specifies the TLS configuration for a private integration. Supported only for HTTP APIs.", + "type": "object", + "additionalProperties": false, + "properties": { + "ServerNameToVerify": { + "type": "string" + } + } }, - "PassthroughBehavior": { + "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", + "Value" + ] + } + }, + "properties": { + "ApiId": { + "description": "The API identifier.", "type": "string" }, - "RequestParameters": { - "type": "object" - }, "ConnectionId": { + "description": "The ID of the VPC link for a private integration. Supported only for HTTP APIs.", "type": "string" }, - "IntegrationUri": { + "ConnectionType": { + "description": "The type of the network connection to the integration endpoint. Specify INTERNET for connections through the public routable internet or VPC_LINK for private connections between API Gateway and resources in a VPC. The default value is INTERNET.", "type": "string" }, - "PayloadFormatVersion": { + "ContentHandlingStrategy": { + "description": "Supported only for WebSocket APIs. Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and CONVERT_TO_TEXT.", "type": "string" }, "CredentialsArn": { + "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, don't specify this parameter.", "type": "string" }, - "RequestTemplates": { - "type": "object" + "Description": { + "description": "The description of the integration.", + "type": "string" }, - "TimeoutInMillis": { - "type": "integer" + "IntegrationMethod": { + "description": "Specifies the integration's HTTP method type.", + "type": "string" }, - "TlsConfig": { - "$ref": "#/definitions/TlsConfig" + "IntegrationSubtype": { + "description": "Supported only for HTTP API AWS_PROXY integrations. Specifies the AWS service action to invoke.", + "type": "string" }, - "ContentHandlingStrategy": { + "IntegrationId": { + "description": "The integration ID.", "type": "string" }, - "Id": { + "IntegrationType": { + "description": "The integration type of an integration.", "type": "string" }, - "IntegrationSubtype": { + "IntegrationUri": { + "description": "For a Lambda integration, specify the URI of a Lambda function. For an HTTP integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.", "type": "string" }, - "ApiId": { + "PassthroughBehavior": { + "description": "Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the requestTemplates property on the Integration resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and NEVER. Supported only for WebSocket APIs.", "type": "string" }, - "IntegrationType": { + "PayloadFormatVersion": { + "description": "Specifies the format of the payload sent to an integration. Required for HTTP APIs. For HTTP APIs, supported values for Lambda proxy integrations are 1.0 and 2.0 For all other integrations, 1.0 is the only supported value.", "type": "string" - } - }, - "definitions": { - "TlsConfig": { + }, + "RequestParameters": { + "description": "A key-value map specifying parameters.", "type": "object", "additionalProperties": false, - "properties": { - "ServerNameToVerify": { + "patternProperties": { + "": { "type": "string" } } + }, + "RequestTemplates": { + "description": "A map of Velocity templates that are applied on the request payload based on the value of the Content-Type header sent by the client.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "type": "string" + } + } + }, + "ResponseParameters": { + "description": "Parameters that transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.", + "type": "object", + "additionalProperties": false, + "patternProperties": { + "": { + "$ref": "#/definitions/ResponseParameterMap" + } + } + }, + "TemplateSelectionExpression": { + "description": "The template selection expression for the integration. Supported only for WebSocket APIs.", + "type": "string" + }, + "TimeoutInMillis": { + "description": "Custom timeout between 50 and 29000 milliseconds for WebSocket APIs and between 50 and 30000 milliseconds for HTTP APIs. The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.", + "type": "integer" + }, + "TlsConfig": { + "description": "The TLS configuration for a private integration. If you specify a TLS configuration, private integration traffic uses the HTTPS protocol. Supported only for HTTP APIs.", + "$ref": "#/definitions/TlsConfig" } }, "required": [ @@ -79,10 +171,54 @@ "createOnlyProperties": [ "/properties/ApiId" ], + "readOnlyProperties": [ + "/properties/IntegrationId" + ], "primaryIdentifier": [ - "/properties/Id" + "/properties/ApiId", + "/properties/IntegrationId" ], - "readOnlyProperties": [ - "/properties/Id" - ] + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "apigateway:POST" + ] + }, + "update": { + "permissions": [ + "apigateway:PATCH", + "apigateway:GET", + "apigateway:PUT" + ] + }, + "read": { + "permissions": [ + "apigateway:GET" + ] + }, + "delete": { + "permissions": [ + "apigateway:GET", + "apigateway:DELETE" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "ApiId": { + "$ref": "resource-schema.json#/properties/ApiId" + } + }, + "required": [ + "ApiId" + ] + }, + "permissions": [ + "apigateway:GET" + ] + } + } } diff --git a/internal/service/cloudformation/schemas/AWS_ApplicationInsights_Application.json b/internal/service/cloudformation/schemas/AWS_ApplicationInsights_Application.json index 3dd482ff0..71b434290 100644 --- a/internal/service/cloudformation/schemas/AWS_ApplicationInsights_Application.json +++ b/internal/service/cloudformation/schemas/AWS_ApplicationInsights_Application.json @@ -699,31 +699,107 @@ "handlers": { "create": { "permissions": [ - "*" + "applicationinsights:CreateApplication", + "applicationinsights:DescribeApplication", + "applicationinsights:CreateComponent", + "applicationinsights:DescribeComponent", + "applicationinsights:CreateLogPattern", + "applicationinsights:DescribeLogPattern", + "applicationinsights:DescribeComponentConfigurationRecommendation", + "applicationinsights:UpdateComponentConfiguration", + "applicationinsights:ListComponents", + "applicationinsights:TagResource", + "ec2:DescribeInstances", + "ec2:DescribeVolumes", + "rds:DescribeDBInstances", + "rds:DescribeDBClusters", + "sqs:ListQueues", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", + "autoscaling:DescribeAutoScalingGroups", + "lambda:ListFunctions", + "dynamodb:ListTables", + "s3:ListAllMyBuckets", + "sns:ListTopics", + "states:ListStateMachines", + "apigateway:GET", + "ecs:ListClusters", + "ecs:DescribeTaskDefinition", + "ecs:ListServices", + "ecs:ListTasks", + "eks:ListClusters", + "eks:ListNodegroups", + "fsx:DescribeFileSystems", + "logs:DescribeLogGroups", + "elasticfilesystem:DescribeFileSystems" ], "timeoutInMinutes": 600 }, "read": { "permissions": [ - "*" + "applicationinsights:DescribeApplication", + "applicationinsights:ListTagsForResource", + "applicationinsights:DescribeComponent", + "applicationinsights:ListComponents", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets" ] }, "update": { "permissions": [ - "*" + "applicationinsights:CreateApplication", + "applicationinsights:DescribeApplication", + "applicationinsights:UpdateApplication", + "applicationinsights:TagResource", + "applicationinsights:UntagResource", + "applicationinsights:ListTagsForResource", + "applicationinsights:CreateComponent", + "applicationinsights:DescribeComponent", + "applicationinsights:DeleteComponent", + "applicationinsights:ListComponents", + "applicationinsights:CreateLogPattern", + "applicationinsights:DeleteLogPattern", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets", + "applicationinsights:UpdateLogPattern", + "applicationinsights:DescribeComponentConfiguration", + "applicationinsights:DescribeComponentConfigurationRecommendation", + "applicationinsights:UpdateComponentConfiguration" ], "timeoutInMinutes": 600 }, "delete": { "permissions": [ - "*" + "applicationinsights:DeleteApplication", + "applicationinsights:DescribeApplication" ] }, "list": { "permissions": [ - "*" + "applicationinsights:ListApplications", + "applicationinsights:DescribeApplication", + "applicationinsights:ListTagsForResource", + "applicationinsights:DescribeComponent", + "applicationinsights:ListComponents", + "applicationinsights:DescribeLogPattern", + "applicationinsights:ListLogPatterns", + "applicationinsights:ListLogPatternSets" ] } }, - "taggable": true + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": false, + "tagProperty": "/properties/Tags", + "permissions": [ + "applicationinsights:ListTagsForResource", + "applicationinsights:TagResource", + "applicationinsights:UntagResource" + ] + } } diff --git a/internal/service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json b/internal/service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json index 71bdfdd80..a9cdd463e 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json +++ b/internal/service/cloudformation/schemas/AWS_CodeGuruProfiler_ProfilingGroup.json @@ -144,7 +144,9 @@ "read": { "permissions": [ "codeguru-profiler:DescribeProfilingGroup", - "codeguru-profiler:ListTagsForResource" + "codeguru-profiler:ListTagsForResource", + "codeguru-profiler:GetNotificationConfiguration", + "codeguru-profiler:GetPolicy" ] }, "update": { diff --git a/internal/service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json b/internal/service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json index 264c74763..1afbc37a0 100644 --- a/internal/service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json +++ b/internal/service/cloudformation/schemas/AWS_CodeStarConnections_RepositoryLink.json @@ -148,7 +148,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "codestar-connections:UntagResource", + "codestar-connections:ListTagsForResource", + "codestar-connections:TagResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolResourceServer.json b/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolResourceServer.json index ec937cd15..884cf97af 100644 --- a/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolResourceServer.json +++ b/internal/service/cloudformation/schemas/AWS_Cognito_UserPoolResourceServer.json @@ -60,8 +60,7 @@ "handlers": { "create": { "permissions": [ - "cognito-idp:CreateResourceServer", - "iam:PassRole" + "cognito-idp:CreateResourceServer" ], "timeoutInMinutes": 2 }, @@ -72,8 +71,7 @@ }, "update": { "permissions": [ - "cognito-idp:UpdateResourceServer", - "iam:PassRole" + "cognito-idp:UpdateResourceServer" ], "timeoutInMinutes": 2 }, diff --git a/internal/service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json b/internal/service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json index 99e54159e..23be1f7a5 100644 --- a/internal/service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json +++ b/internal/service/cloudformation/schemas/AWS_Config_AggregationAuthorization.json @@ -70,7 +70,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "config:TagResource", + "config:UntagResource", + "config:ListTagsForResource" + ] }, "primaryIdentifier": [ "/properties/AuthorizedAccountId", diff --git a/internal/service/cloudformation/schemas/AWS_Config_ConfigurationAggregator.json b/internal/service/cloudformation/schemas/AWS_Config_ConfigurationAggregator.json index 478c1443b..db3536985 100644 --- a/internal/service/cloudformation/schemas/AWS_Config_ConfigurationAggregator.json +++ b/internal/service/cloudformation/schemas/AWS_Config_ConfigurationAggregator.json @@ -116,7 +116,12 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "config:TagResource", + "config:UntagResource", + "config:ListTagsForResource" + ] }, "createOnlyProperties": [ "/properties/ConfigurationAggregatorName" diff --git a/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json b/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json index 2603ff16f..204842789 100644 --- a/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json +++ b/internal/service/cloudformation/schemas/AWS_DMS_InstanceProfile.json @@ -76,7 +76,6 @@ "type": "string", "enum": [ "IPV4", - "IPV6", "DUAL" ] }, diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_Environment.json b/internal/service/cloudformation/schemas/AWS_DataZone_Environment.json index fa4d1be55..8e8c2f35c 100644 --- a/internal/service/cloudformation/schemas/AWS_DataZone_Environment.json +++ b/internal/service/cloudformation/schemas/AWS_DataZone_Environment.json @@ -49,6 +49,16 @@ "description": "The AWS region in which the Amazon DataZone environment is created.", "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$" }, + "EnvironmentAccountIdentifier": { + "type": "string", + "description": "The AWS account in which the Amazon DataZone environment is created.", + "pattern": "^\\d{12}$" + }, + "EnvironmentAccountRegion": { + "type": "string", + "description": "The AWS region in which the Amazon DataZone environment is created.", + "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$" + }, "CreatedAt": { "type": "string", "description": "The timestamp of when the environment was created.", @@ -81,12 +91,12 @@ "EnvironmentProfileId": { "type": "string", "description": "The ID of the environment profile with which the Amazon DataZone environment was created.", - "pattern": "^[a-zA-Z0-9_-]{1,36}$" + "pattern": "^[a-zA-Z0-9_-]{0,36}$" }, "EnvironmentProfileIdentifier": { "type": "string", "description": "The ID of the environment profile with which the Amazon DataZone environment would be created.", - "pattern": "^[a-zA-Z0-9_-]{1,36}$" + "pattern": "^[a-zA-Z0-9_-]{0,36}$" }, "GlossaryTerms": { "type": "array", @@ -99,6 +109,10 @@ "maxItems": 20, "minItems": 1 }, + "EnvironmentRoleArn": { + "type": "string", + "description": "Environment role arn for custom aws environment permissions" + }, "Id": { "type": "string", "description": "The ID of the Amazon DataZone environment.", @@ -144,7 +158,6 @@ } }, "required": [ - "EnvironmentProfileIdentifier", "Name", "ProjectIdentifier", "DomainIdentifier" @@ -166,13 +179,18 @@ "writeOnlyProperties": [ "/properties/EnvironmentProfileIdentifier", "/properties/ProjectIdentifier", - "/properties/DomainIdentifier" + "/properties/DomainIdentifier", + "/properties/EnvironmentAccountIdentifier", + "/properties/EnvironmentAccountRegion", + "/properties/EnvironmentRoleArn" ], "createOnlyProperties": [ "/properties/DomainIdentifier", "/properties/EnvironmentProfileIdentifier", "/properties/ProjectIdentifier", - "/properties/UserParameters" + "/properties/UserParameters", + "/properties/EnvironmentAccountIdentifier", + "/properties/EnvironmentAccountRegion" ], "primaryIdentifier": [ "/properties/DomainId", @@ -191,7 +209,9 @@ "permissions": [ "datazone:CreateEnvironment", "datazone:GetEnvironment", - "datazone:DeleteEnvironment" + "datazone:DeleteEnvironment", + "datazone:AssociateEnvironmentRole", + "iam:PassRole" ] }, "read": { @@ -203,7 +223,10 @@ "permissions": [ "datazone:UpdateEnvironment", "datazone:GetEnvironment", - "datazone:DeleteEnvironment" + "datazone:DeleteEnvironment", + "datazone:AssociateEnvironmentRole", + "datazone:DisassociateEnvironmentRole", + "iam:PassRole" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json index 5d874fa63..fee6b8b05 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Instance.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Instance.json @@ -1,5 +1,9 @@ { "tagging": { + "permissions": [ + "ec2:CreateTags", + "ec2:DeleteTags" + ], "taggable": true, "tagOnCreate": true, "tagUpdatable": true, diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json index fe936f749..79d5b40f2 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Subnet.json @@ -45,7 +45,7 @@ "items": { "type": "string" }, - "description": "The IPv6 network ranges for the subnet, in CIDR notation." + "description": "" }, "Ipv6CidrBlock": { "type": "string", diff --git a/internal/service/cloudformation/schemas/AWS_EC2_Volume.json b/internal/service/cloudformation/schemas/AWS_EC2_Volume.json index 9c6aec4df..e16e10ecb 100644 --- a/internal/service/cloudformation/schemas/AWS_EC2_Volume.json +++ b/internal/service/cloudformation/schemas/AWS_EC2_Volume.json @@ -80,7 +80,7 @@ "Value", "Key" ], - "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications)." + "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html)." } }, "tagging": { diff --git a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json index eb2560cba..e2b97b3ca 100644 --- a/internal/service/cloudformation/schemas/AWS_FMS_Policy.json +++ b/internal/service/cloudformation/schemas/AWS_FMS_Policy.json @@ -194,7 +194,7 @@ "Protocol": { "description": "Protocol.", "type": "string", - "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$" + "pattern": "^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$" }, "RuleAction": { "description": "Rule Action.", diff --git a/internal/service/cloudformation/schemas/AWS_FSx_DataRepositoryAssociation.json b/internal/service/cloudformation/schemas/AWS_FSx_DataRepositoryAssociation.json index d048741d4..7edea5ec4 100644 --- a/internal/service/cloudformation/schemas/AWS_FSx_DataRepositoryAssociation.json +++ b/internal/service/cloudformation/schemas/AWS_FSx_DataRepositoryAssociation.json @@ -142,7 +142,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "fsx:TagResource", + "fsx:UntagResource" + ] }, "additionalProperties": false, "required": [ diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Campaign.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Campaign.json index 0e4cefbdd..599a6da5f 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Campaign.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_Campaign.json @@ -10,6 +10,24 @@ ], "default": "OFF" }, + "ConditionBasedSignalFetchConfig": { + "type": "object", + "properties": { + "ConditionExpression": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "TriggerMode": { + "$ref": "#/definitions/TriggerMode" + } + }, + "required": [ + "ConditionExpression", + "TriggerMode" + ], + "additionalProperties": false + }, "DataDestinationConfig": { "oneOf": [ { @@ -175,12 +193,77 @@ "Name" ] }, + "SignalFetchConfig": { + "oneOf": [ + { + "type": "object", + "title": "TimeBased", + "properties": { + "TimeBased": { + "$ref": "#/definitions/TimeBasedSignalFetchConfig" + } + }, + "required": [ + "TimeBased" + ], + "additionalProperties": false + }, + { + "type": "object", + "title": "ConditionBased", + "properties": { + "ConditionBased": { + "$ref": "#/definitions/ConditionBasedSignalFetchConfig" + } + }, + "required": [ + "ConditionBased" + ], + "additionalProperties": false + } + ] + }, + "SignalFetchInformation": { + "type": "object", + "properties": { + "FullyQualifiedName": { + "type": "string", + "maxLength": 150, + "minLength": 1, + "pattern": "^[a-zA-Z0-9_.]+$" + }, + "SignalFetchConfig": { + "$ref": "#/definitions/SignalFetchConfig" + }, + "ConditionLanguageVersion": { + "type": "number", + "maximum": 1, + "minimum": 1 + }, + "Actions": { + "type": "array", + "items": { + "type": "string", + "maxLength": 2048, + "minLength": 1 + }, + "maxItems": 5, + "minItems": 1 + } + }, + "required": [ + "Actions", + "FullyQualifiedName", + "SignalFetchConfig" + ], + "additionalProperties": false + }, "TimeBasedCollectionScheme": { "additionalProperties": false, "type": "object", "properties": { "PeriodMs": { - "maximum": 60000, + "maximum": 86400000, "type": "number", "minimum": 10000 } @@ -189,6 +272,19 @@ "PeriodMs" ] }, + "TimeBasedSignalFetchConfig": { + "type": "object", + "properties": { + "ExecutionFrequencyMs": { + "type": "number", + "minimum": 1 + } + }, + "required": [ + "ExecutionFrequencyMs" + ], + "additionalProperties": false + }, "SpoolingMode": { "type": "string", "enum": [ @@ -293,6 +389,32 @@ "Value" ], "additionalProperties": false + }, + "TimePeriod": { + "type": "object", + "properties": { + "Unit": { + "$ref": "#/definitions/TimeUnit" + }, + "Value": { + "type": "number", + "minimum": 1 + } + }, + "required": [ + "Unit", + "Value" + ], + "additionalProperties": false + }, + "TimeUnit": { + "type": "string", + "enum": [ + "MILLISECOND", + "SECOND", + "MINUTE", + "HOUR" + ] } }, "properties": { @@ -329,6 +451,15 @@ "$ref": "#/definitions/SignalInformation" } }, + "SignalsToFetch": { + "type": "array", + "insertionOrder": false, + "items": { + "$ref": "#/definitions/SignalFetchInformation" + }, + "maxItems": 10, + "minItems": 0 + }, "DataDestinationConfigs": { "minItems": 1, "maxItems": 1, diff --git a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_SignalCatalog.json b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_SignalCatalog.json index c0f4c805a..41b044f8e 100644 --- a/internal/service/cloudformation/schemas/AWS_IoTFleetWise_SignalCatalog.json +++ b/internal/service/cloudformation/schemas/AWS_IoTFleetWise_SignalCatalog.json @@ -291,7 +291,7 @@ "items": { "$ref": "#/definitions/Node" }, - "maxItems": 500, + "maxItems": 5000, "minItems": 1 }, "Tags": { diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json b/internal/service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json index 75c28a58f..8b4f9754d 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_CodeSigningConfig.json @@ -26,6 +26,15 @@ "description": "A unique Arn for CodeSigningConfig resource", "type": "string", "pattern": "arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:code-signing-config:csc-[a-z0-9]{17}" + }, + "Tags": { + "description": "A list of tags to apply to CodeSigningConfig resource", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } } }, "definitions": { @@ -69,6 +78,27 @@ "required": [ "UntrustedArtifactOnDeployment" ] + }, + "Tag": { + "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" + ] } }, "required": [ @@ -81,20 +111,32 @@ "primaryIdentifier": [ "/properties/CodeSigningConfigArn" ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + }, "handlers": { "create": { "permissions": [ - "lambda:CreateCodeSigningConfig" + "lambda:CreateCodeSigningConfig", + "lambda:TagResource" ] }, "read": { "permissions": [ - "lambda:GetCodeSigningConfig" + "lambda:GetCodeSigningConfig", + "lambda:ListTags" ] }, "update": { "permissions": [ - "lambda:UpdateCodeSigningConfig" + "lambda:UpdateCodeSigningConfig", + "lambda:ListTags", + "lambda:TagResource", + "lambda:UntagResource" ] }, "delete": { diff --git a/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json b/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json index 4c3d6e547..934be5e7a 100644 --- a/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json +++ b/internal/service/cloudformation/schemas/AWS_Lambda_EventSourceMapping.json @@ -35,12 +35,19 @@ "minLength": 12, "maxLength": 1024 }, + "EventSourceMappingArn": { + "description": "", + "type": "string", + "pattern": "arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:event-source-mapping:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", + "minLength": 85, + "maxLength": 120 + }, "FilterCriteria": { "description": "An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).", "$ref": "#/definitions/FilterCriteria" }, "KmsKeyArn": { - "description": "", + "description": "The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).", "type": "string", "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", "minLength": 12, @@ -88,6 +95,15 @@ "description": "With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.", "type": "number" }, + "Tags": { + "description": "", + "type": "array", + "uniqueItems": true, + "insertionOrder": false, + "items": { + "$ref": "#/definitions/Tag" + } + }, "Topics": { "description": "The name of the Kafka topic.", "type": "array", @@ -131,7 +147,7 @@ "maximum": 900 }, "FunctionResponseTypes": { - "description": "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + "description": "(Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", "type": "array", "uniqueItems": true, "items": { @@ -327,6 +343,28 @@ } } }, + "Tag": { + "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" + ], + "description": "" + }, "DocumentDBEventSourceConfig": { "description": "Specific configuration settings for a DocumentDB event source.", "type": "object", @@ -367,7 +405,8 @@ "/properties/SelfManagedKafkaEventSourceConfig" ], "readOnlyProperties": [ - "/properties/Id" + "/properties/Id", + "/properties/EventSourceMappingArn" ], "primaryIdentifier": [ "/properties/Id" @@ -380,6 +419,7 @@ "permissions": [ "lambda:CreateEventSourceMapping", "lambda:GetEventSourceMapping", + "lambda:TagResource", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" @@ -400,6 +440,7 @@ "read": { "permissions": [ "lambda:GetEventSourceMapping", + "lambda:ListTags", "kms:Decrypt" ] }, @@ -407,6 +448,9 @@ "permissions": [ "lambda:UpdateEventSourceMapping", "lambda:GetEventSourceMapping", + "lambda:ListTags", + "lambda:TagResource", + "lambda:UntagResource", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" @@ -414,9 +458,10 @@ } }, "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" } } diff --git a/internal/service/cloudformation/schemas/AWS_Location_APIKey.json b/internal/service/cloudformation/schemas/AWS_Location_APIKey.json index 7da6c5342..3f085d4fa 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_APIKey.json +++ b/internal/service/cloudformation/schemas/AWS_Location_APIKey.json @@ -226,7 +226,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "geo:TagResource", + "geo:UntagResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_Location_GeofenceCollection.json b/internal/service/cloudformation/schemas/AWS_Location_GeofenceCollection.json index 3d7847710..c261e9579 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_GeofenceCollection.json +++ b/internal/service/cloudformation/schemas/AWS_Location_GeofenceCollection.json @@ -166,7 +166,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "geo:TagResource", + "geo:UntagResource" + ] }, "required": [ "CollectionName" diff --git a/internal/service/cloudformation/schemas/AWS_Location_Map.json b/internal/service/cloudformation/schemas/AWS_Location_Map.json index 19cd7780e..110431f59 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_Map.json +++ b/internal/service/cloudformation/schemas/AWS_Location_Map.json @@ -186,7 +186,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "geo:TagResource", + "geo:UntagResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_Location_RouteCalculator.json b/internal/service/cloudformation/schemas/AWS_Location_RouteCalculator.json index 8d5726095..7dc0f8464 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_RouteCalculator.json +++ b/internal/service/cloudformation/schemas/AWS_Location_RouteCalculator.json @@ -155,7 +155,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "geo:TagResource", + "geo:UntagResource" + ] }, "additionalProperties": false } diff --git a/internal/service/cloudformation/schemas/AWS_Location_Tracker.json b/internal/service/cloudformation/schemas/AWS_Location_Tracker.json index 5840306f7..3dedb80aa 100644 --- a/internal/service/cloudformation/schemas/AWS_Location_Tracker.json +++ b/internal/service/cloudformation/schemas/AWS_Location_Tracker.json @@ -183,7 +183,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": false, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "geo:TagResource", + "geo:UntagResource" + ] }, "required": [ "TrackerName" diff --git a/internal/service/cloudformation/schemas/AWS_Rekognition_Collection.json b/internal/service/cloudformation/schemas/AWS_Rekognition_Collection.json index 46bc57130..dbb4b8741 100644 --- a/internal/service/cloudformation/schemas/AWS_Rekognition_Collection.json +++ b/internal/service/cloudformation/schemas/AWS_Rekognition_Collection.json @@ -58,7 +58,18 @@ } } }, - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags", + "permissions": [ + "rekognition:ListTagsForResource", + "rekognition:TagResource", + "rekognition:UntagResource" + ] + }, "additionalProperties": false, "required": [ "CollectionId" diff --git a/internal/service/cloudformation/schemas/AWS_Rekognition_StreamProcessor.json b/internal/service/cloudformation/schemas/AWS_Rekognition_StreamProcessor.json index 2ee14ae95..5e8c05322 100644 --- a/internal/service/cloudformation/schemas/AWS_Rekognition_StreamProcessor.json +++ b/internal/service/cloudformation/schemas/AWS_Rekognition_StreamProcessor.json @@ -312,7 +312,18 @@ } } }, - "taggable": true, + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "tagProperty": "/properties/Tags", + "cloudFormationSystemTags": false, + "permissions": [ + "rekognition:TagResource", + "rekognition:UntagResource", + "rekognition:ListTagsForResource" + ] + }, "additionalProperties": false, "required": [ "RoleArn", diff --git a/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json b/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json index 08eb5772a..d58aaced4 100644 --- a/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json +++ b/internal/service/cloudformation/schemas/AWS_S3Express_DirectoryBucket.json @@ -1,16 +1,81 @@ { + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + }, + "handlers": { + "read": { + "permissions": [ + "s3express:ListAllMyDirectoryBuckets", + "ec2:DescribeAvailabilityZones", + "s3express:GetEncryptionConfiguration", + "s3express:ListAllMyDirectoryBuckets" + ] + }, + "create": { + "permissions": [ + "kms:GenerateDataKey", + "kms:Decrypt", + "s3express:CreateBucket", + "s3express:ListAllMyDirectoryBuckets", + "s3express:PutEncryptionConfiguration" + ] + }, + "update": { + "permissions": [ + "kms:GenerateDataKey", + "kms:Decrypt", + "s3express:PutEncryptionConfiguration" + ] + }, + "list": { + "permissions": [ + "s3express:ListAllMyDirectoryBuckets" + ] + }, + "delete": { + "permissions": [ + "s3express:DeleteBucket", + "s3express:ListAllMyDirectoryBuckets" + ] + } + }, "typeName": "AWS::S3Express::DirectoryBucket", + "readOnlyProperties": [ + "/properties/Arn", + "/properties/AvailabilityZoneName" + ], "description": "Resource Type definition for AWS::S3Express::DirectoryBucket.", + "createOnlyProperties": [ + "/properties/BucketName", + "/properties/LocationName", + "/properties/DataRedundancy" + ], "additionalProperties": false, + "primaryIdentifier": [ + "/properties/BucketName" + ], + "definitions": { + "Arn": { + "description": "The Amazon Resource Name (ARN) of the specified bucket.", + "type": "string" + } + }, "properties": { "BucketName": { - "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", - "maxLength": 63, "pattern": "^[a-z0-9][a-z0-9//.//-]*[a-z0-9]$", - "type": "string" + "description": "Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.", + "type": "string", + "maxLength": 63 }, - "LocationName": { - "description": "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", + "BucketEncryption": {}, + "AvailabilityZoneName": { + "examples": [ + "us-east-1f" + ], + "description": "Returns the code for the Availability Zone where the directory bucket was created.", "type": "string" }, "DataRedundancy": { @@ -21,62 +86,19 @@ ] }, "Arn": { - "$ref": "#/definitions/Arn", - "description": "Returns the Amazon Resource Name (ARN) of the specified bucket.", "examples": [ "arn:aws:s3express:us-west-2:123456789123:bucket/DOC-EXAMPLE-BUCKET--usw2-az1--x-s3" - ] - } - }, - "definitions": { - "Arn": { - "description": "The Amazon Resource Name (ARN) of the specified bucket.", + ], + "description": "Returns the Amazon Resource Name (ARN) of the specified bucket.", + "$ref": "#/definitions/Arn" + }, + "LocationName": { + "description": "Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'.", "type": "string" } }, - "createOnlyProperties": [ - "/properties/BucketName", - "/properties/LocationName", - "/properties/DataRedundancy" - ], - "primaryIdentifier": [ - "/properties/BucketName" - ], - "readOnlyProperties": [ - "/properties/Arn" - ], - "tagging": { - "taggable": false, - "tagOnCreate": false, - "tagUpdatable": false, - "cloudFormationSystemTags": false - }, "required": [ "LocationName", "DataRedundancy" - ], - "handlers": { - "create": { - "permissions": [ - "s3express:CreateBucket", - "s3express:ListAllMyDirectoryBuckets" - ] - }, - "read": { - "permissions": [ - "s3express:ListAllMyDirectoryBuckets" - ] - }, - "delete": { - "permissions": [ - "s3express:DeleteBucket", - "s3express:ListAllMyDirectoryBuckets" - ] - }, - "list": { - "permissions": [ - "s3express:ListAllMyDirectoryBuckets" - ] - } - } + ] } diff --git a/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json b/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json index f84dfc7f0..553a4efe3 100644 --- a/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json +++ b/internal/service/cloudformation/schemas/AWS_Synthetics_Canary.json @@ -6,7 +6,7 @@ "Name": { "description": "Name of the canary.", "type": "string", - "pattern": "^[0-9a-z_\\-]{1,21}$" + "pattern": "^[0-9a-z_\\-]{1,255}$" }, "Id": { "description": "Id of the canary", @@ -75,6 +75,14 @@ "DeleteLambdaResourcesOnCanaryDeletion": { "description": "Deletes associated lambda resources created by Synthetics if set to True. Default is False", "type": "boolean" + }, + "ResourcesToReplicateTags": { + "type": "array", + "uniqueItems": true, + "description": "List of resources which canary tags should be replicated to.", + "items": { + "$ref": "#/definitions/ResourceToTag" + } } }, "definitions": { @@ -272,6 +280,13 @@ "description": "KMS key Arn for encrypting artifacts when uploading to S3. You must specify KMS key Arn for SSE_KMS encryption mode only." } } + }, + "ResourceToTag": { + "type": "string", + "description": "Specifies which resources canary tags should be replicated to.", + "enum": [ + "lambda-function" + ] } }, "required": [ @@ -306,6 +321,7 @@ "lambda:GetLayerVersionByArn", "lambda:GetLayerVersion", "lambda:PublishLayerVersion", + "lambda:TagResource", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", @@ -332,6 +348,9 @@ "lambda:GetLayerVersionByArn", "lambda:GetLayerVersion", "lambda:PublishLayerVersion", + "lambda:ListTags", + "lambda:TagResource", + "lambda:UntagResource", "iam:PassRole" ] }, @@ -376,6 +395,7 @@ "/properties/Code/Script", "/properties/DeleteLambdaResourcesOnCanaryDeletion", "/properties/StartCanaryAfterCreation", + "/properties/ResourcesToReplicateTags", "/properties/RunConfig/EnvironmentVariables", "/properties/VisualReference" ], diff --git a/internal/service/cloudformation/schemas/AWS_XRay_Group.json b/internal/service/cloudformation/schemas/AWS_XRay_Group.json index 5401a3b80..9379a6725 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_Group.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_Group.json @@ -76,7 +76,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "xray:TagResource", + "xray:UntagResource" + ] }, "handlers": { "create": { diff --git a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json index b7907006e..c1bf38df9 100644 --- a/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json +++ b/internal/service/cloudformation/schemas/AWS_XRay_SamplingRule.json @@ -238,7 +238,11 @@ "tagOnCreate": true, "tagUpdatable": true, "cloudFormationSystemTags": true, - "tagProperty": "/properties/Tags" + "tagProperty": "/properties/Tags", + "permissions": [ + "xray:TagResource", + "xray:UntagResource" + ] }, "handlers": { "create": { From 022fef3738620f5914b26e32a33fb29b819c9dbd Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 13:57:56 -0400 Subject: [PATCH 08/20] Build with Go 1.22.7. --- .go-version | 2 +- go.mod | 2 +- tools/go.mod | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.go-version b/.go-version index 013173af5..87b26e8b1 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.22.6 +1.22.7 diff --git a/go.mod b/go.mod index b75796199..af57155e8 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/hashicorp/terraform-provider-awscc -go 1.22.6 +go 1.22.7 require ( github.com/aws/aws-sdk-go-v2 v1.30.5 diff --git a/tools/go.mod b/tools/go.mod index 166c23d9e..ecafb1a53 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -1,6 +1,6 @@ module github.com/hashicorp/terraform-provider-awscc/tools -go 1.22.6 +go 1.22.7 require ( github.com/client9/misspell v0.3.4 From 4264fdf8f7b2b7e8516afcbbd6c630b48dd05b09 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 14:23:19 -0400 Subject: [PATCH 09/20] 09/18/2024 CloudFormation schemas in us-east-1; New schemas. --- internal/provider/all_schemas.hcl | 17 +- .../available_schemas.2024-09-18.hcl | 4486 +++++++++++++++++ internal/provider/import_examples_gen.json | 15 + internal/provider/resources.go | 3 + internal/provider/singular_data_sources.go | 3 + .../schemas/AWS_Connect_AgentStatus.json | 160 + .../AWS_Connect_UserHierarchyStructure.json | 190 + .../AWS_DataZone_EnvironmentActions.json | 156 + 8 files changed, 5029 insertions(+), 1 deletion(-) create mode 100644 internal/provider/generators/allschemas/available_schemas.2024-09-18.hcl create mode 100644 internal/service/cloudformation/schemas/AWS_Connect_AgentStatus.json create mode 100644 internal/service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json create mode 100644 internal/service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json diff --git a/internal/provider/all_schemas.hcl b/internal/provider/all_schemas.hcl index 4c89e28eb..95c5105e3 100644 --- a/internal/provider/all_schemas.hcl +++ b/internal/provider/all_schemas.hcl @@ -10,7 +10,7 @@ meta_schema { path = "../service/cloudformation/meta-schemas/provider.definition.schema.v1.json" } -# 1053 CloudFormation resource types schemas are available for use with the Cloud Control API. +# 1057 CloudFormation resource types schemas are available for use with the Cloud Control API. resource_schema "aws_acmpca_certificate" { cloudformation_type_name = "AWS::ACMPCA::Certificate" @@ -984,6 +984,11 @@ 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" } @@ -1094,6 +1099,11 @@ resource_schema "aws_connect_user_hierarchy_group" { 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 @@ -1287,6 +1297,11 @@ resource_schema "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 diff --git a/internal/provider/generators/allschemas/available_schemas.2024-09-18.hcl b/internal/provider/generators/allschemas/available_schemas.2024-09-18.hcl new file mode 100644 index 000000000..b38507209 --- /dev/null +++ b/internal/provider/generators/allschemas/available_schemas.2024-09-18.hcl @@ -0,0 +1,4486 @@ +# 1057 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_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_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_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_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_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_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_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_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_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_database" { + cloudformation_type_name = "AWS::Glue::Database" +} + +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_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_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_nimblestudio_launch_profile" { + cloudformation_type_name = "AWS::NimbleStudio::LaunchProfile" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_streaming_image" { + cloudformation_type_name = "AWS::NimbleStudio::StreamingImage" + suppress_plural_data_source_generation = true +} + +resource_schema "aws_nimblestudio_studio" { + cloudformation_type_name = "AWS::NimbleStudio::Studio" +} + +resource_schema "aws_nimblestudio_studio_component" { + cloudformation_type_name = "AWS::NimbleStudio::StudioComponent" + suppress_plural_data_source_generation = true +} + +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_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" +} + +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_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_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_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_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_secret" { + cloudformation_type_name = "AWS::SecretsManager::Secret" +} + +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_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_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 78aedee56..8b6155cbe 100644 --- a/internal/provider/import_examples_gen.json +++ b/internal/provider/import_examples_gen.json @@ -1004,6 +1004,11 @@ "identifier": ["QueryName"], "path": "./examples/resources/awscc_config_stored_query/import.sh" }, + { + "resource": "awscc_connect_agent_status", + "identifier": ["AgentStatusArn"], + "path": "./examples/resources/awscc_connect_agent_status/import.sh" + }, { "resource": "awscc_connect_approved_origin", "identifier": ["InstanceId","Origin"], @@ -1099,6 +1104,11 @@ "identifier": ["UserHierarchyGroupArn"], "path": "./examples/resources/awscc_connect_user_hierarchy_group/import.sh" }, + { + "resource": "awscc_connect_user_hierarchy_structure", + "identifier": ["UserHierarchyStructureArn"], + "path": "./examples/resources/awscc_connect_user_hierarchy_structure/import.sh" + }, { "resource": "awscc_connect_view", "identifier": ["ViewArn"], @@ -1279,6 +1289,11 @@ "identifier": ["DomainId","Id"], "path": "./examples/resources/awscc_datazone_environment/import.sh" }, + { + "resource": "awscc_datazone_environment_actions", + "identifier": ["DomainId","EnvironmentId","Id"], + "path": "./examples/resources/awscc_datazone_environment_actions/import.sh" + }, { "resource": "awscc_datazone_environment_blueprint_configuration", "identifier": ["DomainId","EnvironmentBlueprintId"], diff --git a/internal/provider/resources.go b/internal/provider/resources.go index 59f563ac1..ab051d087 100644 --- a/internal/provider/resources.go +++ b/internal/provider/resources.go @@ -203,6 +203,7 @@ //go:generate go run generators/resource/main.go -resource awscc_config_conformance_pack -cfschema ../service/cloudformation/schemas/AWS_Config_ConformancePack.json -package config -- ../aws/config/conformance_pack_resource_gen.go ../aws/config/conformance_pack_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_config_organization_conformance_pack -cfschema ../service/cloudformation/schemas/AWS_Config_OrganizationConformancePack.json -package config -- ../aws/config/organization_conformance_pack_resource_gen.go ../aws/config/organization_conformance_pack_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_config_stored_query -cfschema ../service/cloudformation/schemas/AWS_Config_StoredQuery.json -package config -- ../aws/config/stored_query_resource_gen.go ../aws/config/stored_query_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_agent_status -cfschema ../service/cloudformation/schemas/AWS_Connect_AgentStatus.json -package connect -- ../aws/connect/agent_status_resource_gen.go ../aws/connect/agent_status_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_approved_origin -cfschema ../service/cloudformation/schemas/AWS_Connect_ApprovedOrigin.json -package connect -- ../aws/connect/approved_origin_resource_gen.go ../aws/connect/approved_origin_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_contact_flow -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlow.json -package connect -- ../aws/connect/contact_flow_resource_gen.go ../aws/connect/contact_flow_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_contact_flow_module -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlowModule.json -package connect -- ../aws/connect/contact_flow_module_resource_gen.go ../aws/connect/contact_flow_module_resource_gen_test.go @@ -222,6 +223,7 @@ //go:generate go run generators/resource/main.go -resource awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect -- ../aws/connect/traffic_distribution_group_resource_gen.go ../aws/connect/traffic_distribution_group_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_user -cfschema ../service/cloudformation/schemas/AWS_Connect_User.json -package connect -- ../aws/connect/user_resource_gen.go ../aws/connect/user_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_user_hierarchy_group -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyGroup.json -package connect -- ../aws/connect/user_hierarchy_group_resource_gen.go ../aws/connect/user_hierarchy_group_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_connect_user_hierarchy_structure -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json -package connect -- ../aws/connect/user_hierarchy_structure_resource_gen.go ../aws/connect/user_hierarchy_structure_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_view -cfschema ../service/cloudformation/schemas/AWS_Connect_View.json -package connect -- ../aws/connect/view_resource_gen.go ../aws/connect/view_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connect_view_version -cfschema ../service/cloudformation/schemas/AWS_Connect_ViewVersion.json -package connect -- ../aws/connect/view_version_resource_gen.go ../aws/connect/view_version_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_connectcampaigns_campaign -cfschema ../service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json -package connectcampaigns -- ../aws/connectcampaigns/campaign_resource_gen.go ../aws/connectcampaigns/campaign_resource_gen_test.go @@ -258,6 +260,7 @@ //go:generate go run generators/resource/main.go -resource awscc_datazone_data_source -cfschema ../service/cloudformation/schemas/AWS_DataZone_DataSource.json -package datazone -- ../aws/datazone/data_source_resource_gen.go ../aws/datazone/data_source_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_domain -cfschema ../service/cloudformation/schemas/AWS_DataZone_Domain.json -package datazone -- ../aws/datazone/domain_resource_gen.go ../aws/datazone/domain_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_environment -cfschema ../service/cloudformation/schemas/AWS_DataZone_Environment.json -package datazone -- ../aws/datazone/environment_resource_gen.go ../aws/datazone/environment_resource_gen_test.go +//go:generate go run generators/resource/main.go -resource awscc_datazone_environment_actions -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json -package datazone -- ../aws/datazone/environment_actions_resource_gen.go ../aws/datazone/environment_actions_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_environment_blueprint_configuration -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentBlueprintConfiguration.json -package datazone -- ../aws/datazone/environment_blueprint_configuration_resource_gen.go ../aws/datazone/environment_blueprint_configuration_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_environment_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentProfile.json -package datazone -- ../aws/datazone/environment_profile_resource_gen.go ../aws/datazone/environment_profile_resource_gen_test.go //go:generate go run generators/resource/main.go -resource awscc_datazone_group_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_GroupProfile.json -package datazone -- ../aws/datazone/group_profile_resource_gen.go ../aws/datazone/group_profile_resource_gen_test.go diff --git a/internal/provider/singular_data_sources.go b/internal/provider/singular_data_sources.go index ebf160a06..7eb0add14 100644 --- a/internal/provider/singular_data_sources.go +++ b/internal/provider/singular_data_sources.go @@ -203,6 +203,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_config_conformance_pack -cfschema ../service/cloudformation/schemas/AWS_Config_ConformancePack.json -package config ../aws/config/conformance_pack_singular_data_source_gen.go ../aws/config/conformance_pack_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_config_organization_conformance_pack -cfschema ../service/cloudformation/schemas/AWS_Config_OrganizationConformancePack.json -package config ../aws/config/organization_conformance_pack_singular_data_source_gen.go ../aws/config/organization_conformance_pack_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_config_stored_query -cfschema ../service/cloudformation/schemas/AWS_Config_StoredQuery.json -package config ../aws/config/stored_query_singular_data_source_gen.go ../aws/config/stored_query_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_agent_status -cfschema ../service/cloudformation/schemas/AWS_Connect_AgentStatus.json -package connect ../aws/connect/agent_status_singular_data_source_gen.go ../aws/connect/agent_status_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_approved_origin -cfschema ../service/cloudformation/schemas/AWS_Connect_ApprovedOrigin.json -package connect ../aws/connect/approved_origin_singular_data_source_gen.go ../aws/connect/approved_origin_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_contact_flow -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlow.json -package connect ../aws/connect/contact_flow_singular_data_source_gen.go ../aws/connect/contact_flow_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_contact_flow_module -cfschema ../service/cloudformation/schemas/AWS_Connect_ContactFlowModule.json -package connect ../aws/connect/contact_flow_module_singular_data_source_gen.go ../aws/connect/contact_flow_module_singular_data_source_gen_test.go @@ -222,6 +223,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_traffic_distribution_group -cfschema ../service/cloudformation/schemas/AWS_Connect_TrafficDistributionGroup.json -package connect ../aws/connect/traffic_distribution_group_singular_data_source_gen.go ../aws/connect/traffic_distribution_group_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_user -cfschema ../service/cloudformation/schemas/AWS_Connect_User.json -package connect ../aws/connect/user_singular_data_source_gen.go ../aws/connect/user_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_user_hierarchy_group -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyGroup.json -package connect ../aws/connect/user_hierarchy_group_singular_data_source_gen.go ../aws/connect/user_hierarchy_group_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_user_hierarchy_structure -cfschema ../service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json -package connect ../aws/connect/user_hierarchy_structure_singular_data_source_gen.go ../aws/connect/user_hierarchy_structure_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_view -cfschema ../service/cloudformation/schemas/AWS_Connect_View.json -package connect ../aws/connect/view_singular_data_source_gen.go ../aws/connect/view_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connect_view_version -cfschema ../service/cloudformation/schemas/AWS_Connect_ViewVersion.json -package connect ../aws/connect/view_version_singular_data_source_gen.go ../aws/connect/view_version_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_connectcampaigns_campaign -cfschema ../service/cloudformation/schemas/AWS_ConnectCampaigns_Campaign.json -package connectcampaigns ../aws/connectcampaigns/campaign_singular_data_source_gen.go ../aws/connectcampaigns/campaign_singular_data_source_gen_test.go @@ -258,6 +260,7 @@ //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_data_source -cfschema ../service/cloudformation/schemas/AWS_DataZone_DataSource.json -package datazone ../aws/datazone/data_source_singular_data_source_gen.go ../aws/datazone/data_source_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_domain -cfschema ../service/cloudformation/schemas/AWS_DataZone_Domain.json -package datazone ../aws/datazone/domain_singular_data_source_gen.go ../aws/datazone/domain_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment -cfschema ../service/cloudformation/schemas/AWS_DataZone_Environment.json -package datazone ../aws/datazone/environment_singular_data_source_gen.go ../aws/datazone/environment_singular_data_source_gen_test.go +//go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment_actions -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json -package datazone ../aws/datazone/environment_actions_singular_data_source_gen.go ../aws/datazone/environment_actions_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment_blueprint_configuration -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentBlueprintConfiguration.json -package datazone ../aws/datazone/environment_blueprint_configuration_singular_data_source_gen.go ../aws/datazone/environment_blueprint_configuration_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_environment_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_EnvironmentProfile.json -package datazone ../aws/datazone/environment_profile_singular_data_source_gen.go ../aws/datazone/environment_profile_singular_data_source_gen_test.go //go:generate go run generators/singular-data-source/main.go -data-source awscc_datazone_group_profile -cfschema ../service/cloudformation/schemas/AWS_DataZone_GroupProfile.json -package datazone ../aws/datazone/group_profile_singular_data_source_gen.go ../aws/datazone/group_profile_singular_data_source_gen_test.go diff --git a/internal/service/cloudformation/schemas/AWS_Connect_AgentStatus.json b/internal/service/cloudformation/schemas/AWS_Connect_AgentStatus.json new file mode 100644 index 000000000..67490796d --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Connect_AgentStatus.json @@ -0,0 +1,160 @@ +{ + "typeName": "AWS::Connect::AgentStatus", + "description": "Resource Type definition for AWS::Connect::AgentStatus", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "Tag": { + "description": "A key-value pair to associate with a resource.", + "type": "object", + "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, + "pattern": "" + }, + "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 -.", + "maxLength": 256 + } + }, + "required": [ + "Key", + "Value" + ], + "additionalProperties": false + } + }, + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$" + }, + "AgentStatusArn": { + "description": "The Amazon Resource Name (ARN) of the agent status.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-state/[-a-zA-Z0-9]*$" + }, + "Description": { + "description": "The description of the status.", + "type": "string", + "minLength": 1, + "maxLength": 250 + }, + "Name": { + "description": "The name of the status.", + "type": "string", + "minLength": 1, + "maxLength": 127 + }, + "DisplayOrder": { + "description": "The display order of the status.", + "type": "integer", + "minimum": 1, + "maximum": 50 + }, + "State": { + "type": "string", + "description": "The state of the status.", + "enum": [ + "ENABLED", + "DISABLED" + ] + }, + "Type": { + "type": "string", + "description": "The type of agent status.", + "enum": [ + "ROUTABLE", + "CUSTOM", + "OFFLINE" + ] + }, + "ResetOrderNumber": { + "type": "boolean", + "description": "A number indicating the reset order of the agent status." + }, + "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" + } + }, + "LastModifiedRegion": { + "description": "Last modified region.", + "type": "string", + "pattern": "[a-z]{2}(-[a-z]+){1,2}(-[0-9])?" + }, + "LastModifiedTime": { + "description": "Last modified time.", + "type": "number" + } + }, + "required": [ + "InstanceArn", + "Name", + "State" + ], + "handlers": { + "create": { + "permissions": [ + "connect:CreateAgentStatus", + "connect:TagResource", + "connect:ListAgentStatuses" + ] + }, + "read": { + "permissions": [ + "connect:DescribeAgentStatus" + ] + }, + "delete": { + "permissions": [] + }, + "update": { + "permissions": [ + "connect:UpdateAgentStatus", + "connect:UntagResource", + "connect:TagResource" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "InstanceArn": { + "$ref": "resource-schema.json#/properties/InstanceArn" + } + }, + "required": [ + "InstanceArn" + ] + }, + "permissions": [ + "connect:ListAgentStatuses" + ] + } + }, + "additionalProperties": false, + "primaryIdentifier": [ + "/properties/AgentStatusArn" + ], + "readOnlyProperties": [ + "/properties/AgentStatusArn", + "/properties/LastModifiedRegion", + "/properties/LastModifiedTime" + ], + "tagging": { + "taggable": true, + "tagOnCreate": true, + "tagUpdatable": true, + "cloudFormationSystemTags": true, + "tagProperty": "/properties/Tags" + } +} diff --git a/internal/service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json b/internal/service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json new file mode 100644 index 000000000..1169abd1c --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_Connect_UserHierarchyStructure.json @@ -0,0 +1,190 @@ +{ + "typeName": "AWS::Connect::UserHierarchyStructure", + "description": "Resource Type definition for AWS::Connect::UserHierarchyStructure", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-connect", + "definitions": { + "Name": { + "description": "The name of the hierarchy level.", + "type": "string" + }, + "HierarchyLevelArn": { + "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$" + }, + "HierarchyLevelId": { + "description": "The identifier of the hierarchy level.", + "type": "string" + }, + "LevelOne": { + "description": "Information about level one.", + "type": "object", + "additionalProperties": false, + "properties": { + "HierarchyLevelArn": { + "$ref": "#/definitions/HierarchyLevelArn" + }, + "HierarchyLevelId": { + "$ref": "#/definitions/HierarchyLevelId" + }, + "Name": { + "$ref": "#/definitions/Name" + } + }, + "required": [ + "Name" + ] + }, + "LevelTwo": { + "description": "Information about level two.", + "type": "object", + "additionalProperties": false, + "properties": { + "HierarchyLevelArn": { + "$ref": "#/definitions/HierarchyLevelArn" + }, + "HierarchyLevelId": { + "$ref": "#/definitions/HierarchyLevelId" + }, + "Name": { + "$ref": "#/definitions/Name" + } + }, + "required": [ + "Name" + ] + }, + "LevelThree": { + "description": "Information about level three.", + "type": "object", + "additionalProperties": false, + "properties": { + "HierarchyLevelArn": { + "$ref": "#/definitions/HierarchyLevelArn" + }, + "HierarchyLevelId": { + "$ref": "#/definitions/HierarchyLevelId" + }, + "Name": { + "$ref": "#/definitions/Name" + } + }, + "required": [ + "Name" + ] + }, + "LevelFour": { + "description": "Information about level four.", + "type": "object", + "additionalProperties": false, + "properties": { + "HierarchyLevelArn": { + "$ref": "#/definitions/HierarchyLevelArn" + }, + "HierarchyLevelId": { + "$ref": "#/definitions/HierarchyLevelId" + }, + "Name": { + "$ref": "#/definitions/Name" + } + }, + "required": [ + "Name" + ] + }, + "LevelFive": { + "description": "Information about level five.", + "type": "object", + "additionalProperties": false, + "properties": { + "HierarchyLevelArn": { + "$ref": "#/definitions/HierarchyLevelArn" + }, + "HierarchyLevelId": { + "$ref": "#/definitions/HierarchyLevelId" + }, + "Name": { + "$ref": "#/definitions/Name" + } + }, + "required": [ + "Name" + ] + } + }, + "properties": { + "InstanceArn": { + "description": "The identifier of the Amazon Connect instance.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$" + }, + "UserHierarchyStructureArn": { + "description": "The identifier of the User Hierarchy Structure.", + "type": "string", + "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/user-hierarchy-structure" + }, + "UserHierarchyStructure": { + "description": "Information about the hierarchy structure.", + "type": "object", + "additionalProperties": false, + "properties": { + "LevelOne": { + "$ref": "#/definitions/LevelOne" + }, + "LevelTwo": { + "$ref": "#/definitions/LevelTwo" + }, + "LevelThree": { + "$ref": "#/definitions/LevelThree" + }, + "LevelFour": { + "$ref": "#/definitions/LevelFour" + }, + "LevelFive": { + "$ref": "#/definitions/LevelFive" + } + } + } + }, + "required": [ + "InstanceArn" + ], + "handlers": { + "create": { + "permissions": [ + "connect:UpdateUserHierarchyStructure" + ] + }, + "read": { + "permissions": [ + "connect:DescribeUserHierarchyStructure" + ] + }, + "delete": { + "permissions": [ + "connect:UpdateUserHierarchyStructure" + ] + }, + "update": { + "permissions": [ + "connect:UpdateUserHierarchyStructure" + ] + } + }, + "additionalProperties": false, + "createOnlyProperties": [ + "/properties/InstanceArn" + ], + "primaryIdentifier": [ + "/properties/UserHierarchyStructureArn" + ], + "readOnlyProperties": [ + "/properties/UserHierarchyStructureArn" + ], + "tagging": { + "taggable": false, + "tagOnCreate": false, + "tagUpdatable": false, + "cloudFormationSystemTags": false + } +} diff --git a/internal/service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json b/internal/service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json new file mode 100644 index 000000000..aac08f9af --- /dev/null +++ b/internal/service/cloudformation/schemas/AWS_DataZone_EnvironmentActions.json @@ -0,0 +1,156 @@ +{ + "typeName": "AWS::DataZone::EnvironmentActions", + "description": "Definition of AWS::DataZone::EnvironmentActions Resource Type", + "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-datazone", + "definitions": { + "EnvironmentActionURI": { + "type": "string", + "description": "The URI of the console link specified as part of the environment action.", + "minLength": 1, + "maxLength": 2048 + }, + "AwsConsoleLinkParameters": { + "type": "object", + "description": "The parameters of the console link specified as part of the environment action", + "properties": { + "Uri": { + "$ref": "#/definitions/EnvironmentActionURI" + } + }, + "additionalProperties": false + } + }, + "properties": { + "Description": { + "type": "string", + "description": "The description of the Amazon DataZone environment action.", + "maxLength": 2048 + }, + "DomainId": { + "type": "string", + "description": "The identifier of the Amazon DataZone domain in which the environment is created.", + "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$" + }, + "DomainIdentifier": { + "type": "string", + "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", + "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$" + }, + "EnvironmentId": { + "type": "string", + "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + "pattern": "[a-zA-Z0-9_-]{1,36}$", + "maxLength": 36, + "minLength": 1 + }, + "EnvironmentIdentifier": { + "type": "string", + "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + "pattern": "[a-zA-Z0-9_-]{1,36}$", + "maxLength": 36, + "minLength": 1 + }, + "Id": { + "type": "string", + "description": "The ID of the Amazon DataZone environment action.", + "pattern": "^[a-zA-Z0-9_-]{1,36}$", + "maxLength": 36, + "minLength": 1 + }, + "Identifier": { + "type": "string", + "description": "The ID of the Amazon DataZone environment action.", + "pattern": "^[a-zA-Z0-9_-]{1,36}$", + "maxLength": 36, + "minLength": 1 + }, + "Name": { + "type": "string", + "description": "The name of the environment action.", + "maxLength": 64, + "minLength": 1, + "pattern": "^[\\w -]+$" + }, + "Parameters": { + "description": "The parameters of the environment action.", + "$ref": "#/definitions/AwsConsoleLinkParameters" + } + }, + "required": [ + "Name" + ], + "readOnlyProperties": [ + "/properties/DomainId", + "/properties/EnvironmentId", + "/properties/Id" + ], + "writeOnlyProperties": [ + "/properties/EnvironmentIdentifier", + "/properties/DomainIdentifier", + "/properties/Identifier" + ], + "createOnlyProperties": [ + "/properties/DomainIdentifier", + "/properties/EnvironmentIdentifier" + ], + "primaryIdentifier": [ + "/properties/DomainId", + "/properties/EnvironmentId", + "/properties/Id" + ], + "additionalIdentifiers": [ + [ + "/properties/EnvironmentIdentifier" + ] + ], + "tagging": { + "taggable": false + }, + "handlers": { + "create": { + "permissions": [ + "datazone:CreateEnvironmentAction", + "datazone:GetEnvironmentAction", + "datazone:DeleteEnvironmentAction" + ] + }, + "read": { + "permissions": [ + "datazone:GetEnvironmentAction" + ] + }, + "update": { + "permissions": [ + "datazone:UpdateEnvironmentAction", + "datazone:GetEnvironmentAction", + "datazone:DeleteEnvironmentAction" + ] + }, + "delete": { + "permissions": [ + "datazone:DeleteEnvironmentAction", + "datazone:GetEnvironmentAction" + ] + }, + "list": { + "handlerSchema": { + "properties": { + "DomainIdentifier": { + "$ref": "resource-schema.json#/properties/DomainIdentifier" + }, + "EnvironmentIdentifier": { + "$ref": "resource-schema.json#/properties/EnvironmentIdentifier" + } + }, + "required": [ + "DomainIdentifier", + "EnvironmentIdentifier" + ] + }, + "permissions": [ + "datazone:ListEnvironmentActions" + ] + } + }, + "additionalProperties": false +} From 0ef7581dd0d1b1ff2acef3716901375ebd9fd336 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 14:34:44 -0400 Subject: [PATCH 10/20] 09/18/2024 CloudFormation schemas in us-east-1; Generate Terraform resource schemas. --- .../aws/connect/agent_status_resource_gen.go | 337 +++++++++++++ .../connect/agent_status_resource_gen_test.go | 25 + .../user_hierarchy_structure_resource_gen.go | 466 ++++++++++++++++++ ...r_hierarchy_structure_resource_gen_test.go | 25 + .../environment_actions_resource_gen.go | 273 ++++++++++ .../environment_actions_resource_gen_test.go | 25 + .../aws/datazone/environment_resource_gen.go | 76 ++- .../aws/dms/instance_profile_resource_gen.go | 2 - internal/aws/ec2/subnet_resource_gen.go | 4 +- internal/aws/ec2/volume_resource_gen.go | 2 +- internal/aws/fms/policy_resource_gen.go | 8 +- .../aws/iotfleetwise/campaign_resource_gen.go | 220 ++++++++- .../signal_catalog_resource_gen.go | 4 +- .../code_signing_config_resource_gen.go | 72 +++ .../event_source_mapping_resource_gen.go | 99 +++- .../directory_bucket_resource_gen.go | 43 +- .../aws/synthetics/canary_resource_gen.go | 40 +- 17 files changed, 1691 insertions(+), 30 deletions(-) create mode 100644 internal/aws/connect/agent_status_resource_gen.go create mode 100644 internal/aws/connect/agent_status_resource_gen_test.go create mode 100644 internal/aws/connect/user_hierarchy_structure_resource_gen.go create mode 100644 internal/aws/connect/user_hierarchy_structure_resource_gen_test.go create mode 100644 internal/aws/datazone/environment_actions_resource_gen.go create mode 100644 internal/aws/datazone/environment_actions_resource_gen_test.go diff --git a/internal/aws/connect/agent_status_resource_gen.go b/internal/aws/connect/agent_status_resource_gen.go new file mode 100644 index 000000000..992bcd899 --- /dev/null +++ b/internal/aws/connect/agent_status_resource_gen.go @@ -0,0 +1,337 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package connect + +import ( + "context" + "regexp" + + "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_connect_agent_status", agentStatusResource) +} + +// agentStatusResource returns the Terraform awscc_connect_agent_status resource. +// This Terraform resource corresponds to the CloudFormation AWS::Connect::AgentStatus resource. +func agentStatusResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AgentStatusArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the agent status.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-state/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "agent_status_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the agent status.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the status.", + // "maxLength": 250, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the status.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 250), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DisplayOrder + // CloudFormation resource type schema: + // + // { + // "description": "The display order of the status.", + // "maximum": 50, + // "minimum": 1, + // "type": "integer" + // } + "display_order": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The display order of the status.", + Optional: true, + Computed: true, + Validators: []validator.Int64{ /*START VALIDATORS*/ + int64validator.Between(1, 50), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Int64{ /*START PLAN MODIFIERS*/ + int64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon Connect instance.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon Connect instance.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: LastModifiedRegion + // CloudFormation resource type schema: + // + // { + // "description": "Last modified region.", + // "pattern": "[a-z]{2}(-[a-z]+){1,2}(-[0-9])?", + // "type": "string" + // } + "last_modified_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Last modified region.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTime + // CloudFormation resource type schema: + // + // { + // "description": "Last modified time.", + // "type": "number" + // } + "last_modified_time": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Last modified time.", + Computed: true, + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the status.", + // "maxLength": 127, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the status.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 127), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: ResetOrderNumber + // CloudFormation resource type schema: + // + // { + // "description": "A number indicating the reset order of the agent status.", + // "type": "boolean" + // } + "reset_order_number": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A number indicating the reset order of the agent status.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Bool{ /*START PLAN MODIFIERS*/ + boolplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the status.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the status.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ENABLED", + "DISABLED", + ), + }, /*END VALIDATORS*/ + }, /*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, + // "pattern": "", + // "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, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "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.LengthAtMost(256), + fwvalidators.NotNullString(), + }, /*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*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of agent status.", + // "enum": [ + // "ROUTABLE", + // "CUSTOM", + // "OFFLINE" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of agent status.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ROUTABLE", + "CUSTOM", + "OFFLINE", + ), + }, /*END VALIDATORS*/ + 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 AWS::Connect::AgentStatus", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::AgentStatus").WithTerraformTypeName("awscc_connect_agent_status") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "agent_status_arn": "AgentStatusArn", + "description": "Description", + "display_order": "DisplayOrder", + "instance_arn": "InstanceArn", + "key": "Key", + "last_modified_region": "LastModifiedRegion", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "reset_order_number": "ResetOrderNumber", + "state": "State", + "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/connect/agent_status_resource_gen_test.go b/internal/aws/connect/agent_status_resource_gen_test.go new file mode 100644 index 000000000..fd35a1d35 --- /dev/null +++ b/internal/aws/connect/agent_status_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectAgentStatus_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::AgentStatus", "awscc_connect_agent_status", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/connect/user_hierarchy_structure_resource_gen.go b/internal/aws/connect/user_hierarchy_structure_resource_gen.go new file mode 100644 index 000000000..9d411b867 --- /dev/null +++ b/internal/aws/connect/user_hierarchy_structure_resource_gen.go @@ -0,0 +1,466 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package connect + +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/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_connect_user_hierarchy_structure", userHierarchyStructureResource) +} + +// userHierarchyStructureResource returns the Terraform awscc_connect_user_hierarchy_structure resource. +// This Terraform resource corresponds to the CloudFormation AWS::Connect::UserHierarchyStructure resource. +func userHierarchyStructureResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon Connect instance.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon Connect instance.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.RequiresReplace(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserHierarchyStructure + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Information about the hierarchy structure.", + // "properties": { + // "LevelFive": { + // "additionalProperties": false, + // "description": "Information about level five.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelFour": { + // "additionalProperties": false, + // "description": "Information about level four.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelOne": { + // "additionalProperties": false, + // "description": "Information about level one.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelThree": { + // "additionalProperties": false, + // "description": "Information about level three.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelTwo": { + // "additionalProperties": false, + // "description": "Information about level two.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "user_hierarchy_structure": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LevelFive + "level_five": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level five.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LevelFour + "level_four": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level four.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LevelOne + "level_one": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level one.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LevelThree + "level_three": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level three.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: LevelTwo + "level_two": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level two.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about the hierarchy structure.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: UserHierarchyStructureArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the User Hierarchy Structure.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/user-hierarchy-structure", + // "type": "string" + // } + "user_hierarchy_structure_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the User Hierarchy Structure.", + 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 AWS::Connect::UserHierarchyStructure", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::UserHierarchyStructure").WithTerraformTypeName("awscc_connect_user_hierarchy_structure") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "hierarchy_level_arn": "HierarchyLevelArn", + "hierarchy_level_id": "HierarchyLevelId", + "instance_arn": "InstanceArn", + "level_five": "LevelFive", + "level_four": "LevelFour", + "level_one": "LevelOne", + "level_three": "LevelThree", + "level_two": "LevelTwo", + "name": "Name", + "user_hierarchy_structure": "UserHierarchyStructure", + "user_hierarchy_structure_arn": "UserHierarchyStructureArn", + }) + + 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/connect/user_hierarchy_structure_resource_gen_test.go b/internal/aws/connect/user_hierarchy_structure_resource_gen_test.go new file mode 100644 index 000000000..94ae3f917 --- /dev/null +++ b/internal/aws/connect/user_hierarchy_structure_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectUserHierarchyStructure_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::UserHierarchyStructure", "awscc_connect_user_hierarchy_structure", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/datazone/environment_actions_resource_gen.go b/internal/aws/datazone/environment_actions_resource_gen.go new file mode 100644 index 000000000..8d8fa5f7f --- /dev/null +++ b/internal/aws/datazone/environment_actions_resource_gen.go @@ -0,0 +1,273 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/resource/main.go; DO NOT EDIT. + +package datazone + +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/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" +) + +func init() { + registry.AddResourceFactory("awscc_datazone_environment_actions", environmentActionsResource) +} + +// environmentActionsResource returns the Terraform awscc_datazone_environment_actions resource. +// This Terraform resource corresponds to the CloudFormation AWS::DataZone::EnvironmentActions resource. +func environmentActionsResource(ctx context.Context) (resource.Resource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the Amazon DataZone environment action.", + // "maxLength": 2048, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the Amazon DataZone environment action.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthAtMost(2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment is created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment would be created.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^dzd[-_][a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // DomainIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone environment in which the action is taking place", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: EnvironmentIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone environment in which the action is taking place", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 36), + stringvalidator.RegexMatches(regexp.MustCompile("[a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment action.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_actions_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment action.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: Identifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment action.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment action.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 36), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // Identifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the environment action.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[\\w -]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the environment action.", + Required: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 64), + stringvalidator.RegexMatches(regexp.MustCompile("^[\\w -]+$"), ""), + }, /*END VALIDATORS*/ + }, /*END ATTRIBUTE*/ + // Property: Parameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The parameters of the environment action.", + // "properties": { + // "Uri": { + // "description": "The URI of the console link specified as part of the environment action.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Uri + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URI of the console link specified as part of the environment action.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The parameters of the environment action.", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.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::DataZone::EnvironmentActions Resource Type", + Version: 1, + Attributes: attributes, + } + + var opts generic.ResourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::EnvironmentActions").WithTerraformTypeName("awscc_datazone_environment_actions") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "description": "Description", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_actions_id": "Id", + "environment_id": "EnvironmentId", + "environment_identifier": "EnvironmentIdentifier", + "identifier": "Identifier", + "name": "Name", + "parameters": "Parameters", + "uri": "Uri", + }) + + opts = opts.WithWriteOnlyPropertyPaths([]string{ + "/properties/EnvironmentIdentifier", + "/properties/DomainIdentifier", + "/properties/Identifier", + }) + 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/datazone/environment_actions_resource_gen_test.go b/internal/aws/datazone/environment_actions_resource_gen_test.go new file mode 100644 index 000000000..5cf64f99b --- /dev/null +++ b/internal/aws/datazone/environment_actions_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneEnvironmentActions_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::EnvironmentActions", "awscc_datazone_environment_actions", "test") + + td.ResourceTest(t, []resource.TestStep{ + { + Config: td.EmptyConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} diff --git a/internal/aws/datazone/environment_resource_gen.go b/internal/aws/datazone/environment_resource_gen.go index b72e98e4b..a47dbc4e2 100644 --- a/internal/aws/datazone/environment_resource_gen.go +++ b/internal/aws/datazone/environment_resource_gen.go @@ -144,6 +144,48 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { }, /*END PLAN MODIFIERS*/ // DomainIdentifier is a write-only property. }, /*END ATTRIBUTE*/ + // Property: EnvironmentAccountIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The AWS account in which the Amazon DataZone environment is created.", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "environment_account_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS account in which the Amazon DataZone environment is created.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^\\d{12}$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentAccountIdentifier is a write-only property. + }, /*END ATTRIBUTE*/ + // Property: EnvironmentAccountRegion + // CloudFormation resource type schema: + // + // { + // "description": "The AWS region in which the Amazon DataZone environment is created.", + // "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$", + // "type": "string" + // } + "environment_account_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS region in which the Amazon DataZone environment is created.", + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.RegexMatches(regexp.MustCompile("^[a-z]{2}-[a-z]{4,10}-\\d$"), ""), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentAccountRegion is a write-only property. + }, /*END ATTRIBUTE*/ // Property: EnvironmentBlueprintId // CloudFormation resource type schema: // @@ -164,7 +206,7 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { // // { // "description": "The ID of the environment profile with which the Amazon DataZone environment was created.", - // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "pattern": "^[a-zA-Z0-9_-]{0,36}$", // "type": "string" // } "environment_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -179,20 +221,38 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { // // { // "description": "The ID of the environment profile with which the Amazon DataZone environment would be created.", - // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "pattern": "^[a-zA-Z0-9_-]{0,36}$", // "type": "string" // } "environment_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ID of the environment profile with which the Amazon DataZone environment would be created.", - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{1,36}$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_-]{0,36}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ - stringplanmodifier.RequiresReplace(), + stringplanmodifier.UseStateForUnknown(), + stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ // EnvironmentProfileIdentifier is a write-only property. }, /*END ATTRIBUTE*/ + // Property: EnvironmentRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "Environment role arn for custom aws environment permissions", + // "type": "string" + // } + "environment_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Environment role arn for custom aws environment permissions", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // EnvironmentRoleArn is a write-only property. + }, /*END ATTRIBUTE*/ // Property: GlossaryTerms // CloudFormation resource type schema: // @@ -433,10 +493,13 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { "description": "Description", "domain_id": "DomainId", "domain_identifier": "DomainIdentifier", + "environment_account_identifier": "EnvironmentAccountIdentifier", + "environment_account_region": "EnvironmentAccountRegion", "environment_blueprint_id": "EnvironmentBlueprintId", "environment_id": "Id", "environment_profile_id": "EnvironmentProfileId", "environment_profile_identifier": "EnvironmentProfileIdentifier", + "environment_role_arn": "EnvironmentRoleArn", "glossary_terms": "GlossaryTerms", "name": "Name", "project_id": "ProjectId", @@ -452,6 +515,9 @@ func environmentResource(ctx context.Context) (resource.Resource, error) { "/properties/EnvironmentProfileIdentifier", "/properties/ProjectIdentifier", "/properties/DomainIdentifier", + "/properties/EnvironmentAccountIdentifier", + "/properties/EnvironmentAccountRegion", + "/properties/EnvironmentRoleArn", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/dms/instance_profile_resource_gen.go b/internal/aws/dms/instance_profile_resource_gen.go index 07e46e861..9d0d15915 100644 --- a/internal/aws/dms/instance_profile_resource_gen.go +++ b/internal/aws/dms/instance_profile_resource_gen.go @@ -171,7 +171,6 @@ func instanceProfileResource(ctx context.Context) (resource.Resource, error) { // "description": "The property describes a network type for the instance profile.", // "enum": [ // "IPV4", - // "IPV6", // "DUAL" // ], // "type": "string" @@ -183,7 +182,6 @@ func instanceProfileResource(ctx context.Context) (resource.Resource, error) { Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "IPV4", - "IPV6", "DUAL", ), }, /*END VALIDATORS*/ diff --git a/internal/aws/ec2/subnet_resource_gen.go b/internal/aws/ec2/subnet_resource_gen.go index 87b882299..fddb06516 100644 --- a/internal/aws/ec2/subnet_resource_gen.go +++ b/internal/aws/ec2/subnet_resource_gen.go @@ -178,7 +178,7 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { // CloudFormation resource type schema: // // { - // "description": "The IPv6 network ranges for the subnet, in CIDR notation.", + // "description": "", // "items": { // "type": "string" // }, @@ -187,7 +187,7 @@ func subnetResource(ctx context.Context) (resource.Resource, error) { // } "ipv_6_cidr_blocks": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The IPv6 network ranges for the subnet, in CIDR notation.", + Description: "", Computed: true, PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ listplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/ec2/volume_resource_gen.go b/internal/aws/ec2/volume_resource_gen.go index d64c75b63..4d9edd5fc 100644 --- a/internal/aws/ec2/volume_resource_gen.go +++ b/internal/aws/ec2/volume_resource_gen.go @@ -168,7 +168,7 @@ func volumeResource(ctx context.Context) (resource.Resource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", + // "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "properties": { // "Key": { // "description": "The tag key.", diff --git a/internal/aws/fms/policy_resource_gen.go b/internal/aws/fms/policy_resource_gen.go index 45d69d386..9b13f46d1 100644 --- a/internal/aws/fms/policy_resource_gen.go +++ b/internal/aws/fms/policy_resource_gen.go @@ -558,7 +558,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { // }, // "Protocol": { // "description": "Protocol.", - // "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + // "pattern": "^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", // "type": "string" // }, // "RuleAction": { @@ -654,7 +654,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { // }, // "Protocol": { // "description": "Protocol.", - // "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + // "pattern": "^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", // "type": "string" // }, // "RuleAction": { @@ -893,7 +893,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$"), ""), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ @@ -1067,7 +1067,7 @@ func policyResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$"), ""), fwvalidators.NotNullString(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ diff --git a/internal/aws/iotfleetwise/campaign_resource_gen.go b/internal/aws/iotfleetwise/campaign_resource_gen.go index fe84124b8..5a4261b3f 100644 --- a/internal/aws/iotfleetwise/campaign_resource_gen.go +++ b/internal/aws/iotfleetwise/campaign_resource_gen.go @@ -117,7 +117,7 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { // "additionalProperties": false, // "properties": { // "PeriodMs": { - // "maximum": 60000, + // "maximum": 86400000, // "minimum": 10000, // "type": "number" // } @@ -198,7 +198,7 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.Float64{ /*START VALIDATORS*/ - float64validator.Between(10000.000000, 60000.000000), + float64validator.Between(10000.000000, 86400000.000000), fwvalidators.NotNullFloat64(), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ @@ -763,6 +763,214 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { listplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: SignalsToFetch + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Actions": { + // "items": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "ConditionLanguageVersion": { + // "maximum": 1, + // "minimum": 1, + // "type": "number" + // }, + // "FullyQualifiedName": { + // "maxLength": 150, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_.]+$", + // "type": "string" + // }, + // "SignalFetchConfig": { + // "properties": { + // "ConditionBased": { + // "additionalProperties": false, + // "properties": { + // "ConditionExpression": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "TriggerMode": { + // "enum": [ + // "ALWAYS", + // "RISING_EDGE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ConditionExpression", + // "TriggerMode" + // ], + // "type": "object" + // }, + // "TimeBased": { + // "additionalProperties": false, + // "properties": { + // "ExecutionFrequencyMs": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "ExecutionFrequencyMs" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "Actions", + // "FullyQualifiedName", + // "SignalFetchConfig" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 0, + // "type": "array" + // } + "signals_to_fetch": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(1, 5), + listvalidator.ValueStringsAre( + stringvalidator.LengthBetween(1, 2048), + ), + fwvalidators.NotNullList(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: ConditionLanguageVersion + "condition_language_version": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.Between(1.000000, 1.000000), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: FullyQualifiedName + "fully_qualified_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 150), + stringvalidator.RegexMatches(regexp.MustCompile("^[a-zA-Z0-9_.]+$"), ""), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: SignalFetchConfig + "signal_fetch_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConditionBased + "condition_based": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConditionExpression + "condition_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.LengthBetween(1, 2048), + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: TriggerMode + "trigger_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + stringvalidator.OneOf( + "ALWAYS", + "RISING_EDGE", + ), + fwvalidators.NotNullString(), + }, /*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: TimeBased + "time_based": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExecutionFrequencyMs + "execution_frequency_ms": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Optional: true, + Computed: true, + Validators: []validator.Float64{ /*START VALIDATORS*/ + float64validator.AtLeast(1.000000), + fwvalidators.NotNullFloat64(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Float64{ /*START PLAN MODIFIERS*/ + float64planmodifier.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, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.SizeBetween(0, 10), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + generic.Multiset(), + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: SpoolingMode // CloudFormation resource type schema: // @@ -928,11 +1136,14 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "action": "Action", + "actions": "Actions", "arn": "Arn", "bucket_arn": "BucketArn", "collection_scheme": "CollectionScheme", "compression": "Compression", + "condition_based": "ConditionBased", "condition_based_collection_scheme": "ConditionBasedCollectionScheme", + "condition_expression": "ConditionExpression", "condition_language_version": "ConditionLanguageVersion", "creation_time": "CreationTime", "data_destination_configs": "DataDestinationConfigs", @@ -940,9 +1151,11 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { "data_format": "DataFormat", "description": "Description", "diagnostics_mode": "DiagnosticsMode", + "execution_frequency_ms": "ExecutionFrequencyMs", "execution_role_arn": "ExecutionRoleArn", "expiry_time": "ExpiryTime", "expression": "Expression", + "fully_qualified_name": "FullyQualifiedName", "key": "Key", "last_modification_time": "LastModificationTime", "max_sample_count": "MaxSampleCount", @@ -957,13 +1170,16 @@ func campaignResource(ctx context.Context) (resource.Resource, error) { "priority": "Priority", "s3_config": "S3Config", "signal_catalog_arn": "SignalCatalogArn", + "signal_fetch_config": "SignalFetchConfig", "signals_to_collect": "SignalsToCollect", + "signals_to_fetch": "SignalsToFetch", "spooling_mode": "SpoolingMode", "start_time": "StartTime", "status": "Status", "storage_compression_format": "StorageCompressionFormat", "tags": "Tags", "target_arn": "TargetArn", + "time_based": "TimeBased", "time_based_collection_scheme": "TimeBasedCollectionScheme", "timestream_config": "TimestreamConfig", "timestream_table_arn": "TimestreamTableArn", diff --git a/internal/aws/iotfleetwise/signal_catalog_resource_gen.go b/internal/aws/iotfleetwise/signal_catalog_resource_gen.go index 86e010873..725cfb8bb 100644 --- a/internal/aws/iotfleetwise/signal_catalog_resource_gen.go +++ b/internal/aws/iotfleetwise/signal_catalog_resource_gen.go @@ -425,7 +425,7 @@ func signalCatalogResource(ctx context.Context) (resource.Resource, error) { // }, // "type": "object" // }, - // "maxItems": 500, + // "maxItems": 5000, // "minItems": 1, // "type": "array", // "uniqueItems": true @@ -821,7 +821,7 @@ func signalCatalogResource(ctx context.Context) (resource.Resource, error) { Optional: true, Computed: true, Validators: []validator.Set{ /*START VALIDATORS*/ - setvalidator.SizeBetween(1, 500), + setvalidator.SizeBetween(1, 5000), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ setplanmodifier.UseStateForUnknown(), diff --git a/internal/aws/lambda/code_signing_config_resource_gen.go b/internal/aws/lambda/code_signing_config_resource_gen.go index d28e231b9..3359bfa29 100644 --- a/internal/aws/lambda/code_signing_config_resource_gen.go +++ b/internal/aws/lambda/code_signing_config_resource_gen.go @@ -15,12 +15,14 @@ import ( "github.com/hashicorp/terraform-plugin-framework/resource/schema" "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/stringdefault" "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() { @@ -173,6 +175,73 @@ func codeSigningConfigResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A list of tags to apply to CodeSigningConfig resource", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "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" + // }, + // "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: "A list of tags to apply to CodeSigningConfig resource", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ // Corresponds to CloudFormation primaryIdentifier. @@ -200,8 +269,11 @@ func codeSigningConfigResource(ctx context.Context) (resource.Resource, error) { "code_signing_config_id": "CodeSigningConfigId", "code_signing_policies": "CodeSigningPolicies", "description": "Description", + "key": "Key", "signing_profile_version_arns": "SigningProfileVersionArns", + "tags": "Tags", "untrusted_artifact_on_deployment": "UntrustedArtifactOnDeployment", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/lambda/event_source_mapping_resource_gen.go b/internal/aws/lambda/event_source_mapping_resource_gen.go index 0f3087067..c2f98c70b 100644 --- a/internal/aws/lambda/event_source_mapping_resource_gen.go +++ b/internal/aws/lambda/event_source_mapping_resource_gen.go @@ -20,11 +20,13 @@ import ( "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/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" ) func init() { @@ -286,6 +288,23 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) stringplanmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: EventSourceMappingArn + // CloudFormation resource type schema: + // + // { + // "description": "", + // "maxLength": 120, + // "minLength": 85, + // "pattern": "arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:event-source-mapping:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", + // "type": "string" + // } + "event_source_mapping_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: FilterCriteria // CloudFormation resource type schema: // @@ -379,7 +398,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + // "description": "(Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", // "items": { // "enum": [ // "ReportBatchItemFailures" @@ -393,7 +412,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // } "function_response_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + Description: "(Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", Optional: true, Computed: true, Validators: []validator.List{ /*START VALIDATORS*/ @@ -429,14 +448,14 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).", // "maxLength": 2048, // "minLength": 12, // "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).", Optional: true, Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ @@ -837,6 +856,74 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) float64planmodifier.RequiresReplaceIfConfigured(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "", + // "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" + // }, + // "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: "", + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.Set{ /*START PLAN MODIFIERS*/ + setplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: Topics // CloudFormation resource type schema: // @@ -924,6 +1011,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) "enabled": "Enabled", "endpoints": "Endpoints", "event_source_arn": "EventSourceArn", + "event_source_mapping_arn": "EventSourceMappingArn", "event_source_mapping_id": "Id", "filter_criteria": "FilterCriteria", "filters": "Filters", @@ -931,6 +1019,7 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) "function_name": "FunctionName", "function_response_types": "FunctionResponseTypes", "kafka_bootstrap_servers": "KafkaBootstrapServers", + "key": "Key", "kms_key_arn": "KmsKeyArn", "maximum_batching_window_in_seconds": "MaximumBatchingWindowInSeconds", "maximum_concurrency": "MaximumConcurrency", @@ -946,10 +1035,12 @@ func eventSourceMappingResource(ctx context.Context) (resource.Resource, error) "source_access_configurations": "SourceAccessConfigurations", "starting_position": "StartingPosition", "starting_position_timestamp": "StartingPositionTimestamp", + "tags": "Tags", "topics": "Topics", "tumbling_window_in_seconds": "TumblingWindowInSeconds", "type": "Type", "uri": "URI", + "value": "Value", }) opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) diff --git a/internal/aws/s3express/directory_bucket_resource_gen.go b/internal/aws/s3express/directory_bucket_resource_gen.go index 6c7ad71ef..6fd0d0ceb 100644 --- a/internal/aws/s3express/directory_bucket_resource_gen.go +++ b/internal/aws/s3express/directory_bucket_resource_gen.go @@ -9,6 +9,7 @@ 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" @@ -41,6 +42,34 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { stringplanmodifier.UseStateForUnknown(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: AvailabilityZoneName + // CloudFormation resource type schema: + // + // { + // "description": "Returns the code for the Availability Zone where the directory bucket was created.", + // "examples": [ + // "us-east-1f" + // ], + // "type": "string" + // } + "availability_zone_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Returns the code for the Availability Zone where the directory bucket was created.", + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ + // Property: BucketEncryption + // CloudFormation resource type schema: + // {} + "bucket_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Optional: true, + Computed: true, + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + }, /*END ATTRIBUTE*/ // Property: BucketName // CloudFormation resource type schema: // @@ -121,16 +150,18 @@ func directoryBucketResource(ctx context.Context) (resource.Resource, error) { opts = opts.WithCloudFormationTypeName("AWS::S3Express::DirectoryBucket").WithTerraformTypeName("awscc_s3express_directory_bucket") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "bucket_name": "BucketName", - "data_redundancy": "DataRedundancy", - "location_name": "LocationName", + "arn": "Arn", + "availability_zone_name": "AvailabilityZoneName", + "bucket_encryption": "BucketEncryption", + "bucket_name": "BucketName", + "data_redundancy": "DataRedundancy", + "location_name": "LocationName", }) - opts = opts.IsImmutableType(true) - opts = opts.WithCreateTimeoutInMinutes(0).WithDeleteTimeoutInMinutes(0) + opts = opts.WithUpdateTimeoutInMinutes(0) + v, err := generic.NewResource(ctx, opts...) if err != nil { diff --git a/internal/aws/synthetics/canary_resource_gen.go b/internal/aws/synthetics/canary_resource_gen.go index 5ed4ea321..b1451b641 100644 --- a/internal/aws/synthetics/canary_resource_gen.go +++ b/internal/aws/synthetics/canary_resource_gen.go @@ -9,6 +9,7 @@ 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" @@ -271,19 +272,52 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { // // { // "description": "Name of the canary.", - // "pattern": "^[0-9a-z_\\-]{1,21}$", + // "pattern": "^[0-9a-z_\\-]{1,255}$", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Name of the canary.", Required: true, Validators: []validator.String{ /*START VALIDATORS*/ - stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-z_\\-]{1,21}$"), ""), + stringvalidator.RegexMatches(regexp.MustCompile("^[0-9a-z_\\-]{1,255}$"), ""), }, /*END VALIDATORS*/ PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ stringplanmodifier.RequiresReplace(), }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ + // Property: ResourcesToReplicateTags + // CloudFormation resource type schema: + // + // { + // "description": "List of resources which canary tags should be replicated to.", + // "items": { + // "description": "Specifies which resources canary tags should be replicated to.", + // "enum": [ + // "lambda-function" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "resources_to_replicate_tags": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of resources which canary tags should be replicated to.", + Optional: true, + Computed: true, + Validators: []validator.List{ /*START VALIDATORS*/ + listvalidator.UniqueValues(), + listvalidator.ValueStringsAre( + stringvalidator.OneOf( + "lambda-function", + ), + ), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.List{ /*START PLAN MODIFIERS*/ + listplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ + // ResourcesToReplicateTags is a write-only property. + }, /*END ATTRIBUTE*/ // Property: RunConfig // CloudFormation resource type schema: // @@ -737,6 +771,7 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { "kms_key_arn": "KmsKeyArn", "memory_in_mb": "MemoryInMB", "name": "Name", + "resources_to_replicate_tags": "ResourcesToReplicateTags", "run_config": "RunConfig", "runtime_version": "RuntimeVersion", "s3_bucket": "S3Bucket", @@ -767,6 +802,7 @@ func canaryResource(ctx context.Context) (resource.Resource, error) { "/properties/Code/Script", "/properties/DeleteLambdaResourcesOnCanaryDeletion", "/properties/StartCanaryAfterCreation", + "/properties/ResourcesToReplicateTags", "/properties/RunConfig/EnvironmentVariables", "/properties/VisualReference", }) From 79788fad2ac11ec761e9aaa7be5fdd45d5a5d380 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 15:04:20 -0400 Subject: [PATCH 11/20] 09/18/2024 CloudFormation schemas in us-east-1; Generate Terraform data source schemas. --- .../agent_status_singular_data_source_gen.go | 243 +++++++++++++ ...nt_status_singular_data_source_gen_test.go | 36 ++ ...rchy_structure_singular_data_source_gen.go | 327 ++++++++++++++++++ ...structure_singular_data_source_gen_test.go | 36 ++ ...onment_actions_singular_data_source_gen.go | 194 +++++++++++ ...t_actions_singular_data_source_gen_test.go | 36 ++ .../environment_singular_data_source_gen.go | 42 ++- ...stance_profile_singular_data_source_gen.go | 1 - .../ec2/subnet_singular_data_source_gen.go | 4 +- .../ec2/volume_singular_data_source_gen.go | 2 +- .../fms/policy_singular_data_source_gen.go | 4 +- .../campaign_singular_data_source_gen.go | 141 +++++++- ...signal_catalog_singular_data_source_gen.go | 2 +- ...signing_config_singular_data_source_gen.go | 51 +++ ...source_mapping_singular_data_source_gen.go | 75 +++- ...rectory_bucket_singular_data_source_gen.go | 32 +- .../canary_singular_data_source_gen.go | 23 +- 17 files changed, 1230 insertions(+), 19 deletions(-) create mode 100644 internal/aws/connect/agent_status_singular_data_source_gen.go create mode 100644 internal/aws/connect/agent_status_singular_data_source_gen_test.go create mode 100644 internal/aws/connect/user_hierarchy_structure_singular_data_source_gen.go create mode 100644 internal/aws/connect/user_hierarchy_structure_singular_data_source_gen_test.go create mode 100644 internal/aws/datazone/environment_actions_singular_data_source_gen.go create mode 100644 internal/aws/datazone/environment_actions_singular_data_source_gen_test.go diff --git a/internal/aws/connect/agent_status_singular_data_source_gen.go b/internal/aws/connect/agent_status_singular_data_source_gen.go new file mode 100644 index 000000000..0935f7f14 --- /dev/null +++ b/internal/aws/connect/agent_status_singular_data_source_gen.go @@ -0,0 +1,243 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package connect + +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_connect_agent_status", agentStatusDataSource) +} + +// agentStatusDataSource returns the Terraform awscc_connect_agent_status data source. +// This Terraform data source corresponds to the CloudFormation AWS::Connect::AgentStatus resource. +func agentStatusDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: AgentStatusArn + // CloudFormation resource type schema: + // + // { + // "description": "The Amazon Resource Name (ARN) of the agent status.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-state/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "agent_status_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the agent status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the status.", + // "maxLength": 250, + // "minLength": 1, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DisplayOrder + // CloudFormation resource type schema: + // + // { + // "description": "The display order of the status.", + // "maximum": 50, + // "minimum": 1, + // "type": "integer" + // } + "display_order": schema.Int64Attribute{ /*START ATTRIBUTE*/ + Description: "The display order of the status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon Connect instance.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon Connect instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastModifiedRegion + // CloudFormation resource type schema: + // + // { + // "description": "Last modified region.", + // "pattern": "[a-z]{2}(-[a-z]+){1,2}(-[0-9])?", + // "type": "string" + // } + "last_modified_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Last modified region.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LastModifiedTime + // CloudFormation resource type schema: + // + // { + // "description": "Last modified time.", + // "type": "number" + // } + "last_modified_time": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Description: "Last modified time.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the status.", + // "maxLength": 127, + // "minLength": 1, + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ResetOrderNumber + // CloudFormation resource type schema: + // + // { + // "description": "A number indicating the reset order of the agent status.", + // "type": "boolean" + // } + "reset_order_number": schema.BoolAttribute{ /*START ATTRIBUTE*/ + Description: "A number indicating the reset order of the agent status.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: State + // CloudFormation resource type schema: + // + // { + // "description": "The state of the status.", + // "enum": [ + // "ENABLED", + // "DISABLED" + // ], + // "type": "string" + // } + "state": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The state of the status.", + 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, + // "pattern": "", + // "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, + // "type": "string" + // } + // }, + // "required": [ + // "Key", + // "Value" + // ], + // "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*/ + // Property: Type + // CloudFormation resource type schema: + // + // { + // "description": "The type of agent status.", + // "enum": [ + // "ROUTABLE", + // "CUSTOM", + // "OFFLINE" + // ], + // "type": "string" + // } + "type": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The type of agent status.", + 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::Connect::AgentStatus", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::AgentStatus").WithTerraformTypeName("awscc_connect_agent_status") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "agent_status_arn": "AgentStatusArn", + "description": "Description", + "display_order": "DisplayOrder", + "instance_arn": "InstanceArn", + "key": "Key", + "last_modified_region": "LastModifiedRegion", + "last_modified_time": "LastModifiedTime", + "name": "Name", + "reset_order_number": "ResetOrderNumber", + "state": "State", + "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/connect/agent_status_singular_data_source_gen_test.go b/internal/aws/connect/agent_status_singular_data_source_gen_test.go new file mode 100644 index 000000000..bdf25ec76 --- /dev/null +++ b/internal/aws/connect/agent_status_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectAgentStatusDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::AgentStatus", "awscc_connect_agent_status", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSConnectAgentStatusDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::AgentStatus", "awscc_connect_agent_status", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/connect/user_hierarchy_structure_singular_data_source_gen.go b/internal/aws/connect/user_hierarchy_structure_singular_data_source_gen.go new file mode 100644 index 000000000..5f1708489 --- /dev/null +++ b/internal/aws/connect/user_hierarchy_structure_singular_data_source_gen.go @@ -0,0 +1,327 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package connect + +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_connect_user_hierarchy_structure", userHierarchyStructureDataSource) +} + +// userHierarchyStructureDataSource returns the Terraform awscc_connect_user_hierarchy_structure data source. +// This Terraform data source corresponds to the CloudFormation AWS::Connect::UserHierarchyStructure resource. +func userHierarchyStructureDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: InstanceArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon Connect instance.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*$", + // "type": "string" + // } + "instance_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon Connect instance.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserHierarchyStructure + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "Information about the hierarchy structure.", + // "properties": { + // "LevelFive": { + // "additionalProperties": false, + // "description": "Information about level five.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelFour": { + // "additionalProperties": false, + // "description": "Information about level four.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelOne": { + // "additionalProperties": false, + // "description": "Information about level one.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelThree": { + // "additionalProperties": false, + // "description": "Information about level three.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // }, + // "LevelTwo": { + // "additionalProperties": false, + // "description": "Information about level two.", + // "properties": { + // "HierarchyLevelArn": { + // "description": "The Amazon Resource Name (ARN) of the hierarchy level.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/agent-group-level/[-0-9]*$", + // "type": "string" + // }, + // "HierarchyLevelId": { + // "description": "The identifier of the hierarchy level.", + // "type": "string" + // }, + // "Name": { + // "description": "The name of the hierarchy level.", + // "type": "string" + // } + // }, + // "required": [ + // "Name" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + "user_hierarchy_structure": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: LevelFive + "level_five": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level five.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LevelFour + "level_four": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level four.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LevelOne + "level_one": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level one.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LevelThree + "level_three": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level three.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: LevelTwo + "level_two": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: HierarchyLevelArn + "hierarchy_level_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The Amazon Resource Name (ARN) of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: HierarchyLevelId + "hierarchy_level_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the hierarchy level.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about level two.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "Information about the hierarchy structure.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: UserHierarchyStructureArn + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the User Hierarchy Structure.", + // "pattern": "^arn:aws[-a-z0-9]*:connect:[-a-z0-9]*:[0-9]{12}:instance/[-a-zA-Z0-9]*/user-hierarchy-structure", + // "type": "string" + // } + "user_hierarchy_structure_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the User Hierarchy Structure.", + 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::Connect::UserHierarchyStructure", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::Connect::UserHierarchyStructure").WithTerraformTypeName("awscc_connect_user_hierarchy_structure") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "hierarchy_level_arn": "HierarchyLevelArn", + "hierarchy_level_id": "HierarchyLevelId", + "instance_arn": "InstanceArn", + "level_five": "LevelFive", + "level_four": "LevelFour", + "level_one": "LevelOne", + "level_three": "LevelThree", + "level_two": "LevelTwo", + "name": "Name", + "user_hierarchy_structure": "UserHierarchyStructure", + "user_hierarchy_structure_arn": "UserHierarchyStructureArn", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/connect/user_hierarchy_structure_singular_data_source_gen_test.go b/internal/aws/connect/user_hierarchy_structure_singular_data_source_gen_test.go new file mode 100644 index 000000000..fb05969b9 --- /dev/null +++ b/internal/aws/connect/user_hierarchy_structure_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 connect_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSConnectUserHierarchyStructureDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::UserHierarchyStructure", "awscc_connect_user_hierarchy_structure", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSConnectUserHierarchyStructureDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::Connect::UserHierarchyStructure", "awscc_connect_user_hierarchy_structure", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datazone/environment_actions_singular_data_source_gen.go b/internal/aws/datazone/environment_actions_singular_data_source_gen.go new file mode 100644 index 000000000..70b45c9b2 --- /dev/null +++ b/internal/aws/datazone/environment_actions_singular_data_source_gen.go @@ -0,0 +1,194 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +// Code generated by generators/singular-data-source/main.go; DO NOT EDIT. + +package datazone + +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_datazone_environment_actions", environmentActionsDataSource) +} + +// environmentActionsDataSource returns the Terraform awscc_datazone_environment_actions data source. +// This Terraform data source corresponds to the CloudFormation AWS::DataZone::EnvironmentActions resource. +func environmentActionsDataSource(ctx context.Context) (datasource.DataSource, error) { + attributes := map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Description + // CloudFormation resource type schema: + // + // { + // "description": "The description of the Amazon DataZone environment action.", + // "maxLength": 2048, + // "type": "string" + // } + "description": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The description of the Amazon DataZone environment action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment is created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: DomainIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone domain in which the environment would be created.", + // "pattern": "^dzd[-_][a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "domain_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone domain in which the environment would be created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentId + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone environment in which the action is taking place", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The identifier of the Amazon DataZone environment in which the action is taking place", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The identifier of the Amazon DataZone environment in which the action is taking place", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Id + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment action.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "environment_actions_id": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Identifier + // CloudFormation resource type schema: + // + // { + // "description": "The ID of the Amazon DataZone environment action.", + // "maxLength": 36, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "type": "string" + // } + "identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The ID of the Amazon DataZone environment action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Name + // CloudFormation resource type schema: + // + // { + // "description": "The name of the environment action.", + // "maxLength": 64, + // "minLength": 1, + // "pattern": "^[\\w -]+$", + // "type": "string" + // } + "name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The name of the environment action.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: Parameters + // CloudFormation resource type schema: + // + // { + // "additionalProperties": false, + // "description": "The parameters of the environment action.", + // "properties": { + // "Uri": { + // "description": "The URI of the console link specified as part of the environment action.", + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // } + // }, + // "type": "object" + // } + "parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Uri + "uri": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The URI of the console link specified as part of the environment action.", + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Description: "The parameters of the environment action.", + 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::DataZone::EnvironmentActions", + Attributes: attributes, + } + + var opts generic.DataSourceOptions + + opts = opts.WithCloudFormationTypeName("AWS::DataZone::EnvironmentActions").WithTerraformTypeName("awscc_datazone_environment_actions") + opts = opts.WithTerraformSchema(schema) + opts = opts.WithAttributeNameMap(map[string]string{ + "description": "Description", + "domain_id": "DomainId", + "domain_identifier": "DomainIdentifier", + "environment_actions_id": "Id", + "environment_id": "EnvironmentId", + "environment_identifier": "EnvironmentIdentifier", + "identifier": "Identifier", + "name": "Name", + "parameters": "Parameters", + "uri": "Uri", + }) + + v, err := generic.NewSingularDataSource(ctx, opts...) + + if err != nil { + return nil, err + } + + return v, nil +} diff --git a/internal/aws/datazone/environment_actions_singular_data_source_gen_test.go b/internal/aws/datazone/environment_actions_singular_data_source_gen_test.go new file mode 100644 index 000000000..d8f5de4f0 --- /dev/null +++ b/internal/aws/datazone/environment_actions_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 datazone_test + +import ( + "regexp" + "testing" + + "github.com/hashicorp/terraform-plugin-testing/helper/resource" + "github.com/hashicorp/terraform-provider-awscc/internal/acctest" +) + +func TestAccAWSDataZoneEnvironmentActionsDataSource_basic(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::EnvironmentActions", "awscc_datazone_environment_actions", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.EmptyDataSourceConfig(), + ExpectError: regexp.MustCompile("Missing required argument"), + }, + }) +} + +func TestAccAWSDataZoneEnvironmentActionsDataSource_NonExistent(t *testing.T) { + td := acctest.NewTestData(t, "AWS::DataZone::EnvironmentActions", "awscc_datazone_environment_actions", "test") + + td.DataSourceTest(t, []resource.TestStep{ + { + Config: td.DataSourceWithNonExistentIDConfig(), + ExpectError: regexp.MustCompile("Not Found"), + }, + }) +} diff --git a/internal/aws/datazone/environment_singular_data_source_gen.go b/internal/aws/datazone/environment_singular_data_source_gen.go index 4d103de0e..3a9629c7a 100644 --- a/internal/aws/datazone/environment_singular_data_source_gen.go +++ b/internal/aws/datazone/environment_singular_data_source_gen.go @@ -108,6 +108,30 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { Description: "The identifier of the Amazon DataZone domain in which the environment would be created.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EnvironmentAccountIdentifier + // CloudFormation resource type schema: + // + // { + // "description": "The AWS account in which the Amazon DataZone environment is created.", + // "pattern": "^\\d{12}$", + // "type": "string" + // } + "environment_account_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS account in which the Amazon DataZone environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: EnvironmentAccountRegion + // CloudFormation resource type schema: + // + // { + // "description": "The AWS region in which the Amazon DataZone environment is created.", + // "pattern": "^[a-z]{2}-[a-z]{4,10}-\\d$", + // "type": "string" + // } + "environment_account_region": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "The AWS region in which the Amazon DataZone environment is created.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: EnvironmentBlueprintId // CloudFormation resource type schema: // @@ -125,7 +149,7 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "description": "The ID of the environment profile with which the Amazon DataZone environment was created.", - // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "pattern": "^[a-zA-Z0-9_-]{0,36}$", // "type": "string" // } "environment_profile_id": schema.StringAttribute{ /*START ATTRIBUTE*/ @@ -137,13 +161,24 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "description": "The ID of the environment profile with which the Amazon DataZone environment would be created.", - // "pattern": "^[a-zA-Z0-9_-]{1,36}$", + // "pattern": "^[a-zA-Z0-9_-]{0,36}$", // "type": "string" // } "environment_profile_identifier": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "The ID of the environment profile with which the Amazon DataZone environment would be created.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EnvironmentRoleArn + // CloudFormation resource type schema: + // + // { + // "description": "Environment role arn for custom aws environment permissions", + // "type": "string" + // } + "environment_role_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Environment role arn for custom aws environment permissions", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: GlossaryTerms // CloudFormation resource type schema: // @@ -328,10 +363,13 @@ func environmentDataSource(ctx context.Context) (datasource.DataSource, error) { "description": "Description", "domain_id": "DomainId", "domain_identifier": "DomainIdentifier", + "environment_account_identifier": "EnvironmentAccountIdentifier", + "environment_account_region": "EnvironmentAccountRegion", "environment_blueprint_id": "EnvironmentBlueprintId", "environment_id": "Id", "environment_profile_id": "EnvironmentProfileId", "environment_profile_identifier": "EnvironmentProfileIdentifier", + "environment_role_arn": "EnvironmentRoleArn", "glossary_terms": "GlossaryTerms", "name": "Name", "project_id": "ProjectId", diff --git a/internal/aws/dms/instance_profile_singular_data_source_gen.go b/internal/aws/dms/instance_profile_singular_data_source_gen.go index 3869d9b5f..09855e5db 100644 --- a/internal/aws/dms/instance_profile_singular_data_source_gen.go +++ b/internal/aws/dms/instance_profile_singular_data_source_gen.go @@ -121,7 +121,6 @@ func instanceProfileDataSource(ctx context.Context) (datasource.DataSource, erro // "description": "The property describes a network type for the instance profile.", // "enum": [ // "IPV4", - // "IPV6", // "DUAL" // ], // "type": "string" diff --git a/internal/aws/ec2/subnet_singular_data_source_gen.go b/internal/aws/ec2/subnet_singular_data_source_gen.go index 2deeb5047..d17babf39 100644 --- a/internal/aws/ec2/subnet_singular_data_source_gen.go +++ b/internal/aws/ec2/subnet_singular_data_source_gen.go @@ -126,7 +126,7 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { // CloudFormation resource type schema: // // { - // "description": "The IPv6 network ranges for the subnet, in CIDR notation.", + // "description": "", // "items": { // "type": "string" // }, @@ -135,7 +135,7 @@ func subnetDataSource(ctx context.Context) (datasource.DataSource, error) { // } "ipv_6_cidr_blocks": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "The IPv6 network ranges for the subnet, in CIDR notation.", + Description: "", Computed: true, }, /*END ATTRIBUTE*/ // Property: Ipv6IpamPoolId diff --git a/internal/aws/ec2/volume_singular_data_source_gen.go b/internal/aws/ec2/volume_singular_data_source_gen.go index b1d5766ee..8ca82415c 100644 --- a/internal/aws/ec2/volume_singular_data_source_gen.go +++ b/internal/aws/ec2/volume_singular_data_source_gen.go @@ -129,7 +129,7 @@ func volumeDataSource(ctx context.Context) (datasource.DataSource, error) { // "insertionOrder": false, // "items": { // "additionalProperties": false, - // "description": "Specifies a tag. For more information, see [Add tags to a resource](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#cloudformation-add-tag-specifications).", + // "description": "Specifies a tag. For more information, see [Resource tags](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html).", // "properties": { // "Key": { // "description": "The tag key.", diff --git a/internal/aws/fms/policy_singular_data_source_gen.go b/internal/aws/fms/policy_singular_data_source_gen.go index dc60545aa..5736c2dcd 100644 --- a/internal/aws/fms/policy_singular_data_source_gen.go +++ b/internal/aws/fms/policy_singular_data_source_gen.go @@ -420,7 +420,7 @@ func policyDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "Protocol": { // "description": "Protocol.", - // "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + // "pattern": "^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", // "type": "string" // }, // "RuleAction": { @@ -516,7 +516,7 @@ func policyDataSource(ctx context.Context) (datasource.DataSource, error) { // }, // "Protocol": { // "description": "Protocol.", - // "pattern": "^(tcp|udp|icmp|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", + // "pattern": "^(tcp|udp|icmp|-1|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))$", // "type": "string" // }, // "RuleAction": { diff --git a/internal/aws/iotfleetwise/campaign_singular_data_source_gen.go b/internal/aws/iotfleetwise/campaign_singular_data_source_gen.go index 376aedc8f..33c460552 100644 --- a/internal/aws/iotfleetwise/campaign_singular_data_source_gen.go +++ b/internal/aws/iotfleetwise/campaign_singular_data_source_gen.go @@ -87,7 +87,7 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { // "additionalProperties": false, // "properties": { // "PeriodMs": { - // "maximum": 60000, + // "maximum": 86400000, // "minimum": 10000, // "type": "number" // } @@ -477,6 +477,137 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { }, /*END NESTED OBJECT*/ Computed: true, }, /*END ATTRIBUTE*/ + // Property: SignalsToFetch + // CloudFormation resource type schema: + // + // { + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "properties": { + // "Actions": { + // "items": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "maxItems": 5, + // "minItems": 1, + // "type": "array" + // }, + // "ConditionLanguageVersion": { + // "maximum": 1, + // "minimum": 1, + // "type": "number" + // }, + // "FullyQualifiedName": { + // "maxLength": 150, + // "minLength": 1, + // "pattern": "^[a-zA-Z0-9_.]+$", + // "type": "string" + // }, + // "SignalFetchConfig": { + // "properties": { + // "ConditionBased": { + // "additionalProperties": false, + // "properties": { + // "ConditionExpression": { + // "maxLength": 2048, + // "minLength": 1, + // "type": "string" + // }, + // "TriggerMode": { + // "enum": [ + // "ALWAYS", + // "RISING_EDGE" + // ], + // "type": "string" + // } + // }, + // "required": [ + // "ConditionExpression", + // "TriggerMode" + // ], + // "type": "object" + // }, + // "TimeBased": { + // "additionalProperties": false, + // "properties": { + // "ExecutionFrequencyMs": { + // "minimum": 1, + // "type": "number" + // } + // }, + // "required": [ + // "ExecutionFrequencyMs" + // ], + // "type": "object" + // } + // }, + // "type": "object" + // } + // }, + // "required": [ + // "Actions", + // "FullyQualifiedName", + // "SignalFetchConfig" + // ], + // "type": "object" + // }, + // "maxItems": 10, + // "minItems": 0, + // "type": "array" + // } + "signals_to_fetch": schema.ListNestedAttribute{ /*START ATTRIBUTE*/ + NestedObject: schema.NestedAttributeObject{ /*START NESTED OBJECT*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: Actions + "actions": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: ConditionLanguageVersion + "condition_language_version": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: FullyQualifiedName + "fully_qualified_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: SignalFetchConfig + "signal_fetch_config": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConditionBased + "condition_based": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ConditionExpression + "condition_expression": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TriggerMode + "trigger_mode": schema.StringAttribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: TimeBased + "time_based": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ + Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ + // Property: ExecutionFrequencyMs + "execution_frequency_ms": schema.Float64Attribute{ /*START ATTRIBUTE*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + Computed: true, + }, /*END ATTRIBUTE*/ + }, /*END SCHEMA*/ + }, /*END NESTED OBJECT*/ + Computed: true, + }, /*END ATTRIBUTE*/ // Property: SpoolingMode // CloudFormation resource type schema: // @@ -590,11 +721,14 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ "action": "Action", + "actions": "Actions", "arn": "Arn", "bucket_arn": "BucketArn", "collection_scheme": "CollectionScheme", "compression": "Compression", + "condition_based": "ConditionBased", "condition_based_collection_scheme": "ConditionBasedCollectionScheme", + "condition_expression": "ConditionExpression", "condition_language_version": "ConditionLanguageVersion", "creation_time": "CreationTime", "data_destination_configs": "DataDestinationConfigs", @@ -602,9 +736,11 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { "data_format": "DataFormat", "description": "Description", "diagnostics_mode": "DiagnosticsMode", + "execution_frequency_ms": "ExecutionFrequencyMs", "execution_role_arn": "ExecutionRoleArn", "expiry_time": "ExpiryTime", "expression": "Expression", + "fully_qualified_name": "FullyQualifiedName", "key": "Key", "last_modification_time": "LastModificationTime", "max_sample_count": "MaxSampleCount", @@ -619,13 +755,16 @@ func campaignDataSource(ctx context.Context) (datasource.DataSource, error) { "priority": "Priority", "s3_config": "S3Config", "signal_catalog_arn": "SignalCatalogArn", + "signal_fetch_config": "SignalFetchConfig", "signals_to_collect": "SignalsToCollect", + "signals_to_fetch": "SignalsToFetch", "spooling_mode": "SpoolingMode", "start_time": "StartTime", "status": "Status", "storage_compression_format": "StorageCompressionFormat", "tags": "Tags", "target_arn": "TargetArn", + "time_based": "TimeBased", "time_based_collection_scheme": "TimeBasedCollectionScheme", "timestream_config": "TimestreamConfig", "timestream_table_arn": "TimestreamTableArn", diff --git a/internal/aws/iotfleetwise/signal_catalog_singular_data_source_gen.go b/internal/aws/iotfleetwise/signal_catalog_singular_data_source_gen.go index 26f635c08..a3584f5ac 100644 --- a/internal/aws/iotfleetwise/signal_catalog_singular_data_source_gen.go +++ b/internal/aws/iotfleetwise/signal_catalog_singular_data_source_gen.go @@ -369,7 +369,7 @@ func signalCatalogDataSource(ctx context.Context) (datasource.DataSource, error) // }, // "type": "object" // }, - // "maxItems": 500, + // "maxItems": 5000, // "minItems": 1, // "type": "array", // "uniqueItems": true diff --git a/internal/aws/lambda/code_signing_config_singular_data_source_gen.go b/internal/aws/lambda/code_signing_config_singular_data_source_gen.go index 46b374173..cb8584940 100644 --- a/internal/aws/lambda/code_signing_config_singular_data_source_gen.go +++ b/internal/aws/lambda/code_signing_config_singular_data_source_gen.go @@ -130,6 +130,54 @@ func codeSigningConfigDataSource(ctx context.Context) (datasource.DataSource, er Description: "A description of the CodeSigningConfig", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "A list of tags to apply to CodeSigningConfig resource", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "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" + // }, + // "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: "A list of tags to apply to CodeSigningConfig resource", + Computed: true, + }, /*END ATTRIBUTE*/ } /*END SCHEMA*/ attributes["id"] = schema.StringAttribute{ @@ -152,8 +200,11 @@ func codeSigningConfigDataSource(ctx context.Context) (datasource.DataSource, er "code_signing_config_id": "CodeSigningConfigId", "code_signing_policies": "CodeSigningPolicies", "description": "Description", + "key": "Key", "signing_profile_version_arns": "SigningProfileVersionArns", + "tags": "Tags", "untrusted_artifact_on_deployment": "UntrustedArtifactOnDeployment", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go b/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go index 5db124ce1..2cd447789 100644 --- a/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go +++ b/internal/aws/lambda/event_source_mapping_singular_data_source_gen.go @@ -193,6 +193,20 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e Description: "The Amazon Resource Name (ARN) of the event source.\n + *Amazon Kinesis* ? The ARN of the data stream or a stream consumer.\n + *Amazon DynamoDB Streams* ? The ARN of the stream.\n + *Amazon Simple Queue Service* ? The ARN of the queue.\n + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).\n + *Amazon MQ* ? The ARN of the broker.\n + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: EventSourceMappingArn + // CloudFormation resource type schema: + // + // { + // "description": "", + // "maxLength": 120, + // "minLength": 85, + // "pattern": "arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso([a-z]?)))?-[a-z]+-\\d{1}:\\d{12}:event-source-mapping:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}", + // "type": "string" + // } + "event_source_mapping_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: FilterCriteria // CloudFormation resource type schema: // @@ -262,7 +276,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + // "description": "(Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", // "items": { // "enum": [ // "ReportBatchItemFailures" @@ -276,7 +290,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // } "function_response_types": schema.ListAttribute{ /*START ATTRIBUTE*/ ElementType: types.StringType, - Description: "(Streams and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", + Description: "(Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.\n Valid Values: ``ReportBatchItemFailures``", Computed: true, }, /*END ATTRIBUTE*/ // Property: Id @@ -297,14 +311,14 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e // CloudFormation resource type schema: // // { - // "description": "", + // "description": "The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).", // "maxLength": 2048, // "minLength": 12, // "pattern": "(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()", // "type": "string" // } "kms_key_arn": schema.StringAttribute{ /*START ATTRIBUTE*/ - Description: "", + Description: "The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).", Computed: true, }, /*END ATTRIBUTE*/ // Property: MaximumBatchingWindowInSeconds @@ -566,6 +580,55 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e Description: "With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: Tags + // CloudFormation resource type schema: + // + // { + // "description": "", + // "insertionOrder": false, + // "items": { + // "additionalProperties": false, + // "description": "", + // "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" + // }, + // "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: "", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: Topics // CloudFormation resource type schema: // @@ -629,6 +692,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e "enabled": "Enabled", "endpoints": "Endpoints", "event_source_arn": "EventSourceArn", + "event_source_mapping_arn": "EventSourceMappingArn", "event_source_mapping_id": "Id", "filter_criteria": "FilterCriteria", "filters": "Filters", @@ -636,6 +700,7 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e "function_name": "FunctionName", "function_response_types": "FunctionResponseTypes", "kafka_bootstrap_servers": "KafkaBootstrapServers", + "key": "Key", "kms_key_arn": "KmsKeyArn", "maximum_batching_window_in_seconds": "MaximumBatchingWindowInSeconds", "maximum_concurrency": "MaximumConcurrency", @@ -651,10 +716,12 @@ func eventSourceMappingDataSource(ctx context.Context) (datasource.DataSource, e "source_access_configurations": "SourceAccessConfigurations", "starting_position": "StartingPosition", "starting_position_timestamp": "StartingPositionTimestamp", + "tags": "Tags", "topics": "Topics", "tumbling_window_in_seconds": "TumblingWindowInSeconds", "type": "Type", "uri": "URI", + "value": "Value", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/s3express/directory_bucket_singular_data_source_gen.go b/internal/aws/s3express/directory_bucket_singular_data_source_gen.go index 0fe4cc4a1..d42bc1504 100644 --- a/internal/aws/s3express/directory_bucket_singular_data_source_gen.go +++ b/internal/aws/s3express/directory_bucket_singular_data_source_gen.go @@ -8,6 +8,7 @@ package s3express 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" @@ -33,6 +34,27 @@ func directoryBucketDataSource(ctx context.Context) (datasource.DataSource, erro Description: "Returns the Amazon Resource Name (ARN) of the specified bucket.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: AvailabilityZoneName + // CloudFormation resource type schema: + // + // { + // "description": "Returns the code for the Availability Zone where the directory bucket was created.", + // "examples": [ + // "us-east-1f" + // ], + // "type": "string" + // } + "availability_zone_name": schema.StringAttribute{ /*START ATTRIBUTE*/ + Description: "Returns the code for the Availability Zone where the directory bucket was created.", + Computed: true, + }, /*END ATTRIBUTE*/ + // Property: BucketEncryption + // CloudFormation resource type schema: + // {} + "bucket_encryption": schema.StringAttribute{ /*START ATTRIBUTE*/ + CustomType: jsontypes.NormalizedType{}, + Computed: true, + }, /*END ATTRIBUTE*/ // Property: BucketName // CloudFormation resource type schema: // @@ -88,10 +110,12 @@ func directoryBucketDataSource(ctx context.Context) (datasource.DataSource, erro opts = opts.WithCloudFormationTypeName("AWS::S3Express::DirectoryBucket").WithTerraformTypeName("awscc_s3express_directory_bucket") opts = opts.WithTerraformSchema(schema) opts = opts.WithAttributeNameMap(map[string]string{ - "arn": "Arn", - "bucket_name": "BucketName", - "data_redundancy": "DataRedundancy", - "location_name": "LocationName", + "arn": "Arn", + "availability_zone_name": "AvailabilityZoneName", + "bucket_encryption": "BucketEncryption", + "bucket_name": "BucketName", + "data_redundancy": "DataRedundancy", + "location_name": "LocationName", }) v, err := generic.NewSingularDataSource(ctx, opts...) diff --git a/internal/aws/synthetics/canary_singular_data_source_gen.go b/internal/aws/synthetics/canary_singular_data_source_gen.go index 874cfed7d..dfa6c99ab 100644 --- a/internal/aws/synthetics/canary_singular_data_source_gen.go +++ b/internal/aws/synthetics/canary_singular_data_source_gen.go @@ -206,13 +206,33 @@ func canaryDataSource(ctx context.Context) (datasource.DataSource, error) { // // { // "description": "Name of the canary.", - // "pattern": "^[0-9a-z_\\-]{1,21}$", + // "pattern": "^[0-9a-z_\\-]{1,255}$", // "type": "string" // } "name": schema.StringAttribute{ /*START ATTRIBUTE*/ Description: "Name of the canary.", Computed: true, }, /*END ATTRIBUTE*/ + // Property: ResourcesToReplicateTags + // CloudFormation resource type schema: + // + // { + // "description": "List of resources which canary tags should be replicated to.", + // "items": { + // "description": "Specifies which resources canary tags should be replicated to.", + // "enum": [ + // "lambda-function" + // ], + // "type": "string" + // }, + // "type": "array", + // "uniqueItems": true + // } + "resources_to_replicate_tags": schema.ListAttribute{ /*START ATTRIBUTE*/ + ElementType: types.StringType, + Description: "List of resources which canary tags should be replicated to.", + Computed: true, + }, /*END ATTRIBUTE*/ // Property: RunConfig // CloudFormation resource type schema: // @@ -555,6 +575,7 @@ func canaryDataSource(ctx context.Context) (datasource.DataSource, error) { "kms_key_arn": "KmsKeyArn", "memory_in_mb": "MemoryInMB", "name": "Name", + "resources_to_replicate_tags": "ResourcesToReplicateTags", "run_config": "RunConfig", "runtime_version": "RuntimeVersion", "s3_bucket": "S3Bucket", From 6a440af177aca020b1e0b82f067c044b33a25ce1 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 15:07:40 -0400 Subject: [PATCH 12/20] Run 'make docs-all'. --- docs/data-sources/connect_agent_status.md | 42 ++++++++ .../connect_user_hierarchy_structure.md | 86 ++++++++++++++++ docs/data-sources/datazone_environment.md | 3 + .../datazone_environment_actions.md | 39 ++++++++ docs/data-sources/ec2_subnet.md | 2 +- docs/data-sources/iotfleetwise_campaign.md | 38 ++++++++ .../lambda_code_signing_config.md | 10 ++ .../lambda_event_source_mapping.md | 15 ++- .../s3express_directory_bucket.md | 2 + docs/data-sources/synthetics_canary.md | 1 + docs/resources/connect_agent_status.md | 53 ++++++++++ .../connect_user_hierarchy_structure.md | 97 +++++++++++++++++++ docs/resources/datazone_environment.md | 5 +- .../resources/datazone_environment_actions.md | 50 ++++++++++ docs/resources/ec2_subnet.md | 2 +- docs/resources/iotfleetwise_campaign.md | 38 ++++++++ docs/resources/lambda_code_signing_config.md | 10 ++ docs/resources/lambda_event_source_mapping | 15 ++- docs/resources/lambda_event_source_mapping.md | 15 ++- docs/resources/s3express_directory_bucket.md | 2 + docs/resources/synthetics_canary.md | 1 + .../awscc_connect_agent_status/import.sh | 1 + .../import.sh | 1 + .../import.sh | 1 + 24 files changed, 520 insertions(+), 9 deletions(-) create mode 100644 docs/data-sources/connect_agent_status.md create mode 100644 docs/data-sources/connect_user_hierarchy_structure.md create mode 100644 docs/data-sources/datazone_environment_actions.md create mode 100644 docs/resources/connect_agent_status.md create mode 100644 docs/resources/connect_user_hierarchy_structure.md create mode 100644 docs/resources/datazone_environment_actions.md create mode 100644 examples/resources/awscc_connect_agent_status/import.sh create mode 100644 examples/resources/awscc_connect_user_hierarchy_structure/import.sh create mode 100644 examples/resources/awscc_datazone_environment_actions/import.sh diff --git a/docs/data-sources/connect_agent_status.md b/docs/data-sources/connect_agent_status.md new file mode 100644 index 000000000..89182f4cf --- /dev/null +++ b/docs/data-sources/connect_agent_status.md @@ -0,0 +1,42 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_agent_status Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Connect::AgentStatus +--- + +# awscc_connect_agent_status (Data Source) + +Data Source schema for AWS::Connect::AgentStatus + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `agent_status_arn` (String) The Amazon Resource Name (ARN) of the agent status. +- `description` (String) The description of the status. +- `display_order` (Number) The display order of the status. +- `instance_arn` (String) The identifier of the Amazon Connect instance. +- `last_modified_region` (String) Last modified region. +- `last_modified_time` (Number) Last modified time. +- `name` (String) The name of the status. +- `reset_order_number` (Boolean) A number indicating the reset order of the agent status. +- `state` (String) The state of the status. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of agent status. + + +### 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/connect_user_hierarchy_structure.md b/docs/data-sources/connect_user_hierarchy_structure.md new file mode 100644 index 000000000..892b918c2 --- /dev/null +++ b/docs/data-sources/connect_user_hierarchy_structure.md @@ -0,0 +1,86 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_user_hierarchy_structure Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::Connect::UserHierarchyStructure +--- + +# awscc_connect_user_hierarchy_structure (Data Source) + +Data Source schema for AWS::Connect::UserHierarchyStructure + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `instance_arn` (String) The identifier of the Amazon Connect instance. +- `user_hierarchy_structure` (Attributes) Information about the hierarchy structure. (see [below for nested schema](#nestedatt--user_hierarchy_structure)) +- `user_hierarchy_structure_arn` (String) The identifier of the User Hierarchy Structure. + + +### Nested Schema for `user_hierarchy_structure` + +Read-Only: + +- `level_five` (Attributes) Information about level five. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_five)) +- `level_four` (Attributes) Information about level four. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_four)) +- `level_one` (Attributes) Information about level one. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_one)) +- `level_three` (Attributes) Information about level three. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_three)) +- `level_two` (Attributes) Information about level two. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_two)) + + +### Nested Schema for `user_hierarchy_structure.level_five` + +Read-Only: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_four` + +Read-Only: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_one` + +Read-Only: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_three` + +Read-Only: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_two` + +Read-Only: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. diff --git a/docs/data-sources/datazone_environment.md b/docs/data-sources/datazone_environment.md index 45903a46a..fd3f83e8e 100644 --- a/docs/data-sources/datazone_environment.md +++ b/docs/data-sources/datazone_environment.md @@ -28,10 +28,13 @@ Data Source schema for AWS::DataZone::Environment - `description` (String) The description of the Amazon DataZone environment. - `domain_id` (String) The identifier of the Amazon DataZone domain in which the environment is created. - `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. +- `environment_account_identifier` (String) The AWS account in which the Amazon DataZone environment is created. +- `environment_account_region` (String) The AWS region in which the Amazon DataZone environment is created. - `environment_blueprint_id` (String) The ID of the blueprint with which the Amazon DataZone environment was created. - `environment_id` (String) The ID of the Amazon DataZone environment. - `environment_profile_id` (String) The ID of the environment profile with which the Amazon DataZone environment was created. - `environment_profile_identifier` (String) The ID of the environment profile with which the Amazon DataZone environment would be created. +- `environment_role_arn` (String) Environment role arn for custom aws environment permissions - `glossary_terms` (List of String) The glossary terms that can be used in the Amazon DataZone environment. - `name` (String) The name of the environment. - `project_id` (String) The ID of the Amazon DataZone project in which the environment is created. diff --git a/docs/data-sources/datazone_environment_actions.md b/docs/data-sources/datazone_environment_actions.md new file mode 100644 index 000000000..d0ded3bd3 --- /dev/null +++ b/docs/data-sources/datazone_environment_actions.md @@ -0,0 +1,39 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_environment_actions Data Source - terraform-provider-awscc" +subcategory: "" +description: |- + Data Source schema for AWS::DataZone::EnvironmentActions +--- + +# awscc_datazone_environment_actions (Data Source) + +Data Source schema for AWS::DataZone::EnvironmentActions + + + + +## Schema + +### Required + +- `id` (String) Uniquely identifies the resource. + +### Read-Only + +- `description` (String) The description of the Amazon DataZone environment action. +- `domain_id` (String) The identifier of the Amazon DataZone domain in which the environment is created. +- `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. +- `environment_actions_id` (String) The ID of the Amazon DataZone environment action. +- `environment_id` (String) The identifier of the Amazon DataZone environment in which the action is taking place +- `environment_identifier` (String) The identifier of the Amazon DataZone environment in which the action is taking place +- `identifier` (String) The ID of the Amazon DataZone environment action. +- `name` (String) The name of the environment action. +- `parameters` (Attributes) The parameters of the environment action. (see [below for nested schema](#nestedatt--parameters)) + + +### Nested Schema for `parameters` + +Read-Only: + +- `uri` (String) The URI of the console link specified as part of the environment action. diff --git a/docs/data-sources/ec2_subnet.md b/docs/data-sources/ec2_subnet.md index 2721a3d3c..9af8cda5d 100644 --- a/docs/data-sources/ec2_subnet.md +++ b/docs/data-sources/ec2_subnet.md @@ -35,7 +35,7 @@ Data Source schema for AWS::EC2::Subnet - `ipv_4_netmask_length` (Number) An IPv4 netmask length for the subnet. - `ipv_6_cidr_block` (String) The IPv6 CIDR block. If you specify ``AssignIpv6AddressOnCreation``, you must also specify an IPv6 CIDR block. -- `ipv_6_cidr_blocks` (List of String) The IPv6 network ranges for the subnet, in CIDR notation. +- `ipv_6_cidr_blocks` (List of String) - `ipv_6_ipam_pool_id` (String) An IPv6 IPAM pool ID for the subnet. - `ipv_6_native` (Boolean) Indicates whether this is an IPv6 only subnet. For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *User Guide*. - `ipv_6_netmask_length` (Number) An IPv6 netmask length for the subnet. diff --git a/docs/data-sources/iotfleetwise_campaign.md b/docs/data-sources/iotfleetwise_campaign.md index 8165e3a0c..5971d4a4a 100644 --- a/docs/data-sources/iotfleetwise_campaign.md +++ b/docs/data-sources/iotfleetwise_campaign.md @@ -37,6 +37,7 @@ Data Source schema for AWS::IoTFleetWise::Campaign - `priority` (Number) - `signal_catalog_arn` (String) - `signals_to_collect` (Attributes List) (see [below for nested schema](#nestedatt--signals_to_collect)) +- `signals_to_fetch` (Attributes List) (see [below for nested schema](#nestedatt--signals_to_fetch)) - `spooling_mode` (String) - `start_time` (String) - `status` (String) @@ -120,6 +121,43 @@ Read-Only: - `name` (String) + +### Nested Schema for `signals_to_fetch` + +Read-Only: + +- `actions` (List of String) +- `condition_language_version` (Number) +- `fully_qualified_name` (String) +- `signal_fetch_config` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config)) + + +### Nested Schema for `signals_to_fetch.signal_fetch_config` + +Read-Only: + +- `condition_based` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config--condition_based)) +- `time_based` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config--time_based)) + + +### Nested Schema for `signals_to_fetch.signal_fetch_config.condition_based` + +Read-Only: + +- `condition_expression` (String) +- `trigger_mode` (String) + + + +### Nested Schema for `signals_to_fetch.signal_fetch_config.time_based` + +Read-Only: + +- `execution_frequency_ms` (Number) + + + + ### Nested Schema for `tags` diff --git a/docs/data-sources/lambda_code_signing_config.md b/docs/data-sources/lambda_code_signing_config.md index da22af660..edeeea905 100644 --- a/docs/data-sources/lambda_code_signing_config.md +++ b/docs/data-sources/lambda_code_signing_config.md @@ -26,6 +26,7 @@ Data Source schema for AWS::Lambda::CodeSigningConfig - `code_signing_config_id` (String) A unique identifier for CodeSigningConfig resource - `code_signing_policies` (Attributes) Policies to control how to act if a signature is invalid (see [below for nested schema](#nestedatt--code_signing_policies)) - `description` (String) A description of the CodeSigningConfig +- `tags` (Attributes Set) A list of tags to apply to CodeSigningConfig resource (see [below for nested schema](#nestedatt--tags)) ### Nested Schema for `allowed_publishers` @@ -41,3 +42,12 @@ Read-Only: Read-Only: - `untrusted_artifact_on_deployment` (String) Indicates how Lambda operations involve updating the code artifact will operate. Default to Warn if not provided + + + +### 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/lambda_event_source_mapping.md b/docs/data-sources/lambda_event_source_mapping.md index 9ff83cc93..d871ba0de 100644 --- a/docs/data-sources/lambda_event_source_mapping.md +++ b/docs/data-sources/lambda_event_source_mapping.md @@ -42,6 +42,7 @@ Data Source schema for AWS::Lambda::EventSourceMapping + *Amazon Managed Streaming for Apache Kafka* ? The ARN of the cluster or the ARN of the VPC connection (for [cross-account event source mappings](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)). + *Amazon MQ* ? The ARN of the broker. + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. +- `event_source_mapping_arn` (String) - `event_source_mapping_id` (String) - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) - `function_name` (String) The name or ARN of the Lambda function. @@ -52,9 +53,9 @@ Data Source schema for AWS::Lambda::EventSourceMapping + *Partial ARN* ? ``123456789012:function:MyFunction``. The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length. -- `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. +- `function_response_types` (List of String) (Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` -- `kms_key_arn` (String) +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics). - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -73,6 +74,7 @@ Data Source schema for AWS::Lambda::EventSourceMapping + *TRIM_HORIZON* - Process all available records. + *AT_TIMESTAMP* - Specify a time from which to start reading records. - `starting_position_timestamp` (Number) With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future. +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) - `topics` (List of String) The name of the Kafka topic. - `tumbling_window_in_seconds` (Number) (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window. @@ -177,3 +179,12 @@ Read-Only: + ``CLIENT_CERTIFICATE_TLS_AUTH`` ? (Amazon MSK, self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the certificate chain (X.509 PEM), private key (PKCS#8 PEM), and private key password (optional) used for mutual TLS authentication of your MSK/Apache Kafka brokers. + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. + + + +### 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/s3express_directory_bucket.md b/docs/data-sources/s3express_directory_bucket.md index c9cc1a40f..e9c9f0f5f 100644 --- a/docs/data-sources/s3express_directory_bucket.md +++ b/docs/data-sources/s3express_directory_bucket.md @@ -22,6 +22,8 @@ Data Source schema for AWS::S3Express::DirectoryBucket ### Read-Only - `arn` (String) Returns the Amazon Resource Name (ARN) of the specified bucket. +- `availability_zone_name` (String) Returns the code for the Availability Zone where the directory bucket was created. +- `bucket_encryption` (String) - `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. - `data_redundancy` (String) Specifies the number of Availability Zone that's used for redundancy for the bucket. - `location_name` (String) Specifies the AZ ID of the Availability Zone where the directory bucket will be created. An example AZ ID value is 'use1-az5'. diff --git a/docs/data-sources/synthetics_canary.md b/docs/data-sources/synthetics_canary.md index 205a8d193..e8ca01c96 100644 --- a/docs/data-sources/synthetics_canary.md +++ b/docs/data-sources/synthetics_canary.md @@ -29,6 +29,7 @@ Data Source schema for AWS::Synthetics::Canary - `execution_role_arn` (String) Lambda Execution role used to run your canaries - `failure_retention_period` (Number) Retention period of failed canary runs represented in number of days - `name` (String) Name of the canary. +- `resources_to_replicate_tags` (List of String) List of resources which canary tags should be replicated to. - `run_config` (Attributes) Provide canary run configuration (see [below for nested schema](#nestedatt--run_config)) - `runtime_version` (String) Runtime version of Synthetics Library - `schedule` (Attributes) Frequency to run your canaries (see [below for nested schema](#nestedatt--schedule)) diff --git a/docs/resources/connect_agent_status.md b/docs/resources/connect_agent_status.md new file mode 100644 index 000000000..df8bf2b74 --- /dev/null +++ b/docs/resources/connect_agent_status.md @@ -0,0 +1,53 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_agent_status Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Connect::AgentStatus +--- + +# awscc_connect_agent_status (Resource) + +Resource Type definition for AWS::Connect::AgentStatus + + + + +## Schema + +### Required + +- `instance_arn` (String) The identifier of the Amazon Connect instance. +- `name` (String) The name of the status. +- `state` (String) The state of the status. + +### Optional + +- `description` (String) The description of the status. +- `display_order` (Number) The display order of the status. +- `reset_order_number` (Boolean) A number indicating the reset order of the agent status. +- `tags` (Attributes Set) An array of key-value pairs to apply to this resource. (see [below for nested schema](#nestedatt--tags)) +- `type` (String) The type of agent status. + +### Read-Only + +- `agent_status_arn` (String) The Amazon Resource Name (ARN) of the agent status. +- `id` (String) Uniquely identifies the resource. +- `last_modified_region` (String) Last modified region. +- `last_modified_time` (Number) Last modified time. + + +### 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_connect_agent_status.example "agent_status_arn" +``` diff --git a/docs/resources/connect_user_hierarchy_structure.md b/docs/resources/connect_user_hierarchy_structure.md new file mode 100644 index 000000000..316950321 --- /dev/null +++ b/docs/resources/connect_user_hierarchy_structure.md @@ -0,0 +1,97 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_connect_user_hierarchy_structure Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Resource Type definition for AWS::Connect::UserHierarchyStructure +--- + +# awscc_connect_user_hierarchy_structure (Resource) + +Resource Type definition for AWS::Connect::UserHierarchyStructure + + + + +## Schema + +### Required + +- `instance_arn` (String) The identifier of the Amazon Connect instance. + +### Optional + +- `user_hierarchy_structure` (Attributes) Information about the hierarchy structure. (see [below for nested schema](#nestedatt--user_hierarchy_structure)) + +### Read-Only + +- `id` (String) Uniquely identifies the resource. +- `user_hierarchy_structure_arn` (String) The identifier of the User Hierarchy Structure. + + +### Nested Schema for `user_hierarchy_structure` + +Optional: + +- `level_five` (Attributes) Information about level five. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_five)) +- `level_four` (Attributes) Information about level four. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_four)) +- `level_one` (Attributes) Information about level one. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_one)) +- `level_three` (Attributes) Information about level three. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_three)) +- `level_two` (Attributes) Information about level two. (see [below for nested schema](#nestedatt--user_hierarchy_structure--level_two)) + + +### Nested Schema for `user_hierarchy_structure.level_five` + +Optional: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_four` + +Optional: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_one` + +Optional: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_three` + +Optional: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + + + +### Nested Schema for `user_hierarchy_structure.level_two` + +Optional: + +- `hierarchy_level_arn` (String) The Amazon Resource Name (ARN) of the hierarchy level. +- `hierarchy_level_id` (String) The identifier of the hierarchy level. +- `name` (String) The name of the hierarchy level. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_connect_user_hierarchy_structure.example "user_hierarchy_structure_arn" +``` diff --git a/docs/resources/datazone_environment.md b/docs/resources/datazone_environment.md index 6e50dfb07..a9ab7d8b8 100644 --- a/docs/resources/datazone_environment.md +++ b/docs/resources/datazone_environment.md @@ -18,13 +18,16 @@ Definition of AWS::DataZone::Environment Resource Type ### Required - `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. -- `environment_profile_identifier` (String) The ID of the environment profile with which the Amazon DataZone environment would be created. - `name` (String) The name of the environment. - `project_identifier` (String) The ID of the Amazon DataZone project in which the environment would be created. ### Optional - `description` (String) The description of the Amazon DataZone environment. +- `environment_account_identifier` (String) The AWS account in which the Amazon DataZone environment is created. +- `environment_account_region` (String) The AWS region in which the Amazon DataZone environment is created. +- `environment_profile_identifier` (String) The ID of the environment profile with which the Amazon DataZone environment would be created. +- `environment_role_arn` (String) Environment role arn for custom aws environment permissions - `glossary_terms` (List of String) The glossary terms that can be used in the Amazon DataZone environment. - `user_parameters` (Attributes List) The user parameters of the Amazon DataZone environment. (see [below for nested schema](#nestedatt--user_parameters)) diff --git a/docs/resources/datazone_environment_actions.md b/docs/resources/datazone_environment_actions.md new file mode 100644 index 000000000..eecc9d897 --- /dev/null +++ b/docs/resources/datazone_environment_actions.md @@ -0,0 +1,50 @@ +--- +# generated by https://github.com/hashicorp/terraform-plugin-docs +page_title: "awscc_datazone_environment_actions Resource - terraform-provider-awscc" +subcategory: "" +description: |- + Definition of AWS::DataZone::EnvironmentActions Resource Type +--- + +# awscc_datazone_environment_actions (Resource) + +Definition of AWS::DataZone::EnvironmentActions Resource Type + + + + +## Schema + +### Required + +- `name` (String) The name of the environment action. + +### Optional + +- `description` (String) The description of the Amazon DataZone environment action. +- `domain_identifier` (String) The identifier of the Amazon DataZone domain in which the environment would be created. +- `environment_identifier` (String) The identifier of the Amazon DataZone environment in which the action is taking place +- `identifier` (String) The ID of the Amazon DataZone environment action. +- `parameters` (Attributes) The parameters of the environment action. (see [below for nested schema](#nestedatt--parameters)) + +### Read-Only + +- `domain_id` (String) The identifier of the Amazon DataZone domain in which the environment is created. +- `environment_actions_id` (String) The ID of the Amazon DataZone environment action. +- `environment_id` (String) The identifier of the Amazon DataZone environment in which the action is taking place +- `id` (String) Uniquely identifies the resource. + + +### Nested Schema for `parameters` + +Optional: + +- `uri` (String) The URI of the console link specified as part of the environment action. + +## Import + +Import is supported using the following syntax: + +```shell +$ terraform import awscc_datazone_environment_actions.example "domain_id|environment_id|id" +``` diff --git a/docs/resources/ec2_subnet.md b/docs/resources/ec2_subnet.md index 5306f74d8..4bff837be 100644 --- a/docs/resources/ec2_subnet.md +++ b/docs/resources/ec2_subnet.md @@ -73,7 +73,7 @@ resource "awscc_ec2_subnet" "main" { ### Read-Only - `id` (String) Uniquely identifies the resource. -- `ipv_6_cidr_blocks` (List of String) The IPv6 network ranges for the subnet, in CIDR notation. +- `ipv_6_cidr_blocks` (List of String) - `network_acl_association_id` (String) - `subnet_id` (String) diff --git a/docs/resources/iotfleetwise_campaign.md b/docs/resources/iotfleetwise_campaign.md index 5dbccada0..ede3029e8 100644 --- a/docs/resources/iotfleetwise_campaign.md +++ b/docs/resources/iotfleetwise_campaign.md @@ -34,6 +34,7 @@ Definition of AWS::IoTFleetWise::Campaign Resource Type - `post_trigger_collection_duration` (Number) - `priority` (Number) - `signals_to_collect` (Attributes List) (see [below for nested schema](#nestedatt--signals_to_collect)) +- `signals_to_fetch` (Attributes List) (see [below for nested schema](#nestedatt--signals_to_fetch)) - `spooling_mode` (String) - `start_time` (String) - `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) @@ -123,6 +124,43 @@ Optional: - `name` (String) + +### Nested Schema for `signals_to_fetch` + +Optional: + +- `actions` (List of String) +- `condition_language_version` (Number) +- `fully_qualified_name` (String) +- `signal_fetch_config` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config)) + + +### Nested Schema for `signals_to_fetch.signal_fetch_config` + +Optional: + +- `condition_based` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config--condition_based)) +- `time_based` (Attributes) (see [below for nested schema](#nestedatt--signals_to_fetch--signal_fetch_config--time_based)) + + +### Nested Schema for `signals_to_fetch.signal_fetch_config.condition_based` + +Optional: + +- `condition_expression` (String) +- `trigger_mode` (String) + + + +### Nested Schema for `signals_to_fetch.signal_fetch_config.time_based` + +Optional: + +- `execution_frequency_ms` (Number) + + + + ### Nested Schema for `tags` diff --git a/docs/resources/lambda_code_signing_config.md b/docs/resources/lambda_code_signing_config.md index 248a0cc2d..066d0b343 100644 --- a/docs/resources/lambda_code_signing_config.md +++ b/docs/resources/lambda_code_signing_config.md @@ -23,6 +23,7 @@ Resource Type definition for AWS::Lambda::CodeSigningConfig. - `code_signing_policies` (Attributes) Policies to control how to act if a signature is invalid (see [below for nested schema](#nestedatt--code_signing_policies)) - `description` (String) A description of the CodeSigningConfig +- `tags` (Attributes Set) A list of tags to apply to CodeSigningConfig resource (see [below for nested schema](#nestedatt--tags)) ### Read-Only @@ -45,6 +46,15 @@ Optional: - `untrusted_artifact_on_deployment` (String) Indicates how Lambda operations involve updating the code artifact will operate. Default to Warn if not provided + + +### 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: diff --git a/docs/resources/lambda_event_source_mapping b/docs/resources/lambda_event_source_mapping index a0d31b9f3..d84b4aeda 100644 --- a/docs/resources/lambda_event_source_mapping +++ b/docs/resources/lambda_event_source_mapping @@ -83,9 +83,9 @@ resource "awscc_lambda_permission" "example" { + *Amazon MQ* ? The ARN of the broker. + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) -- `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. +- `function_response_types` (List of String) (Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` -- `kms_key_arn` (String) +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics). - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -104,11 +104,13 @@ resource "awscc_lambda_permission" "example" { + *TRIM_HORIZON* - Process all available records. + *AT_TIMESTAMP* - Specify a time from which to start reading records. - `starting_position_timestamp` (Number) With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future. +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) - `topics` (List of String) The name of the Kafka topic. - `tumbling_window_in_seconds` (Number) (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window. ### Read-Only +- `event_source_mapping_arn` (String) - `event_source_mapping_id` (String) - `id` (String) Uniquely identifies the resource. @@ -214,6 +216,15 @@ Optional: + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. + + +### 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: diff --git a/docs/resources/lambda_event_source_mapping.md b/docs/resources/lambda_event_source_mapping.md index 508c958f6..d59d62cca 100644 --- a/docs/resources/lambda_event_source_mapping.md +++ b/docs/resources/lambda_event_source_mapping.md @@ -60,9 +60,9 @@ The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an ev + *Amazon MQ* ? The ARN of the broker. + *Amazon DocumentDB* ? The ARN of the DocumentDB change stream. - `filter_criteria` (Attributes) An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html). (see [below for nested schema](#nestedatt--filter_criteria)) -- `function_response_types` (List of String) (Streams and SQS) A list of current response type enums applied to the event source mapping. +- `function_response_types` (List of String) (Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping. Valid Values: ``ReportBatchItemFailures`` -- `kms_key_arn` (String) +- `kms_key_arn` (String) The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics). - `maximum_batching_window_in_seconds` (Number) The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function. *Default (, , event sources)*: 0 *Default (, Kafka, , event sources)*: 500 ms @@ -81,11 +81,13 @@ The ``AWS::Lambda::EventSourceMapping`` resource creates a mapping between an ev + *TRIM_HORIZON* - Process all available records. + *AT_TIMESTAMP* - Specify a time from which to start reading records. - `starting_position_timestamp` (Number) With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future. +- `tags` (Attributes Set) (see [below for nested schema](#nestedatt--tags)) - `topics` (List of String) The name of the Kafka topic. - `tumbling_window_in_seconds` (Number) (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window. ### Read-Only +- `event_source_mapping_arn` (String) - `event_source_mapping_id` (String) - `id` (String) Uniquely identifies the resource. @@ -191,6 +193,15 @@ Optional: + ``SERVER_ROOT_CA_CERTIFICATE`` ? (Self-managed Apache Kafka) The Secrets Manager ARN of your secret key containing the root CA certificate (X.509 PEM) used for TLS encryption of your Apache Kafka brokers. - `uri` (String) The value for your chosen configuration in ``Type``. For example: ``"URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName"``. + + +### 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: diff --git a/docs/resources/s3express_directory_bucket.md b/docs/resources/s3express_directory_bucket.md index 7781a44bd..acf11c821 100644 --- a/docs/resources/s3express_directory_bucket.md +++ b/docs/resources/s3express_directory_bucket.md @@ -31,11 +31,13 @@ resource "awscc_s3express_directory_bucket" "example" { ### Optional +- `bucket_encryption` (String) - `bucket_name` (String) Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format 'bucket_base_name--az_id--x-s3' (for example, 'DOC-EXAMPLE-BUCKET--usw2-az1--x-s3'). If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name. ### Read-Only - `arn` (String) Returns the Amazon Resource Name (ARN) of the specified bucket. +- `availability_zone_name` (String) Returns the code for the Availability Zone where the directory bucket was created. - `id` (String) Uniquely identifies the resource. ## Import diff --git a/docs/resources/synthetics_canary.md b/docs/resources/synthetics_canary.md index 3a999c838..6eab47d33 100644 --- a/docs/resources/synthetics_canary.md +++ b/docs/resources/synthetics_canary.md @@ -29,6 +29,7 @@ Resource Type definition for AWS::Synthetics::Canary - `artifact_config` (Attributes) Provide artifact configuration (see [below for nested schema](#nestedatt--artifact_config)) - `delete_lambda_resources_on_canary_deletion` (Boolean) Deletes associated lambda resources created by Synthetics if set to True. Default is False - `failure_retention_period` (Number) Retention period of failed canary runs represented in number of days +- `resources_to_replicate_tags` (List of String) List of resources which canary tags should be replicated to. - `run_config` (Attributes) Provide canary run configuration (see [below for nested schema](#nestedatt--run_config)) - `start_canary_after_creation` (Boolean) Runs canary if set to True. Default is False - `success_retention_period` (Number) Retention period of successful canary runs represented in number of days diff --git a/examples/resources/awscc_connect_agent_status/import.sh b/examples/resources/awscc_connect_agent_status/import.sh new file mode 100644 index 000000000..bfe44ccc5 --- /dev/null +++ b/examples/resources/awscc_connect_agent_status/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_connect_agent_status.example "agent_status_arn" \ No newline at end of file diff --git a/examples/resources/awscc_connect_user_hierarchy_structure/import.sh b/examples/resources/awscc_connect_user_hierarchy_structure/import.sh new file mode 100644 index 000000000..3e244f8b1 --- /dev/null +++ b/examples/resources/awscc_connect_user_hierarchy_structure/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_connect_user_hierarchy_structure.example "user_hierarchy_structure_arn" \ No newline at end of file diff --git a/examples/resources/awscc_datazone_environment_actions/import.sh b/examples/resources/awscc_datazone_environment_actions/import.sh new file mode 100644 index 000000000..cca0a6a57 --- /dev/null +++ b/examples/resources/awscc_datazone_environment_actions/import.sh @@ -0,0 +1 @@ +$ terraform import awscc_datazone_environment_actions.example "domain_id|environment_id|id" \ No newline at end of file From 6019278141c5bb2545792f2d99a0bf1d00787499 Mon Sep 17 00:00:00 2001 From: Kit Ewbank Date: Thu, 19 Sep 2024 15:09:07 -0400 Subject: [PATCH 13/20] Add CHANGELOG entries. --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fbed2892..f7e363238 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ BUG FIXES: * Prevent resource drift when default value is not set on a `required` attribute during refresh ([#2022](https://github.com/hashicorp/terraform-provider-awscc/pull/2022)) +FEATURES: + +* **New Data Source:** `awscc_connect_agent_status` +* **New Data Source:** `awscc_connect_user_hierarchy_structure` +* **New Data Source:** `awscc_datazone_environment_actions` +* **New Resource:** `awscc_connect_agent_status` +* **New Resource:** `awscc_connect_user_hierarchy_structure` +* **New Resource:** `awscc_datazone_environment_actions` + ## 1.14.0 (September 12, 2024) FEATURES: From 8786d5f8fb9669b220549ecde6f1ba73b76f907e Mon Sep 17 00:00:00 2001 From: changelogbot Date: Thu, 19 Sep 2024 20:42:12 +0000 Subject: [PATCH 14/20] Update CHANGELOG.md after v1.15.0 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7e363238..16c66a31c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ -## 1.15.0 (Unreleased) +## 1.16.0 (Unreleased) +## 1.15.0 (September 19, 2024) BUG FIXES: From da817f2cfbdd7524cb12a002bedc110b61b0c623 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Sep 2024 05:19:27 +0000 Subject: [PATCH 15/20] build(deps): bump the aws-sdk-go group with 5 updates Bumps the aws-sdk-go group with 5 updates: | Package | From | To | | --- | --- | --- | | [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.30.5` | `1.31.0` | | [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.27.35` | `1.27.36` | | [github.com/aws/aws-sdk-go-v2/feature/ec2/imds](https://github.com/aws/aws-sdk-go-v2) | `1.16.13` | `1.16.14` | | [github.com/aws/aws-sdk-go-v2/service/cloudcontrol](https://github.com/aws/aws-sdk-go-v2) | `1.20.8` | `1.21.0` | | [github.com/aws/aws-sdk-go-v2/service/cloudformation](https://github.com/aws/aws-sdk-go-v2) | `1.53.8` | `1.54.0` | Updates `github.com/aws/aws-sdk-go-v2` from 1.30.5 to 1.31.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.30.5...v1.31.0) Updates `github.com/aws/aws-sdk-go-v2/config` from 1.27.35 to 1.27.36 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.35...config/v1.27.36) Updates `github.com/aws/aws-sdk-go-v2/feature/ec2/imds` from 1.16.13 to 1.16.14 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.16.13...v1.16.14) Updates `github.com/aws/aws-sdk-go-v2/service/cloudcontrol` from 1.20.8 to 1.21.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/ivs/v1.20.8...v1.21.0) Updates `github.com/aws/aws-sdk-go-v2/service/cloudformation` from 1.53.8 to 1.54.0 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/iot/v1.53.8...service/s3/v1.54.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/feature/ec2/imds dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudcontrol dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudformation dependency-type: direct:production update-type: version-update:semver-minor dependency-group: aws-sdk-go ... Signed-off-by: dependabot[bot] --- go.mod | 28 ++++++++++++++-------------- go.sum | 56 ++++++++++++++++++++++++++++---------------------------- 2 files changed, 42 insertions(+), 42 deletions(-) diff --git a/go.mod b/go.mod index af57155e8..3e3492a17 100644 --- a/go.mod +++ b/go.mod @@ -3,11 +3,11 @@ module github.com/hashicorp/terraform-provider-awscc go 1.22.7 require ( - github.com/aws/aws-sdk-go-v2 v1.30.5 - github.com/aws/aws-sdk-go-v2/config v1.27.35 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 - github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.20.8 - github.com/aws/aws-sdk-go-v2/service/cloudformation v1.53.8 + github.com/aws/aws-sdk-go-v2 v1.31.0 + github.com/aws/aws-sdk-go-v2/config v1.27.36 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 + github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0 + github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0 github.com/google/go-cmp v0.6.0 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.55 @@ -35,24 +35,24 @@ require ( github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.33 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 // indirect github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.6 // indirect github.com/aws/aws-sdk-go-v2/service/iam v1.35.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 // indirect github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.17 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.22.8 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.30.8 // indirect - github.com/aws/smithy-go v1.20.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 // indirect + github.com/aws/smithy-go v1.21.0 // indirect github.com/bgentry/speakeasy v0.1.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/evanphx/json-patch v0.5.2 // indirect diff --git a/go.sum b/go.sum index b18b4eb7c..8f8db515b 100644 --- a/go.sum +++ b/go.sum @@ -17,54 +17,54 @@ github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4= github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/aws/aws-sdk-go-v2 v1.30.5 h1:mWSRTwQAb0aLE17dSzztCVJWI9+cRMgqebndjwDyK0g= -github.com/aws/aws-sdk-go-v2 v1.30.5/go.mod h1:CT+ZPWXbYrci8chcARI3OmI/qgd+f6WtuLOoaIA8PR0= +github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72QmG5U= +github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= -github.com/aws/aws-sdk-go-v2/config v1.27.35 h1:jeFgiWYNV0vrgdZqB4kZBjYNdy0IKkwrAjr2fwpHIig= -github.com/aws/aws-sdk-go-v2/config v1.27.35/go.mod h1:qnpEvTq8ZfjrCqmJGRfWZuF+lGZ/vG8LK2K0L/TY1gQ= -github.com/aws/aws-sdk-go-v2/credentials v1.17.33 h1:lBHAQQznENv0gLHAZ73ONiTSkCtr8q3pSqWrpbBBZz0= -github.com/aws/aws-sdk-go-v2/credentials v1.17.33/go.mod h1:MBuqCUOT3ChfLuxNDGyra67eskx7ge9e3YKYBce7wpI= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13 h1:pfQ2sqNpMVK6xz2RbqLEL0GH87JOwSxPV2rzm8Zsb74= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.13/go.mod h1:NG7RXPUlqfsCLLFfi0+IpKN4sCB9D9fw/qTaSB+xRoU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17 h1:pI7Bzt0BJtYA0N/JEC6B8fJ4RBrEMi1LBrkMdFYNSnQ= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.17/go.mod h1:Dh5zzJYMtxfIjYW+/evjQ8uj2OyR/ve2KROHGHlSFqE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17 h1:Mqr/V5gvrhA2gvgnF42Zh5iMiQNcOYthFYwCyrnuWlc= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.17/go.mod h1:aLJpZlCmjE+V+KtN1q1uyZkfnUWpQGpbsn89XPKyzfU= +github.com/aws/aws-sdk-go-v2/config v1.27.36 h1:4IlvHh6Olc7+61O1ktesh0jOcqmq/4WG6C2Aj5SKXy0= +github.com/aws/aws-sdk-go-v2/config v1.27.36/go.mod h1:IiBpC0HPAGq9Le0Xxb1wpAKzEfAQ3XlYgJLYKEVYcfw= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34 h1:gmkk1l/cDGSowPRzkdxYi8edw+gN4HmVK151D/pqGNc= +github.com/aws/aws-sdk-go-v2/credentials v1.17.34/go.mod h1:4R9OEV3tgFMsok4ZeFpExn7zQaZRa9MRGFYnI/xC/vs= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18/go.mod h1:r506HmK5JDUh9+Mw4CfGJGSSoqIiLCndAuqXuhbv67Y= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 h1:Z7IdFUONvTcvS7YuhtVxN99v2cCoHRXOS4mTr0B/pUc= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18/go.mod h1:DkKMmksZVVyat+Y+r1dEOgJEfUeA7UngIHWeKsi0yNc= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvKgqdiXoTxAF4HQcQ= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.20.8 h1:QLKIR/M7rtqGgPkhvZYVeahpJM2kHAKGKSxqAdm4FGA= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.20.8/go.mod h1:aiOymhljgGMZYl4V8sSGPbOT7fnWruJEe+HjyJaxHXU= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.53.8 h1:zhDl3UrTl2IO+C4Ub7TmNNXfxmDOZ7VKIpV+Ayf7f9M= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.53.8/go.mod h1:TXiuXcbBl1rEAy9xhZi2TBZeWfoRhJ6ymMfepMxJnZk= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0 h1:EYVyrlWbbi8fsD8ioak913s0Sqp/79h1iw66wenufYA= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0 h1:xYTmnuV8TUx1cL8ajCM5R472x6trJIvO+ZiKiAxiqhA= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.6 h1:LKZuRTlh8RszjuWcUwEDvCGwjx5olHPp6ZOepyZV5p8= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.6/go.mod h1:s2fYaueBuCnwv1XQn6T8TfShxJWusv5tWPMcL+GY6+g= github.com/aws/aws-sdk-go-v2/service/iam v1.35.0 h1:xIjTizH74aMNQBjp9D5cvjRZmOYtnrpjOGU3xkVqrjk= github.com/aws/aws-sdk-go-v2/service/iam v1.35.0/go.mod h1:IdHqqRLKgxYR4IY7Omd7SuV4SJzJ8seF+U5PW+mvtP4= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4 h1:KypMCbLPPHEmf9DgMGw51jMj77VfGPAN2Kv4cfhlfgI= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.4/go.mod h1:Vz1JQXliGcQktFTN/LN6uGppAIRoLBR2bMvIMP0gOjc= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5 h1:QFASJGfT8wMXtuP3D5CRmMjARHv9ZmzFUMJznHDOY3w= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.5/go.mod h1:QdZ3OmoIjSX+8D1OPAzPxDfjXASbBMDsz9qvtyIhtik= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18 h1:GckUnpm4EJOAio1c8o25a+b3lVfwVzC9gnSBqiiNmZM= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.18/go.mod h1:Br6+bxfG33Dk3ynmkhsW2Z/t9D4+lRqdLDNCKi85w0U= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.17 h1:HDJGz1jlV7RokVgTPfx1UHBHANC0N5Uk++xgyYgz5E0= github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.17/go.mod h1:5szDu6TWdRDytfDxUQVv2OYfpTQMKApVFyqpm+TcA98= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19 h1:rfprUlsdzgl7ZL2KlXiUAoJnI/VxfHCvDFr2QDFj6u4= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.19/go.mod h1:SCWkEdRq8/7EK60NcvvQ6NXKuTcchAD4ROAsC37VEZE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20 h1:Xbwbmk44URTiHNx6PNo0ujDE6ERlsCKJD3u1zfnzAPg= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.20/go.mod h1:oAfOFzUB14ltPZj1rWwRc3d/6OgD76R8KlvU3EqM9Fg= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 h1:jg16PhLPUiHIj8zYIW6bqzeQSuHVEiWnGA0Brz5Xv2I= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16/go.mod h1:Uyk1zE1VVdsHSU7096h/rwnXDzOzYQVl+FNPhPw7ShY= github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 h1:mx2ucgtv+MWzJesJY9Ig/8AFHgoE5FwLXwUVgW/FGdI= github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5 h1:HYyVDOC2/PIg+3oBX1q0wtDU5kONki6lrgIG0afrBkY= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5/go.mod h1:7idt3XszF6sE9WPS1GqZRiDJOxw4oPtlRBXodWnCGjU= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.8 h1:JRwuL+S1Qe1owZQoxblV7ORgRf2o0SrtzDVIbaVCdQ0= -github.com/aws/aws-sdk-go-v2/service/sso v1.22.8/go.mod h1:eEygMHnTKH/3kNp9Jr1n3PdejuSNcgwLe1dWgQtO0VQ= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8 h1:+HpGETD9463PFSj7lX5+eq7aLDs85QUIA+NBkeAsscA= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.8/go.mod h1:bCbAxKDqNvkHxRaIMnyVPXPo+OaPRwvmgzMxbz1VKSA= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.8 h1:bAi+4p5EKnni+jrfcAhb7iHFQ24bthOAV9t0taf3DCE= -github.com/aws/aws-sdk-go-v2/service/sts v1.30.8/go.mod h1:NXi1dIAGteSaRLqYgarlhP/Ij0cFT+qmCwiJqWh/U5o= -github.com/aws/smithy-go v1.20.4 h1:2HK1zBdPgRbjFOHlfeQZfpC4r72MOb9bZkiFwggKO+4= -github.com/aws/smithy-go v1.20.4/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 h1:fHySkG0IGj2nepgGJPmmhZYL9ndnsq1Tvc6MeuVQCaQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.0/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 h1:cU/OeQPNReyMj1JEBgjE29aclYZYtXcsPMXbTkVGMFk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 h1:GNVxIHBTi2EgwCxpNiozhNasMOK+ROUA2Z3X+cSBX58= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.0/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= +github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA= From e9e7a2a68f612a1d300af88a8589513fbc633606 Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Mon, 23 Sep 2024 13:36:20 -0500 Subject: [PATCH 16/20] run make resources --- .../aws/events/connection_resource_gen.go | 186 ++++++++++++++++-- 1 file changed, 165 insertions(+), 21 deletions(-) diff --git a/internal/aws/events/connection_resource_gen.go b/internal/aws/events/connection_resource_gen.go index 31214a047..9307f91b0 100644 --- a/internal/aws/events/connection_resource_gen.go +++ b/internal/aws/events/connection_resource_gen.go @@ -20,6 +20,7 @@ import ( "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() { @@ -299,11 +300,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ApiKeyName "api_key_name": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ApiKeyValue "api_key_value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, @@ -317,11 +332,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: Password "password": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Username "username": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ Optional: true, @@ -348,11 +377,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -377,11 +420,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -406,11 +463,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -432,35 +503,66 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: AuthorizationEndpoint "authorization_endpoint": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.LengthBetween(1, 2048), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ClientParameters "client_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ Attributes: map[string]schema.Attribute{ /*START SCHEMA*/ // Property: ClientID "client_id": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: ClientSecret "client_secret": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.Object{ /*START VALIDATORS*/ + fwvalidators.NotNullObject(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.Object{ /*START PLAN MODIFIERS*/ + objectplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: HttpMethod "http_method": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, Validators: []validator.String{ /*START VALIDATORS*/ stringvalidator.OneOf( "GET", "POST", "PUT", ), + fwvalidators.NotNullString(), }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: OAuthHttpParameters "o_auth_http_parameters": schema.SingleNestedAttribute{ /*START ATTRIBUTE*/ @@ -480,11 +582,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -509,11 +625,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ @@ -538,11 +668,25 @@ func connectionResource(ctx context.Context) (resource.Resource, error) { }, /*END ATTRIBUTE*/ // Property: Key "key": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ // Property: Value "value": schema.StringAttribute{ /*START ATTRIBUTE*/ - Required: true, + Optional: true, + Computed: true, + Validators: []validator.String{ /*START VALIDATORS*/ + fwvalidators.NotNullString(), + }, /*END VALIDATORS*/ + PlanModifiers: []planmodifier.String{ /*START PLAN MODIFIERS*/ + stringplanmodifier.UseStateForUnknown(), + }, /*END PLAN MODIFIERS*/ }, /*END ATTRIBUTE*/ }, /*END SCHEMA*/ }, /*END NESTED OBJECT*/ From 76199bc113bac184bc63266691fe229b84f60a1f Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Mon, 23 Sep 2024 13:37:49 -0500 Subject: [PATCH 17/20] run make docs --- docs/resources/events_connection.md | 53 +++++++++-------------------- 1 file changed, 16 insertions(+), 37 deletions(-) diff --git a/docs/resources/events_connection.md b/docs/resources/events_connection.md index b78007e25..9fd4561da 100644 --- a/docs/resources/events_connection.md +++ b/docs/resources/events_connection.md @@ -96,7 +96,7 @@ Optional: ### Nested Schema for `auth_parameters.api_key_auth_parameters` -Required: +Optional: - `api_key_name` (String) - `api_key_value` (String) @@ -105,7 +105,7 @@ Required: ### Nested Schema for `auth_parameters.basic_auth_parameters` -Required: +Optional: - `password` (String) - `username` (String) @@ -123,60 +123,48 @@ Optional: ### Nested Schema for `auth_parameters.invocation_http_parameters.body_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ### Nested Schema for `auth_parameters.invocation_http_parameters.header_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ### Nested Schema for `auth_parameters.invocation_http_parameters.query_string_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ### Nested Schema for `auth_parameters.o_auth_parameters` -Required: +Optional: - `authorization_endpoint` (String) - `client_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--client_parameters)) - `http_method` (String) - -Optional: - - `o_auth_http_parameters` (Attributes) (see [below for nested schema](#nestedatt--auth_parameters--o_auth_parameters--o_auth_http_parameters)) ### Nested Schema for `auth_parameters.o_auth_parameters.client_parameters` -Required: +Optional: - `client_id` (String) - `client_secret` (String) @@ -194,40 +182,31 @@ Optional: ### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.body_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.header_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ### Nested Schema for `auth_parameters.o_auth_parameters.o_auth_http_parameters.query_string_parameters` -Required: - -- `key` (String) -- `value` (String) - Optional: - `is_value_secret` (Boolean) +- `key` (String) +- `value` (String) ## Import From d89d07d9af008dcc557df12e672ad5a9eb449d2a Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Mon, 23 Sep 2024 14:03:31 -0500 Subject: [PATCH 18/20] add CHANGELOG entry --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 16c66a31c..03bd45452 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,8 @@ ## 1.16.0 (Unreleased) + +* **New Data Source:** `awscc_events_connection` +* **New Resource:** `awscc_events_connection` + ## 1.15.0 (September 19, 2024) BUG FIXES: From 329bc770e88c47b13ad884b111062dcda7dab17e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 05:15:14 +0000 Subject: [PATCH 19/20] build(deps): bump actions/checkout from 4.1.7 to 4.2.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/692973e3d937129bcbf40652eb9f2f61becf3332...d632683dd7b4114ad314bca15554477dd762a938) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/documentation-linters.yml | 6 +++--- .github/workflows/feed-approval.yml | 2 +- .github/workflows/feed-comments.yml | 2 +- .github/workflows/goreleaser-ci.yml | 6 +++--- .github/workflows/labelers.yml | 2 +- .github/workflows/linters.yml | 10 +++++----- .github/workflows/projects.yml | 2 +- .github/workflows/pull_request_feed.yml | 2 +- .github/workflows/release.yml | 6 +++--- .github/workflows/tfplugindocs-check.yml | 2 +- 10 files changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/documentation-linters.yml b/.github/workflows/documentation-linters.yml index db5b7f22c..1d4f6280c 100644 --- a/.github/workflows/documentation-linters.yml +++ b/.github/workflows/documentation-linters.yml @@ -18,7 +18,7 @@ jobs: markdown-link-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # 1.0.15 with: use-quiet-mode: "yes" @@ -30,7 +30,7 @@ jobs: markdown-lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: avto-dev/markdown-lint@04d43ee9191307b50935a753da3b775ab695eceb # v1.5.0 with: config: ".markdownlint.yml" @@ -39,7 +39,7 @@ jobs: misspell: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod diff --git a/.github/workflows/feed-approval.yml b/.github/workflows/feed-approval.yml index 193e91454..d6ed04560 100644 --- a/.github/workflows/feed-approval.yml +++ b/.github/workflows/feed-approval.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Community Check - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: sparse-checkout: .github/actions/community_check diff --git a/.github/workflows/feed-comments.yml b/.github/workflows/feed-comments.yml index 08b88841a..9da4ef5f1 100644 --- a/.github/workflows/feed-comments.yml +++ b/.github/workflows/feed-comments.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Community Check - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: sparse-checkout: .github/actions/community_check diff --git a/.github/workflows/goreleaser-ci.yml b/.github/workflows/goreleaser-ci.yml index 98c74d6ec..dab267c98 100644 --- a/.github/workflows/goreleaser-ci.yml +++ b/.github/workflows/goreleaser-ci.yml @@ -21,7 +21,7 @@ jobs: outputs: goreleaser: ${{ steps.filter.outputs.goreleaser }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 id: filter with: @@ -34,7 +34,7 @@ jobs: if: ${{ needs.changes.outputs.goreleaser == 'true' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: go.mod @@ -53,7 +53,7 @@ jobs: # Ref: https://github.com/hashicorp/terraform-provider-awscc/issues/533 runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: go.mod diff --git a/.github/workflows/labelers.yml b/.github/workflows/labelers.yml index bb277ccb0..f82afd5de 100644 --- a/.github/workflows/labelers.yml +++ b/.github/workflows/labelers.yml @@ -36,7 +36,7 @@ jobs: steps: - name: Checkout Community Check - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: sparse-checkout: .github/actions/community_check diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index c0fac39bb..af4547e00 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -20,7 +20,7 @@ jobs: name: go mod download runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod @@ -40,7 +40,7 @@ jobs: needs: [go_mod_download] runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod @@ -70,7 +70,7 @@ jobs: needs: [go_mod_download] runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod @@ -98,7 +98,7 @@ jobs: semgrep: runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - name: semgrep uses: returntocorp/semgrep-action@713efdd345f3035192eaa63f56867b88e63e4e5d # v1 @@ -106,7 +106,7 @@ jobs: needs: [go_mod_download] runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod diff --git a/.github/workflows/projects.yml b/.github/workflows/projects.yml index f0445f7e7..8f31c4b68 100644 --- a/.github/workflows/projects.yml +++ b/.github/workflows/projects.yml @@ -28,7 +28,7 @@ jobs: private-key: ${{ secrets.APP_PEM }} - name: Checkout - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: sparse-checkout: .github/actions/ diff --git a/.github/workflows/pull_request_feed.yml b/.github/workflows/pull_request_feed.yml index 61233ae05..7cb94be9f 100644 --- a/.github/workflows/pull_request_feed.yml +++ b/.github/workflows/pull_request_feed.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Community Check - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: sparse-checkout: .github/actions/community_check diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7eaae8617..7d9cc1284 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: release-notes: runs-on: macos-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 0 - name: Generate Release Notes @@ -48,7 +48,7 @@ jobs: outputs: tag: ${{ steps.highest-version-tag.outputs.tag }} steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: # Allow tag to be fetched when ref is a commit fetch-depth: 0 @@ -71,7 +71,7 @@ jobs: with: app-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PEM }} - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 with: fetch-depth: 0 ref: main diff --git a/.github/workflows/tfplugindocs-check.yml b/.github/workflows/tfplugindocs-check.yml index d3b21e192..5cc7afd7d 100644 --- a/.github/workflows/tfplugindocs-check.yml +++ b/.github/workflows/tfplugindocs-check.yml @@ -21,7 +21,7 @@ jobs: name: tfplugindocs check runs-on: ubuntu-latest steps: - - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + - uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0 - uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2 with: go-version-file: tools/go.mod From 3e375ca8bd9b7a236e17c26bde0e64be93adaced Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 05:49:26 +0000 Subject: [PATCH 20/20] build(deps): bump the aws-sdk-go group across 1 directory with 3 updates Bumps the aws-sdk-go group with 3 updates in the / directory: [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2), [github.com/aws/aws-sdk-go-v2/service/cloudcontrol](https://github.com/aws/aws-sdk-go-v2) and [github.com/aws/aws-sdk-go-v2/service/cloudformation](https://github.com/aws/aws-sdk-go-v2). Updates `github.com/aws/aws-sdk-go-v2/config` from 1.27.36 to 1.27.38 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.27.36...config/v1.27.38) Updates `github.com/aws/aws-sdk-go-v2/service/cloudcontrol` from 1.21.0 to 1.21.2 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.21.0...v1.21.2) Updates `github.com/aws/aws-sdk-go-v2/service/cloudformation` from 1.54.0 to 1.54.2 - [Release notes](https://github.com/aws/aws-sdk-go-v2/releases) - [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.54.0...service/s3/v1.54.2) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go-v2/config dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudcontrol dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go - dependency-name: github.com/aws/aws-sdk-go-v2/service/cloudformation dependency-type: direct:production update-type: version-update:semver-patch dependency-group: aws-sdk-go ... Signed-off-by: dependabot[bot] --- go.mod | 14 +++++++------- go.sum | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/go.mod b/go.mod index 3e3492a17..4d9309af9 100644 --- a/go.mod +++ b/go.mod @@ -4,10 +4,10 @@ go 1.22.7 require ( github.com/aws/aws-sdk-go-v2 v1.31.0 - github.com/aws/aws-sdk-go-v2/config v1.27.36 + github.com/aws/aws-sdk-go-v2/config v1.27.38 github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 - github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0 - github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0 + github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 + github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 github.com/google/go-cmp v0.6.0 github.com/hashicorp/aws-cloudformation-resource-schema-sdk-go v0.23.0 github.com/hashicorp/aws-sdk-go-base/v2 v2.0.0-beta.55 @@ -35,7 +35,7 @@ require ( github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.17.34 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.36 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.18 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 // indirect @@ -49,9 +49,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.16 // indirect github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 // indirect github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 // indirect github.com/aws/smithy-go v1.21.0 // indirect github.com/bgentry/speakeasy v0.1.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect diff --git a/go.sum b/go.sum index 8f8db515b..d9f8af54b 100644 --- a/go.sum +++ b/go.sum @@ -21,10 +21,10 @@ github.com/aws/aws-sdk-go-v2 v1.31.0 h1:3V05LbxTSItI5kUqNwhJrrrY1BAXxXt0sN0l72Qm github.com/aws/aws-sdk-go-v2 v1.31.0/go.mod h1:ztolYtaEUtdpf9Wftr31CJfLVjOnD/CVRkKOOYgF8hA= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4 h1:70PVAiL15/aBMh5LThwgXdSQorVr91L127ttckI9QQU= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.4/go.mod h1:/MQxMqci8tlqDH+pjmoLu1i0tbWCUP1hhyMRuFxpQCw= -github.com/aws/aws-sdk-go-v2/config v1.27.36 h1:4IlvHh6Olc7+61O1ktesh0jOcqmq/4WG6C2Aj5SKXy0= -github.com/aws/aws-sdk-go-v2/config v1.27.36/go.mod h1:IiBpC0HPAGq9Le0Xxb1wpAKzEfAQ3XlYgJLYKEVYcfw= -github.com/aws/aws-sdk-go-v2/credentials v1.17.34 h1:gmkk1l/cDGSowPRzkdxYi8edw+gN4HmVK151D/pqGNc= -github.com/aws/aws-sdk-go-v2/credentials v1.17.34/go.mod h1:4R9OEV3tgFMsok4ZeFpExn7zQaZRa9MRGFYnI/xC/vs= +github.com/aws/aws-sdk-go-v2/config v1.27.38 h1:mMVyJJuSUdbD4zKXoxDgWrgM60QwlFEg+JhihCq6wCw= +github.com/aws/aws-sdk-go-v2/config v1.27.38/go.mod h1:6xOiNEn58bj/64MPKx89r6G/el9JZn8pvVbquSqTKK4= +github.com/aws/aws-sdk-go-v2/credentials v1.17.36 h1:zwI5WrT+oWWfzSKoTNmSyeBKQhsFRJRv+PGW/UZW+Yk= +github.com/aws/aws-sdk-go-v2/credentials v1.17.36/go.mod h1:3AG/sY1rc9NJrNWcN/3KPU4SIDPGTrd/qegKB0TnFdE= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14 h1:C/d03NAmh8C4BZXhuRNboF/DqhBkBCeDiJDcaqIT5pA= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.14/go.mod h1:7I0Ju7p9mCIdlrfS+JCgqcYD0VXz/N4yozsox+0o078= github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.18 h1:kYQ3H1u0ANr9KEKlGs/jTLrBFPo8P8NaH/w7A01NeeM= @@ -35,10 +35,10 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1 h1:VaRN3TlFdd6KxX1x3ILT5ynH6HvK github.com/aws/aws-sdk-go-v2/internal/ini v1.8.1/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16 h1:mimdLQkIX1zr8GIPY1ZtALdBQGxcASiBd2MOp8m/dMc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.16/go.mod h1:YHk6owoSwrIsok+cAH9PENCOGoH5PU2EllX4vLtSrsY= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0 h1:EYVyrlWbbi8fsD8ioak913s0Sqp/79h1iw66wenufYA= -github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.0/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0 h1:xYTmnuV8TUx1cL8ajCM5R472x6trJIvO+ZiKiAxiqhA= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.0/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2 h1:dCuKmwWeHdV4Y1Z4WKp8Ss006WN48EHVcPyMgtWlanU= +github.com/aws/aws-sdk-go-v2/service/cloudcontrol v1.21.2/go.mod h1:m76qmFtlykPrPIMM4wpE3nTukLjkq7bt412UVaQbp1M= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2 h1:0xzfXPA31Hkoi9KnQnkZNll3/KvkeYF8eYAvbjy0FOI= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.54.2/go.mod h1:85xWVAzH8I6dCauQy7j1nt8CbSELPzGQj45chIZ/qMA= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.6 h1:LKZuRTlh8RszjuWcUwEDvCGwjx5olHPp6ZOepyZV5p8= github.com/aws/aws-sdk-go-v2/service/dynamodb v1.34.6/go.mod h1:s2fYaueBuCnwv1XQn6T8TfShxJWusv5tWPMcL+GY6+g= github.com/aws/aws-sdk-go-v2/service/iam v1.35.0 h1:xIjTizH74aMNQBjp9D5cvjRZmOYtnrpjOGU3xkVqrjk= @@ -57,12 +57,12 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1 h1:mx2ucgtv+MWzJesJY9Ig/8AFHgoE5 github.com/aws/aws-sdk-go-v2/service/s3 v1.60.1/go.mod h1:BSPI0EfnYUuNHPS0uqIo5VrRwzie+Fp+YhQOUs16sKI= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5 h1:HYyVDOC2/PIg+3oBX1q0wtDU5kONki6lrgIG0afrBkY= github.com/aws/aws-sdk-go-v2/service/sqs v1.34.5/go.mod h1:7idt3XszF6sE9WPS1GqZRiDJOxw4oPtlRBXodWnCGjU= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.0 h1:fHySkG0IGj2nepgGJPmmhZYL9ndnsq1Tvc6MeuVQCaQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.23.0/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0 h1:cU/OeQPNReyMj1JEBgjE29aclYZYtXcsPMXbTkVGMFk= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.0/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.0 h1:GNVxIHBTi2EgwCxpNiozhNasMOK+ROUA2Z3X+cSBX58= -github.com/aws/aws-sdk-go-v2/service/sts v1.31.0/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.2 h1:yzi/y/vKlLyzOfG7pSu5ONNGRxHIgLeDrV4w2AMRCo0= +github.com/aws/aws-sdk-go-v2/service/sso v1.23.2/go.mod h1:XRlMvmad0ZNL+75C5FYdMvbbLkd6qiqz6foR1nA1PXY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2 h1:3gb6pYhYLjo8rB1h2Tqs61wpjRd3rQymYcVq/pp0yxI= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.27.2/go.mod h1:FnvDM4sfa+isJ3kDXIzAB9GAwVSzFzSy97uZ3IsHo4E= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.2 h1:O6tyji8mXmBGsHvTCB0VIhrDw19lGTUSbKIyjnw79s8= +github.com/aws/aws-sdk-go-v2/service/sts v1.31.2/go.mod h1:yMWe0F+XG0DkRZK5ODZhG7BEFYhLXi2dqGsv6tX0cgI= github.com/aws/smithy-go v1.21.0 h1:H7L8dtDRk0P1Qm6y0ji7MCYMQObJ5R9CRpyPhRUkLYA= github.com/aws/smithy-go v1.21.0/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=