types
Creates, updates, deletes, gets or lists a types resource.
Overview
| Name | types |
| Type | Resource |
| Id | aws.cloudformation.types |
Fields
The following fields are returned by SELECT queries:
- describe_type
- list_types
| Name | Datatype | Description |
|---|---|---|
original_type_name | string | The type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see Use aliases to refer to extensions in the CloudFormation User Guide. |
publisher_id | string | The publisher ID of the extension publisher. |
supported_major_versions | string | A list of the major versions of the extension type that the macro supports. |
type_name_alias | string | An alias assigned to the public extension, in this account and Region. If you specify an alias for the extension, CloudFormation treats the alias as the extension type name within this account and Region. You must use the alias to refer to the extension in your templates, API calls, and CloudFormation console. |
| Name | Datatype | Description |
|---|---|---|
default_version_id | string | The ID of the default version of the extension. The default version is used when the extension version isn't specified. This applies only to private extensions you have registered in your account. For public extensions, both those provided by Amazon and published by third parties, CloudFormation returns null. For more information, see RegisterType. To set the default version of an extension, use SetTypeDefaultVersion. |
description | string | The description of the extension. |
is_activated | boolean | Whether the extension is activated for this account and Region. This applies only to third-party public extensions. Extensions published by Amazon are activated by default. |
last_updated | string | When the specified extension version was registered. This applies only to: Private extensions you have registered in your account. For more information, see RegisterType. Public extensions you have activated in your account with auto-update specified. For more information, see ActivateType. For all other extension types, CloudFormation returns null. |
latest_public_version | string | For public extensions that have been activated for this account and Region, the latest version of the public extension that is available. For any extensions other than activated third-party extensions, CloudFormation returns null. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see Automatically use new versions of extensions in the CloudFormation User Guide. |
original_type_name | string | For public extensions that have been activated for this account and Region, the type name of the public extension. If you specified a TypeNameAlias when enabling the extension in this account and Region, CloudFormation treats that alias as the extension's type name within the account and Region, not the type name of the public extension. For more information, see Use aliases to refer to extensions in the CloudFormation User Guide. |
public_version_number | string | For public extensions that have been activated for this account and Region, the version of the public extension to be used for CloudFormation operations in this account and Region. How you specified AutoUpdate when enabling the extension affects whether CloudFormation automatically updates the extension in this account and Region when a new version is released. For more information, see Automatically use new versions of extensions in the CloudFormation User Guide. |
publisher_id | string | The ID of the extension publisher, if the extension is published by a third party. Extensions published by Amazon don't return a publisher ID. |
publisher_identity | string | The service used to verify the publisher identity. For more information, see Publishing extensions to make them available for public use in the CloudFormation Command Line Interface (CLI) User Guide. |
publisher_name | string | The publisher name, as defined in the public profile for that publisher in the service used to verify the publisher identity. |
type | string | The kind of extension. |
type_arn | string | The ARN of the extension. |
type_name | string | The name of the extension. If you specified a TypeNameAlias when you call the ActivateType API operation in your account and Region, CloudFormation considers that alias as the type name. |
Methods
The following methods are available for this resource:
| Name | Accessible by | Required Params | Optional Params | Description |
|---|---|---|---|---|
describe_type | select | TypeName, region | Type, Arn, VersionId, PublisherId, PublicVersionNumber | Returns detailed information about an extension from the CloudFormation registry in your current account and Region. If you specify a VersionId, DescribeType returns information about that specific extension version. Otherwise, it returns information about the default extension version. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide. |
list_types | select | region | Visibility, ProvisioningType, DeprecatedStatus, Type, Filters, MaxResults, NextToken | Returns summary information about all extensions, including your private resource types, modules, and Hooks as well as all public extensions from Amazon Web Services and third-party publishers. |
register_type | insert | TypeName, SchemaHandlerPackage, region | Type, LoggingConfig, ExecutionRoleArn, ClientRequestToken | Registers an extension with the CloudFormation service. Registering an extension makes it available for use in CloudFormation templates in your Amazon Web Services account, and includes: Validating the extension schema. Determining which handlers, if any, have been specified for the extension. Making the extension available for use in your account. For more information about how to develop extensions and ready them for registration, see Creating resource types using the CloudFormation CLI in the CloudFormation Command Line Interface (CLI) User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per Region. Use DeregisterType to deregister specific extension versions if necessary. Once you have initiated a registration request using RegisterType, you can use DescribeTypeRegistration to monitor the progress of the registration request. Once you have registered a private extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide. |
set_type_configuration | update | Configuration, region | TypeArn, ConfigurationAlias, TypeName, Type | Specifies the configuration data for a CloudFormation extension, such as a resource or Hook, in the given account and Region. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide. To view the current configuration data for an extension, refer to the ConfigurationSchema element of DescribeType. It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more information, see Specify values stored in other services using dynamic references in the CloudFormation User Guide. For more information about setting the configuration data for resource types, see Defining the account-level configuration of an extension in the CloudFormation Command Line Interface (CLI) User Guide. For more information about setting the configuration data for Hooks, see the CloudFormation Hooks User Guide. |
set_type_default_version | update | region | Arn, Type, TypeName, VersionId | Specify the default version of an extension. The default version of an extension will be used in CloudFormation operations. |
deregister_type | delete | region | Arn, Type, TypeName, VersionId | Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. To deregister an entire extension, you must individually deregister all active versions of that extension. If an extension has only a single active version, deregistering that version results in the extension itself being deregistered and marked as deprecated in the registry. You can't deregister the default version of an extension if there are other active version of that extension. If you do deregister the default version of an extension, the extension type itself is deregistered as well and marked as deprecated. To view the deprecation status of an extension or extension version, use DescribeType. For more information, see Remove third-party private extensions from your account in the CloudFormation User Guide. |
Parameters
Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
| Name | Datatype | Description |
|---|---|---|
Configuration | string | The configuration data for the extension in this account and Region. The configuration data must be formatted as JSON and validate against the extension's schema returned in the Schema response element of DescribeType. |
SchemaHandlerPackage | string | A URL to the S3 bucket that contains the extension project package that contains the necessary files for the extension you want to register. For information about generating a schema handler package for the extension you want to register, see submit in the CloudFormation Command Line Interface (CLI) User Guide. The user registering the extension must be able to access the package in the S3 bucket. That's, the user needs to have GetObject permissions for the schema handler package. For more information, see Actions, Resources, and Condition Keys for Amazon S3 in the Identity and Access Management User Guide. |
TypeName | string | The name of the extension being registered. We suggest that extension names adhere to the following patterns: For resource types, company_or_organization::service::type. For modules, company_or_organization::service::type::MODULE. For Hooks, MyCompany::Testing::MyTestHook. The following organization namespaces are reserved and can't be used in your extension names: Alexa AMZN Amazon AWS Custom Dev |
region | string | AWS region (default: us-east-1) |
Arn | string | The Amazon Resource Name (ARN) of the extension. Conditional: You must specify either TypeName and Type, or Arn. |
ClientRequestToken | string | A unique identifier that acts as an idempotency key for this registration request. Specifying a client request token prevents CloudFormation from generating more than one version of an extension from the same registration request, even if the request is submitted multiple times. |
ConfigurationAlias | string | An alias by which to refer to this extension configuration data. Conditional: Specifying a configuration alias is required when setting a configuration for a resource type extension. |
DeprecatedStatus | string | The deprecation status of the extension that you want to get summary information about. Valid values include: LIVE: The extension is registered for use in CloudFormation operations. DEPRECATED: The extension has been deregistered and can no longer be used in CloudFormation operations. |
ExecutionRoleArn | string | The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension. For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the CloudFormation service principal (resources.cloudformation.amazonaws.com). For more information about adding trust relationships, see Modifying a role trust policy in the Identity and Access Management User Guide. If your extension calls Amazon Web Services APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials. |
Filters | object | Filter criteria to use in determining which extensions to return. Filters must be compatible with Visibility to return valid results. For example, specifying AWS_TYPES for Category and PRIVATE for Visibility returns an empty list of types, but specifying PUBLIC for Visibility returns the desired list. |
LoggingConfig | object | Specifies logging configuration information for an extension. |
MaxResults | integer | The maximum number of results to be returned with a single call. If the number of available results exceeds this maximum, the response includes a NextToken value that you can assign to the NextToken request parameter to get the next set of results. |
NextToken | string | The token for the next set of items to return. (You received this token from a previous call.) |
ProvisioningType | string | For resource types, the provisioning behavior of the resource type. CloudFormation determines the provisioning type during registration, based on the types of handlers in the schema handler package submitted. Valid values include: FULLY_MUTABLE: The resource type includes an update handler to process updates to the type during stack update operations. IMMUTABLE: The resource type doesn't include an update handler, so the type can't be updated and must instead be replaced during stack update operations. NON_PROVISIONABLE: The resource type doesn't include create, read, and delete handlers, and therefore can't actually be provisioned. The default is FULLY_MUTABLE. |
PublicVersionNumber | string | The version number of a public third-party extension. |
PublisherId | string | The publisher ID of the extension publisher. Extensions provided by Amazon Web Services are not assigned a publisher ID. |
Type | string | The kind of extension. Conditional: You must specify either TypeName and Type, or Arn. |
TypeArn | string | The Amazon Resource Name (ARN) for the extension in this account and Region. For public extensions, this will be the ARN assigned when you call the ActivateType API operation in this account and Region. For private extensions, this will be the ARN assigned when you call the RegisterType API operation in this account and Region. Do not include the extension versions suffix at the end of the ARN. You can set the configuration for an extension, but not for a specific extension version. |
TypeName | string | The name of the extension. Conditional: You must specify either TypeName and Type, or Arn. |
VersionId | string | The ID of a specific version of the extension. The version ID is the value at the end of the Amazon Resource Name (ARN) assigned to the extension version when it is registered. |
Visibility | string | The scope at which the extensions are visible and usable in CloudFormation operations. Valid values include: PRIVATE: Extensions that are visible and usable within this account and Region. This includes: Private extensions you have registered in this account and Region. Public extensions that you have activated in this account and Region. PUBLIC: Extensions that are publicly visible and available to be activated within any Amazon Web Services account. This includes extensions from Amazon Web Services and third-party publishers. The default is PRIVATE. |
SELECT examples
- describe_type
- list_types
Returns detailed information about an extension from the CloudFormation registry in your current account and Region. If you specify a VersionId, DescribeType returns information about that specific extension version. Otherwise, it returns information about the default extension version. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide.
SELECT
original_type_name,
publisher_id,
supported_major_versions,
type_name_alias
FROM aws.cloudformation.types
WHERE TypeName = '{{ TypeName }}' -- required
AND region = '{{ region }}' -- required
AND Type = '{{ Type }}'
AND Arn = '{{ Arn }}'
AND VersionId = '{{ VersionId }}'
AND PublisherId = '{{ PublisherId }}'
AND PublicVersionNumber = '{{ PublicVersionNumber }}'
;
Returns summary information about all extensions, including your private resource types, modules, and Hooks as well as all public extensions from Amazon Web Services and third-party publishers.
SELECT
default_version_id,
description,
is_activated,
last_updated,
latest_public_version,
original_type_name,
public_version_number,
publisher_id,
publisher_identity,
publisher_name,
type,
type_arn,
type_name
FROM aws.cloudformation.types
WHERE region = '{{ region }}' -- required
AND Visibility = '{{ Visibility }}'
AND ProvisioningType = '{{ ProvisioningType }}'
AND DeprecatedStatus = '{{ DeprecatedStatus }}'
AND Type = '{{ Type }}'
AND Filters = '{{ Filters }}'
AND MaxResults = '{{ MaxResults }}'
AND NextToken = '{{ NextToken }}'
;
INSERT examples
- register_type
- Manifest
Registers an extension with the CloudFormation service. Registering an extension makes it available for use in CloudFormation templates in your Amazon Web Services account, and includes: Validating the extension schema. Determining which handlers, if any, have been specified for the extension. Making the extension available for use in your account. For more information about how to develop extensions and ready them for registration, see Creating resource types using the CloudFormation CLI in the CloudFormation Command Line Interface (CLI) User Guide. You can have a maximum of 50 resource extension versions registered at a time. This maximum is per account and per Region. Use DeregisterType to deregister specific extension versions if necessary. Once you have initiated a registration request using RegisterType, you can use DescribeTypeRegistration to monitor the progress of the registration request. Once you have registered a private extension in your account and Region, use SetTypeConfiguration to specify configuration properties for the extension. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide.
INSERT INTO aws.cloudformation.types (
TypeName,
SchemaHandlerPackage,
region,
Type,
LoggingConfig,
ExecutionRoleArn,
ClientRequestToken
)
SELECT
'{{ TypeName }}',
'{{ SchemaHandlerPackage }}',
'{{ region }}',
'{{ Type }}',
'{{ LoggingConfig }}',
'{{ ExecutionRoleArn }}',
'{{ ClientRequestToken }}'
RETURNING
line_items
;
# Description fields are for documentation purposes
- name: types
props:
- name: TypeName
value: "{{ TypeName }}"
description: Required parameter for the types resource.
- name: SchemaHandlerPackage
value: "{{ SchemaHandlerPackage }}"
description: Required parameter for the types resource.
- name: region
value: "{{ region }}"
description: Required parameter for the types resource.
- name: Type
value: "{{ Type }}"
description: The kind of extension.
description: The kind of extension.
- name: LoggingConfig
value: "{{ LoggingConfig }}"
description: Specifies logging configuration information for an extension.
description: Specifies logging configuration information for an extension.
- name: ExecutionRoleArn
value: "{{ ExecutionRoleArn }}"
description: The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension. For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the CloudFormation service principal (resources.cloudformation.amazonaws.com). For more information about adding trust relationships, see Modifying a role trust policy in the Identity and Access Management User Guide. If your extension calls Amazon Web Services APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials.
description: The Amazon Resource Name (ARN) of the IAM role for CloudFormation to assume when invoking the extension. For CloudFormation to assume the specified execution role, the role must contain a trust relationship with the CloudFormation service principal (resources.cloudformation.amazonaws.com). For more information about adding trust relationships, see Modifying a role trust policy in the Identity and Access Management User Guide. If your extension calls Amazon Web Services APIs in any of its handlers, you must create an IAM execution role that includes the necessary permissions to call those Amazon Web Services APIs, and provision that execution role in your account. When CloudFormation needs to invoke the resource type handler, CloudFormation assumes this execution role to create a temporary session token, which it then passes to the resource type handler, thereby supplying your resource type with the appropriate credentials.
- name: ClientRequestToken
value: "{{ ClientRequestToken }}"
description: A unique identifier that acts as an idempotency key for this registration request. Specifying a client request token prevents CloudFormation from generating more than one version of an extension from the same registration request, even if the request is submitted multiple times.
description: A unique identifier that acts as an idempotency key for this registration request. Specifying a client request token prevents CloudFormation from generating more than one version of an extension from the same registration request, even if the request is submitted multiple times.
UPDATE examples
- set_type_configuration
- set_type_default_version
Specifies the configuration data for a CloudFormation extension, such as a resource or Hook, in the given account and Region. For more information, see Edit configuration data for extensions in your account in the CloudFormation User Guide. To view the current configuration data for an extension, refer to the ConfigurationSchema element of DescribeType. It's strongly recommended that you use dynamic references to restrict sensitive configuration definitions, such as third-party credentials. For more information, see Specify values stored in other services using dynamic references in the CloudFormation User Guide. For more information about setting the configuration data for resource types, see Defining the account-level configuration of an extension in the CloudFormation Command Line Interface (CLI) User Guide. For more information about setting the configuration data for Hooks, see the CloudFormation Hooks User Guide.
UPDATE aws.cloudformation.types
SET
-- No updatable properties
WHERE
Configuration = '{{ Configuration }}' --required
AND region = '{{ region }}' --required
AND TypeArn = '{{ TypeArn}}'
AND ConfigurationAlias = '{{ ConfigurationAlias}}'
AND TypeName = '{{ TypeName}}'
AND Type = '{{ Type}}'
RETURNING
line_items;
Specify the default version of an extension. The default version of an extension will be used in CloudFormation operations.
UPDATE aws.cloudformation.types
SET
-- No updatable properties
WHERE
region = '{{ region }}' --required
AND Arn = '{{ Arn}}'
AND Type = '{{ Type}}'
AND TypeName = '{{ TypeName}}'
AND VersionId = '{{ VersionId}}'
RETURNING
line_items;
DELETE examples
- deregister_type
Marks an extension or extension version as DEPRECATED in the CloudFormation registry, removing it from active use. Deprecated extensions or extension versions cannot be used in CloudFormation operations. To deregister an entire extension, you must individually deregister all active versions of that extension. If an extension has only a single active version, deregistering that version results in the extension itself being deregistered and marked as deprecated in the registry. You can't deregister the default version of an extension if there are other active version of that extension. If you do deregister the default version of an extension, the extension type itself is deregistered as well and marked as deprecated. To view the deprecation status of an extension or extension version, use DescribeType. For more information, see Remove third-party private extensions from your account in the CloudFormation User Guide.
DELETE FROM aws.cloudformation.types
WHERE region = '{{ region }}' --required
AND Arn = '{{ Arn }}'
AND Type = '{{ Type }}'
AND TypeName = '{{ TypeName }}'
AND VersionId = '{{ VersionId }}'
;