class Aws::CloudFormation::Types::RegisterTypeInput

@note When making an API call, you may pass RegisterTypeInput

data as a hash:

    {
      type: "RESOURCE", # accepts RESOURCE, MODULE, HOOK
      type_name: "TypeName", # required
      schema_handler_package: "S3Url", # required
      logging_config: {
        log_role_arn: "RoleArn", # required
        log_group_name: "LogGroupName", # required
      },
      execution_role_arn: "RoleArn",
      client_request_token: "RequestToken",
    }

@!attribute [rw] type

The kind of extension.
@return [String]

@!attribute [rw] type_name

The name of the extension being registered.

We recommend that extension names adhere to the following patterns:

* For resource types,
  *company\_or\_organization*\::*service*\::*type*.

* For modules,
  *company\_or\_organization*\::*service*\::*type*\::MODULE.

<note markdown="1"> The following organization namespaces are reserved and can't be
used in your extension names:

 * `Alexa`

* `AMZN`

* `Amazon`

* `AWS`

* `Custom`

* `Dev`

 </note>
@return [String]

@!attribute [rw] schema_handler_package

A URL to the S3 bucket containing the extension project package that
contains the necessary files for the extension you want to register.

For information on generating a schema handler package for the
extension you want to register, see [submit][1] in the
*CloudFormation CLI User Guide*.

<note markdown="1"> The user registering the extension must be able to access the
package in the S3 bucket. That's, the user needs to have
[GetObject][2] permissions for the schema handler package. For more
information, see [Actions, Resources, and Condition Keys for Amazon
S3][3] in the *Identity and Access Management User Guide*.

 </note>

[1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html
[2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
[3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazons3.html
@return [String]

@!attribute [rw] logging_config

Specifies logging configuration information for an extension.
@return [Types::LoggingConfig]

@!attribute [rw] execution_role_arn

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
principle (`resources.cloudformation.amazonaws.com`). For more
information on adding trust relationships, see [Modifying a role
trust
policy](IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-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 <i> <a
href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html">IAM
execution role</a> </i> 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.
@return [String]

@!attribute [rw] client_request_token

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.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterTypeInput AWS API Documentation

Constants

SENSITIVE