diff --git a/src/aws.go b/src/aws.go index 1c3e5dec..d98dcf5e 100644 --- a/src/aws.go +++ b/src/aws.go @@ -853,6 +853,13 @@ func AwsLookup(name string) interface{} { "aws_chimesdkvoice_sip_media_application": awsChimesdkvoiceSipMediaApplication, "aws_chimesdkvoice_sip_rule": awsChimesdkvoiceSipRule, "aws_chimesdkvoice_voice_profile_domain": awsChimesdkvoiceVoiceProfileDomain, + "aws_appconfig_environment": awsAppconfigEnvironment, + "aws_appconfig_extension": awsAppconfigExtension, + "aws_appconfig_extension_association": awsAppconfigExtensionAssociation, + "aws_bedrockagent_data_source": awsBedrockagentDatasource, + "aws_bedrockagent_knowledge_base": awsBedrockagentKnowledgeBase, + "aws_cleanrooms_collaboration": awsCleanroomsCollaboration, + "aws_cleanrooms_configured_table": awsCleanroomsConfiguredTable, } return TFLookup[name] diff --git a/src/coverage/aws.md b/src/coverage/aws.md index 9cd47a00..82abf2ea 100644 --- a/src/coverage/aws.md +++ b/src/coverage/aws.md @@ -7,9 +7,6 @@ Datasource percentage coverage 100.00 ./resource.ps1 aws_amplify_webhook ./resource.ps1 aws_appconfig_deployment ./resource.ps1 aws_appconfig_deployment_strategy -./resource.ps1 aws_appconfig_environment -./resource.ps1 aws_appconfig_extension -./resource.ps1 aws_appconfig_extension_association ./resource.ps1 aws_appconfig_hosted_configuration_version ./resource.ps1 aws_appfabric_app_authorization ./resource.ps1 aws_appfabric_app_authorization_connection @@ -55,12 +52,8 @@ Datasource percentage coverage 100.00 ./resource.ps1 aws_athena_prepared_statement ./resource.ps1 aws_bcmdataexports_export ./resource.ps1 aws_bedrockagent_agent_knowledge_base_association -./resource.ps1 aws_bedrockagent_data_source -./resource.ps1 aws_bedrockagent_knowledge_base ./resource.ps1 aws_chatbot_slack_channel_configuration ./resource.ps1 aws_chatbot_teams_channel_configuration -./resource.ps1 aws_cleanrooms_collaboration -./resource.ps1 aws_cleanrooms_configured_table ./resource.ps1 aws_cloud9_environment_membership ./resource.ps1 aws_cloudcontrolapi_resource ./resource.ps1 aws_cloudfront_key_value_store diff --git a/src/files.go b/src/files.go index e0746cee..a8dc636d 100644 --- a/src/files.go +++ b/src/files.go @@ -2202,3 +2202,24 @@ var awsChimesdkvoiceSipRule []byte //go:embed mapping/aws/resource/chime/aws_chimesdkvoice_voice_profile_domain.json var awsChimesdkvoiceVoiceProfileDomain []byte + +//go:embed mapping/aws/resource/appconfig/aws_appconfig_environment.json +var awsAppconfigEnvironment []byte + +//go:embed mapping/aws/resource/appconfig/aws_appconfig_extension.json +var awsAppconfigExtension []byte + +//go:embed mapping/aws/resource/appconfig/aws_appconfig_extension_association.json +var awsAppconfigExtensionAssociation []byte + +//go:embed mapping/aws/resource/bedrock/aws_bedrockagent_data_source.json +var awsBedrockagentDatasource []byte + +//go:embed mapping/aws/resource/bedrock/aws_bedrockagent_knowledge_base.json +var awsBedrockagentKnowledgeBase []byte + +//go:embed mapping/aws/resource/cleanrooms/aws_cleanrooms_collaboration.json +var awsCleanroomsCollaboration []byte + +//go:embed mapping/aws/resource/cleanrooms/aws_cleanrooms_configured_table.json +var awsCleanroomsConfiguredTable []byte diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-application.json b/src/mapping/aws/resource/appconfig/aws-appconfig-application.json deleted file mode 100644 index 94b68313..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-application.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "additionalProperties": false, - "definitions": { - "Tags": { - "additionalProperties": false, - "description": "Metadata to assign to the application. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "properties": { - "Key": { - "description": "The key-value string map. The valid character set is [a-zA-Z1-9 +-=._:/-]. The tag key can be up to 128 characters and must not start with aws:.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:.)[a-zA-Z1-9+=._:/-]*$", - "type": "string" - }, - "Value": { - "description": "The tag value can be up to 256 characters.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::AppConfig::Application", - "handlers": { - "create": { - "permissions": [ - "appconfig:CreateApplication", - "appconfig:GetApplication", - "appconfig:ListTagsForResource", - "appconfig:TagResource" - ] - }, - "delete": { - "permissions": [ - "appconfig:GetApplication", - "appconfig:DeleteApplication" - ] - }, - "list": { - "permissions": [ - "appconfig:ListApplications" - ] - }, - "read": { - "permissions": [ - "appconfig:GetApplication", - "appconfig:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "appconfig:UpdateApplication", - "appconfig:TagResource", - "appconfig:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApplicationId" - ], - "properties": { - "ApplicationId": { - "description": "The application Id", - "type": "string" - }, - "Description": { - "description": "A description of the application.", - "type": "string" - }, - "Name": { - "description": "A name for the application.", - "type": "string" - }, - "Tags": { - "description": "Metadata to assign to the application. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tags" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/ApplicationId" - ], - "required": [ - "Name" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AppConfig::Application" -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-deployment.json b/src/mapping/aws/resource/appconfig/aws-appconfig-deployment.json deleted file mode 100644 index 8e7f2d13..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-deployment.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/KmsKeyIdentifier", - "/properties/DeploymentStrategyId", - "/properties/ConfigurationVersion", - "/properties/ApplicationId", - "/properties/ConfigurationProfileId", - "/properties/Tags", - "/properties/EnvironmentId", - "/properties/Description", - "/properties/DynamicExtensionParameters" - ], - "definitions": { - "DynamicExtensionParameters": { - "additionalProperties": false, - "properties": { - "ExtensionReference": { - "type": "string" - }, - "ParameterName": { - "type": "string" - }, - "ParameterValue": { - "type": "string" - } - }, - "type": "object" - }, - "Tags": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::AppConfig::Deployment", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "ApplicationId": { - "type": "string" - }, - "ConfigurationProfileId": { - "type": "string" - }, - "ConfigurationVersion": { - "type": "string" - }, - "DeploymentStrategyId": { - "type": "string" - }, - "Description": { - "type": "string" - }, - "DynamicExtensionParameters": { - "items": { - "$ref": "#/definitions/DynamicExtensionParameters" - }, - "type": "array", - "uniqueItems": false - }, - "EnvironmentId": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "KmsKeyIdentifier": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tags" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "DeploymentStrategyId", - "ConfigurationProfileId", - "EnvironmentId", - "ConfigurationVersion", - "ApplicationId" - ], - "typeName": "AWS::AppConfig::Deployment" -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-deploymentstrategy.json b/src/mapping/aws/resource/appconfig/aws-appconfig-deploymentstrategy.json deleted file mode 100644 index 9dc2661b..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-deploymentstrategy.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/ReplicateTo" - ], - "definitions": { - "Tags": { - "additionalProperties": false, - "properties": { - "Key": { - "type": "string" - }, - "Value": { - "type": "string" - } - }, - "type": "object" - } - }, - "description": "Resource Type definition for AWS::AppConfig::DeploymentStrategy", - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "DeploymentDurationInMinutes": { - "type": "number" - }, - "Description": { - "type": "string" - }, - "FinalBakeTimeInMinutes": { - "type": "number" - }, - "GrowthFactor": { - "type": "number" - }, - "GrowthType": { - "type": "string" - }, - "Id": { - "type": "string" - }, - "Name": { - "type": "string" - }, - "ReplicateTo": { - "type": "string" - }, - "Tags": { - "items": { - "$ref": "#/definitions/Tags" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id" - ], - "required": [ - "ReplicateTo", - "DeploymentDurationInMinutes", - "GrowthFactor", - "Name" - ], - "typeName": "AWS::AppConfig::DeploymentStrategy" -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-environment.json b/src/mapping/aws/resource/appconfig/aws-appconfig-environment.json deleted file mode 100644 index 95aef1ab..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-environment.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApplicationId" - ], - "definitions": { - "Monitor": { - "additionalProperties": false, - "description": "Amazon CloudWatch alarm to monitor during the deployment process.", - "properties": { - "AlarmArn": { - "description": "Amazon Resource Name (ARN) of the Amazon CloudWatch alarm.", - "maxLength": 2048, - "minLength": 1, - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::CloudWatch::Alarm" - }, - "type": "string" - }, - "AlarmRoleArn": { - "description": "ARN of an AWS Identity and Access Management (IAM) role for AWS AppConfig to monitor AlarmArn.", - "maxLength": 2048, - "minLength": 20, - "pattern": "^((arn):(aws|aws-cn|aws-iso|aws-iso-[a-z]{1}|aws-us-gov):(iam)::\\d{12}:role[/].*)$", - "relationshipRef": { - "propertyPath": "/properties/Arn", - "typeName": "AWS::IAM::Role" - }, - "type": "string" - } - }, - "required": [ - "AlarmArn" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "properties": { - "Key": { - "description": "The key-value string map. The valid character set is [a-zA-Z1-9+-=._:/]. The tag key can be up to 128 characters and must not start with aws:.", - "maxLength": 128, - "minLength": 1, - "pattern": "^(?!aws:.)[a-zA-Z1-9+=._:/-]*$", - "type": "string" - }, - "Value": { - "description": "The tag value can be up to 256 characters.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::AppConfig::Environment", - "handlers": { - "create": { - "permissions": [ - "appconfig:CreateEnvironment", - "appconfig:GetEnvironment", - "appconfig:ListTagsForResource", - "appconfig:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "appconfig:GetEnvironment", - "appconfig:DeleteEnvironment" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ApplicationId": { - "$ref": "resource-schema.json#/properties/ApplicationId" - } - }, - "required": [ - "ApplicationId" - ] - }, - "permissions": [ - "appconfig:ListEnvironments" - ] - }, - "read": { - "permissions": [ - "appconfig:GetEnvironment", - "appconfig:ListTagsForResource" - ] - }, - "update": { - "permissions": [ - "appconfig:UpdateEnvironment", - "appconfig:TagResource", - "appconfig:UntagResource", - "iam:PassRole" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApplicationId", - "/properties/EnvironmentId" - ], - "properties": { - "ApplicationId": { - "description": "The application ID.", - "pattern": "[a-z0-9]{4,7}", - "type": "string" - }, - "Description": { - "description": "A description of the environment.", - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "EnvironmentId": { - "description": "The environment ID.", - "pattern": "[a-z0-9]{4,7}", - "type": "string" - }, - "Monitors": { - "description": "Amazon CloudWatch alarms to monitor during the deployment process.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Monitor" - }, - "maxItems": 5, - "minItems": 0, - "type": "array" - }, - "Name": { - "description": "A name for the environment.", - "maxLength": 64, - "minLength": 1, - "type": "string" - }, - "Tags": { - "description": "Metadata to assign to the environment. Tags help organize and categorize your AWS AppConfig resources. Each tag consists of a key and an optional value, both of which you define.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": true - } - }, - "readOnlyProperties": [ - "/properties/EnvironmentId" - ], - "required": [ - "Name", - "ApplicationId" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AppConfig::Environment" -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-extension.json b/src/mapping/aws/resource/appconfig/aws-appconfig-extension.json deleted file mode 100644 index e668da3e..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-extension.json +++ /dev/null @@ -1,209 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/Name", - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ], - "definitions": { - "Action": { - "additionalProperties": false, - "description": "An action for an extension to take at a specific action point.", - "properties": { - "Description": { - "description": "The description of the extension Action.", - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Name": { - "description": "The name of the extension action.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "RoleArn": { - "description": "The ARN of the role for invoking the extension action.", - "maxLength": 2048, - "minLength": 20, - "type": "string" - }, - "Uri": { - "description": "The URI of the extension action.", - "maxLength": 2048, - "minLength": 1, - "type": "string" - } - }, - "required": [ - "Name", - "Uri" - ], - "type": "object" - }, - "Actions": { - "description": "A list of actions for an extension to take at a specific action point.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Action" - }, - "type": "array", - "uniqueItems": true - }, - "Parameter": { - "additionalProperties": false, - "description": "A parameter for the extension to send to a specific action.", - "properties": { - "Description": { - "description": "The description of the extension Parameter.", - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "Dynamic": { - "type": "boolean" - }, - "Required": { - "type": "boolean" - } - }, - "required": [ - "Required" - ], - "type": "object" - }, - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "Resource Type definition for AWS::AppConfig::Extension", - "handlers": { - "create": { - "permissions": [ - "appconfig:CreateExtension", - "appconfig:TagResource", - "iam:PassRole" - ] - }, - "delete": { - "permissions": [ - "appconfig:DeleteExtension", - "appconfig:UntagResource" - ] - }, - "list": { - "permissions": [ - "appconfig:ListExtensions" - ] - }, - "read": { - "permissions": [ - "appconfig:GetExtension" - ] - }, - "update": { - "permissions": [ - "appconfig:UpdateExtension", - "appconfig:TagResource", - "appconfig:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Actions": { - "additionalProperties": false, - "patternProperties": { - "^.+$": { - "$ref": "#/definitions/Actions" - } - }, - "type": "object" - }, - "Arn": { - "type": "string" - }, - "Description": { - "description": "Description of the extension.", - "type": "string" - }, - "Id": { - "type": "string" - }, - "LatestVersionNumber": { - "type": "integer" - }, - "Name": { - "description": "Name of the extension.", - "type": "string" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^.+$": { - "$ref": "#/definitions/Parameter" - } - }, - "type": "object" - }, - "Tags": { - "description": "An array of key-value tags to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - }, - "VersionNumber": { - "type": "integer" - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/VersionNumber" - ], - "required": [ - "Name", - "Actions" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AppConfig::Extension", - "writeOnlyProperties": [ - "/properties/LatestVersionNumber", - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ] -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-extensionassociation.json b/src/mapping/aws/resource/appconfig/aws-appconfig-extensionassociation.json deleted file mode 100644 index 6833dfe8..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-extensionassociation.json +++ /dev/null @@ -1,134 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ExtensionIdentifier", - "/properties/ResourceIdentifier", - "/properties/ExtensionVersionNumber", - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ], - "definitions": { - "Tag": { - "additionalProperties": false, - "description": "A key-value pair to associate with a resource.", - "properties": { - "Key": { - "description": "The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 128, - "minLength": 1, - "type": "string" - }, - "Value": { - "description": "The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.", - "maxLength": 256, - "minLength": 0, - "type": "string" - } - }, - "required": [ - "Key", - "Value" - ], - "type": "object" - } - }, - "description": "An example resource schema demonstrating some basic constructs and validation rules.", - "handlers": { - "create": { - "permissions": [ - "appconfig:CreateExtensionAssociation", - "appconfig:TagResource" - ] - }, - "delete": { - "permissions": [ - "appconfig:DeleteExtensionAssociation", - "appconfig:UntagResource" - ] - }, - "list": { - "permissions": [ - "appconfig:ListExtensionAssociations" - ] - }, - "read": { - "permissions": [ - "appconfig:GetExtensionAssociation" - ] - }, - "update": { - "permissions": [ - "appconfig:UpdateExtensionAssociation", - "appconfig:TagResource", - "appconfig:UntagResource" - ] - } - }, - "primaryIdentifier": [ - "/properties/Id" - ], - "properties": { - "Arn": { - "type": "string" - }, - "ExtensionArn": { - "type": "string" - }, - "ExtensionIdentifier": { - "type": "string" - }, - "ExtensionVersionNumber": { - "type": "integer" - }, - "Id": { - "type": "string" - }, - "Parameters": { - "additionalProperties": false, - "patternProperties": { - "^.+$": { - "type": "string" - } - }, - "type": "object" - }, - "ResourceArn": { - "type": "string" - }, - "ResourceIdentifier": { - "type": "string" - }, - "Tags": { - "description": "An array of key-value pairs to apply to this resource.", - "insertionOrder": false, - "items": { - "$ref": "#/definitions/Tag" - }, - "type": "array", - "uniqueItems": false - } - }, - "readOnlyProperties": [ - "/properties/Id", - "/properties/Arn", - "/properties/ResourceArn", - "/properties/ExtensionArn" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-rpdk.git", - "tagging": { - "cloudFormationSystemTags": true, - "tagOnCreate": true, - "tagProperty": "/properties/Tags", - "tagUpdatable": true, - "taggable": true - }, - "typeName": "AWS::AppConfig::ExtensionAssociation", - "writeOnlyProperties": [ - "/properties/ExtensionIdentifier", - "/properties/ResourceIdentifier", - "/properties/Tags", - "/properties/Tags/*/Key", - "/properties/Tags/*/Value" - ] -} diff --git a/src/mapping/aws/resource/appconfig/aws-appconfig-hostedconfigurationversion.json b/src/mapping/aws/resource/appconfig/aws-appconfig-hostedconfigurationversion.json deleted file mode 100644 index e1cf9a2e..00000000 --- a/src/mapping/aws/resource/appconfig/aws-appconfig-hostedconfigurationversion.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "additionalProperties": false, - "createOnlyProperties": [ - "/properties/ApplicationId", - "/properties/ConfigurationProfileId", - "/properties/Description", - "/properties/Content", - "/properties/ContentType", - "/properties/LatestVersionNumber", - "/properties/VersionLabel" - ], - "description": "Resource Type definition for AWS::AppConfig::HostedConfigurationVersion", - "handlers": { - "create": { - "permissions": [ - "appconfig:CreateHostedConfigurationVersion" - ] - }, - "delete": { - "permissions": [ - "appconfig:DeleteHostedConfigurationVersion" - ] - }, - "list": { - "handlerSchema": { - "properties": { - "ApplicationId": { - "$ref": "resource-schema.json#/properties/ApplicationId" - }, - "ConfigurationProfileId": { - "$ref": "resource-schema.json#/properties/ConfigurationProfileId" - } - }, - "required": [ - "ApplicationId", - "ConfigurationProfileId" - ] - }, - "permissions": [ - "appconfig:ListHostedConfigurationVersions" - ] - }, - "read": { - "permissions": [ - "appconfig:GetHostedConfigurationVersion" - ] - } - }, - "primaryIdentifier": [ - "/properties/ApplicationId", - "/properties/ConfigurationProfileId", - "/properties/VersionNumber" - ], - "properties": { - "ApplicationId": { - "description": "The application ID.", - "pattern": "[a-z0-9]{4,7}", - "type": "string" - }, - "ConfigurationProfileId": { - "description": "The configuration profile ID.", - "pattern": "[a-z0-9]{4,7}", - "type": "string" - }, - "Content": { - "description": "The content of the configuration or the configuration data.", - "type": "string" - }, - "ContentType": { - "description": "A standard MIME type describing the format of the configuration content.", - "maxLength": 255, - "minLength": 1, - "type": "string" - }, - "Description": { - "description": "A description of the hosted configuration version.", - "maxLength": 1024, - "minLength": 0, - "type": "string" - }, - "LatestVersionNumber": { - "description": "An optional locking token used to prevent race conditions from overwriting configuration updates when creating a new version. To ensure your data is not overwritten when creating multiple hosted configuration versions in rapid succession, specify the version number of the latest hosted configuration version.", - "type": "integer" - }, - "VersionLabel": { - "description": "A user-defined label for an AWS AppConfig hosted configuration version.", - "maxLength": 64, - "minLength": 0, - "pattern": "^$|.*[^0-9].*", - "type": "string" - }, - "VersionNumber": { - "description": "Current version number of hosted configuration version.", - "type": "string" - } - }, - "readOnlyProperties": [ - "/properties/VersionNumber" - ], - "required": [ - "ApplicationId", - "ConfigurationProfileId", - "Content", - "ContentType" - ], - "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-appconfig.git", - "tagging": { - "cloudFormationSystemTags": false, - "tagOnCreate": false, - "tagUpdatable": false, - "taggable": false - }, - "typeName": "AWS::AppConfig::HostedConfigurationVersion", - "writeOnlyProperties": [ - "/properties/LatestVersionNumber" - ] -} diff --git a/src/mapping/aws/resource/appconfig/aws_appconfig_environment.json b/src/mapping/aws/resource/appconfig/aws_appconfig_environment.json new file mode 100644 index 00000000..91ab843d --- /dev/null +++ b/src/mapping/aws/resource/appconfig/aws_appconfig_environment.json @@ -0,0 +1,28 @@ +[ + { + "apply": [ + "appconfig:CreateEnvironment", + "appconfig:DeleteEnvironment", + "appconfig:GetEnvironment", + "appconfig:UpdateEnvironment", + "appconfig:ListTagsForResource", + "iam:PassRole" + ], + "attributes": { + "tags": [ + "appconfig:TagResource", + "appconfig:UntagResource" + ] + }, + "destroy": [ + "appconfig:DeleteEnvironment" + ], + "modify": [ + "appconfig:UpdateEnvironment", + "iam:PassRole" + ], + "plan": [ + "appconfig:GetEnvironment" + ] + } +] diff --git a/src/mapping/aws/resource/appconfig/aws_appconfig_extension.json b/src/mapping/aws/resource/appconfig/aws_appconfig_extension.json new file mode 100644 index 00000000..142383f4 --- /dev/null +++ b/src/mapping/aws/resource/appconfig/aws_appconfig_extension.json @@ -0,0 +1,26 @@ +[ + { + "apply": [ + "appconfig:CreateExtension", + "appconfig:DeleteExtension", + "appconfig:UpdateExtension", + "appconfig:GetExtension", + "iam:PassRole" + ], + "attributes": { + "tags": [ + "appconfig:TagResource", + "appconfig:UntagResource" + ] + }, + "destroy": [ + "appconfig:DeleteExtension" + ], + "modify": [ + "appconfig:UpdateExtension" + ], + "plan": [ + "appconfig:GetExtension" + ] + } +] diff --git a/src/mapping/aws/resource/appconfig/aws_appconfig_extension_association.json b/src/mapping/aws/resource/appconfig/aws_appconfig_extension_association.json new file mode 100644 index 00000000..09c7f313 --- /dev/null +++ b/src/mapping/aws/resource/appconfig/aws_appconfig_extension_association.json @@ -0,0 +1,25 @@ +[ + { + "apply": [ + "appconfig:CreateExtensionAssociation", + "appconfig:DeleteExtensionAssociation", + "appconfig:GetExtensionAssociation", + "appconfig:UpdateExtensionAssociation" + ], + "attributes": { + "tags": [ + "appconfig:TagResource", + "appconfig:UntagResource" + ] + }, + "destroy": [ + "appconfig:DeleteExtensionAssociation" + ], + "modify": [ + "appconfig:UpdateExtensionAssociation" + ], + "plan": [ + "appconfig:GetExtensionAssociation" + ] + } +] diff --git a/src/mapping/aws/resource/bedrock/aws_bedrockagent_data_source.json b/src/mapping/aws/resource/bedrock/aws_bedrockagent_data_source.json new file mode 100644 index 00000000..7518783a --- /dev/null +++ b/src/mapping/aws/resource/bedrock/aws_bedrockagent_data_source.json @@ -0,0 +1,23 @@ +[ + { + "apply": [ + "bedrock:CreateDataSource", + "bedrock:GetDataSource", + "bedrock:GetKnowledgeBase", + "bedrock:UpdateDataSource", + "bedrock:DeleteDataSource" + ], + "attributes": { + "tags": [] + }, + "destroy": [ + "bedrock:DeleteDataSource" + ], + "modify": [ + "bedrock:UpdateDataSource" + ], + "plan": [ + "bedrock:GetDataSource" + ] + } +] diff --git a/src/mapping/aws/resource/bedrock/aws_bedrockagent_knowledge_base.json b/src/mapping/aws/resource/bedrock/aws_bedrockagent_knowledge_base.json new file mode 100644 index 00000000..45e4fdaf --- /dev/null +++ b/src/mapping/aws/resource/bedrock/aws_bedrockagent_knowledge_base.json @@ -0,0 +1,11 @@ +[ + { + "apply": [], + "attributes": { + "tags": [] + }, + "destroy": [], + "modify": [], + "plan": [] + } +] diff --git a/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_collaboration.json b/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_collaboration.json new file mode 100644 index 00000000..656b2ffa --- /dev/null +++ b/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_collaboration.json @@ -0,0 +1,29 @@ +[ + { + "apply": [ + "cleanrooms:CreateCollaboration", + "cleanrooms:GetCollaboration", + "cleanrooms:ListMembers", + "cleanrooms:ListTagsForResource", + "cleanrooms:GetCollaboration", + "cleanrooms:ListCollaborations", + "cleanrooms:DeleteCollaboration", + "cleanrooms:UpdateCollaboration" + ], + "attributes": { + "tags": [ + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + }, + "destroy": [ + "cleanrooms:DeleteCollaboration" + ], + "modify": [ + "cleanrooms:UpdateCollaboration" + ], + "plan": [ + "cleanrooms:GetCollaboration" + ] + } +] diff --git a/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_configured_table.json b/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_configured_table.json new file mode 100644 index 00000000..e42adff3 --- /dev/null +++ b/src/mapping/aws/resource/cleanrooms/aws_cleanrooms_configured_table.json @@ -0,0 +1,42 @@ +[ + { + "apply": [ + "cleanrooms:CreateConfiguredTable", + "cleanrooms:DeleteConfiguredTable", + "cleanrooms:DeleteConfiguredTableAnalysisRule", + "cleanrooms:CreateConfiguredTableAnalysisRule", + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "glue:GetDatabase", + "glue:GetDatabases", + "glue:GetTable", + "glue:GetTables", + "glue:GetPartition", + "glue:GetPartitions", + "glue:BatchGetPartition", + "glue:GetSchemaVersion", + "cleanrooms:ListTagsForResource", + "cleanrooms:ListConfiguredTables", + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:UpdateConfiguredTableAnalysisRule" + ], + "attributes": { + "tags": [ + "cleanrooms:TagResource", + "cleanrooms:UntagResource" + ] + }, + "destroy": [ + "cleanrooms:DeleteConfiguredTable" + ], + "modify": [ + "cleanrooms:UpdateConfiguredTable", + "cleanrooms:UpdateConfiguredTableAnalysisRule" + ], + "plan": [ + "cleanrooms:GetConfiguredTable", + "cleanrooms:GetConfiguredTableAnalysisRule", + "cleanrooms:ListTagsForResource" + ] + } +] diff --git a/terraform/aws/backup/aws_appconfig_environment.tf b/terraform/aws/backup/aws_appconfig_environment.tf new file mode 100644 index 00000000..731b1b5a --- /dev/null +++ b/terraform/aws/backup/aws_appconfig_environment.tf @@ -0,0 +1,14 @@ +resource "aws_appconfig_environment" "pike" { + name = "example-environment-tf" + description = "Example AppConfig Environment" + application_id = aws_appconfig_application.example.id + + monitor { + alarm_arn = aws_cloudwatch_metric_alarm.example.arn + alarm_role_arn = aws_iam_role.example.arn + } + + tags = { + Type = "AppConfig Environment" + } +} diff --git a/terraform/aws/backup/aws_appconfig_extension.tf b/terraform/aws/backup/aws_appconfig_extension.tf new file mode 100644 index 00000000..367a7407 --- /dev/null +++ b/terraform/aws/backup/aws_appconfig_extension.tf @@ -0,0 +1,15 @@ +resource "aws_appconfig_extension" "pike" { + name = "test" + description = "test description" + action_point { + point = "ON_DEPLOYMENT_COMPLETE" + action { + name = "test" + role_arn = aws_iam_role.test.arn + uri = aws_sns_topic.test.arn + } + } + tags = { + Type = "AppConfig Extension" + } +} diff --git a/terraform/aws/backup/aws_appconfig_extension_association.tf b/terraform/aws/backup/aws_appconfig_extension_association.tf new file mode 100644 index 00000000..71a199c8 --- /dev/null +++ b/terraform/aws/backup/aws_appconfig_extension_association.tf @@ -0,0 +1,4 @@ +resource "aws_appconfig_extension_association" "pike" { + extension_arn = aws_appconfig_extension.pike.arn + resource_arn = aws_appconfig_application.pike.arn +} diff --git a/terraform/aws/backup/aws_bedrockagent_data_source.tf b/terraform/aws/backup/aws_bedrockagent_data_source.tf new file mode 100644 index 00000000..ee08bfd1 --- /dev/null +++ b/terraform/aws/backup/aws_bedrockagent_data_source.tf @@ -0,0 +1,10 @@ +resource "aws_bedrockagent_data_source" "pike" { + knowledge_base_id = "EMDPPAYPZI" + name = "example" + data_source_configuration { + type = "S3" + s3_configuration { + bucket_arn = "arn:aws:s3:::example-bucket" + } + } +} diff --git a/terraform/aws/backup/aws_bedrockagent_knowledge_base.tf b/terraform/aws/backup/aws_bedrockagent_knowledge_base.tf new file mode 100644 index 00000000..9901c17a --- /dev/null +++ b/terraform/aws/backup/aws_bedrockagent_knowledge_base.tf @@ -0,0 +1,22 @@ +resource "aws_bedrockagent_knowledge_base" "pike" { + name = "example" + role_arn = aws_iam_role.example.arn + knowledge_base_configuration { + vector_knowledge_base_configuration { + embedding_model_arn = "arn:aws:bedrock:us-west-2::foundation-model/ amazon. titan-embed-text-v1" + } + type = "VECTOR" + } + storage_configuration { + type = "OPENSEARCH_SERVERLESS" + opensearch_serverless_configuration { + collection_arn = "arn:aws:aoss:us-west-2:123456789012:collection/ 142bezjddq707i5stcrf" + vector_index_name = "bedrock-knowledge-base-default-index" + field_mapping { + vector_field = "bedrock-knowledge-base-default-vector" + text_field = "AMAZON_BEDROCK_TEXT_CHUNK" + metadata_field = "AMAZON_BEDROCK_METADATA" + } + } + } +} diff --git a/terraform/aws/backup/aws_cleanrooms_collaboration.tf b/terraform/aws/backup/aws_cleanrooms_collaboration.tf new file mode 100644 index 00000000..abae1589 --- /dev/null +++ b/terraform/aws/backup/aws_cleanrooms_collaboration.tf @@ -0,0 +1,25 @@ +resource "aws_cleanrooms_collaboration" "pike" { + name = "terraform-example-collaboration" + creator_member_abilities = ["CAN_QUERY", "CAN_RECEIVE_RESULTS"] + creator_display_name = "Creator " + description = "I made this collaboration with terraform!" + query_log_status = "DISABLED" + + data_encryption_metadata { + allow_clear_text = true + allow_duplicates = true + allow_joins_on_columns_with_different_names = true + preserve_nulls = false + } + + member { + account_id = 123456789012 + display_name = "Other member" + member_abilities = [] + } + + tags = { + Project = "Terraform" + } + +} diff --git a/terraform/aws/backup/aws_cleanrooms_configured_table.tf b/terraform/aws/backup/aws_cleanrooms_configured_table.tf new file mode 100644 index 00000000..457b40bb --- /dev/null +++ b/terraform/aws/backup/aws_cleanrooms_configured_table.tf @@ -0,0 +1,19 @@ +resource "aws_cleanrooms_configured_table" "pike" { + name = "terraform-example-table" + description = "I made this table with terraform!" + analysis_method = "DIRECT_QUERY" + allowed_columns = [ + "column1", + "column2", + "column3", + ] + + table_reference { + database_name = "example_database" + table_name = "example_table" + } + + tags = { + Project = "Terraform" + } +}