RegisterConnectionType - AWS Glue

RegisterConnectionType

Registers a custom connection type in AWS Glue based on the configuration provided. This operation enables customers to configure custom connectors for any data source with REST-based APIs, eliminating the need for building custom Lambda connectors.

The registered connection type stores details about how requests and responses are interpreted by REST sources, including connection properties, authentication configuration, and REST configuration with entity definitions. Once registered, customers can create connections using this connection type and work with them the same way as natively supported AWS Glue connectors.

Supports multiple authentication types including Basic, OAuth2 (Client Credentials, JWT Bearer, Authorization Code), and Custom Auth configurations.

Request Syntax

{ "ConnectionProperties": { "AdditionalRequestParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ], "Url": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } }, "ConnectionType": "string", "ConnectorAuthenticationConfiguration": { "AuthenticationTypes": [ "string" ], "BasicAuthenticationProperties": { "Password": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "Username": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } }, "CustomAuthenticationProperties": { "AuthenticationParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ] }, "OAuth2Properties": { "AuthorizationCodeProperties": { "AuthorizationCode": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "AuthorizationCodeUrl": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "ClientId": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "ClientSecret": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "ContentType": "string", "Prompt": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "RedirectUri": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "RequestMethod": "string", "Scope": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "TokenUrl": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "TokenUrlParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ] }, "ClientCredentialsProperties": { "ClientId": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "ClientSecret": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "ContentType": "string", "RequestMethod": "string", "Scope": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "TokenUrl": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "TokenUrlParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ] }, "JWTBearerProperties": { "ContentType": "string", "JwtToken": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "RequestMethod": "string", "TokenUrl": { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean }, "TokenUrlParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ] }, "OAuth2GrantType": "string" } }, "Description": "string", "IntegrationType": "string", "RestConfiguration": { "EntityConfigurations": { "string" : { "Schema": { "string" : { "FieldDataType": "string", "Name": "string" } }, "SourceConfiguration": { "PaginationConfiguration": { "CursorConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "NextPage": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } }, "OffsetConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "OffsetParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } } }, "RequestMethod": "string", "RequestParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ], "RequestPath": "string", "ResponseConfiguration": { "ErrorPath": "string", "ResultPath": "string" } } } }, "GlobalSourceConfiguration": { "PaginationConfiguration": { "CursorConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "NextPage": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } }, "OffsetConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "OffsetParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } } }, "RequestMethod": "string", "RequestParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ], "RequestPath": "string", "ResponseConfiguration": { "ErrorPath": "string", "ResultPath": "string" } }, "ValidationEndpointConfiguration": { "PaginationConfiguration": { "CursorConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "NextPage": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } }, "OffsetConfiguration": { "LimitParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } }, "OffsetParameter": { "DefaultValue": "string", "Key": "string", "PropertyLocation": "string", "Value": { "ContentPath": "string", "HeaderKey": "string" } } } }, "RequestMethod": "string", "RequestParameters": [ { "AllowedValues": [ "string" ], "DefaultValue": "string", "KeyOverride": "string", "Name": "string", "PropertyLocation": "string", "PropertyType": "string", "Required": boolean } ], "RequestPath": "string", "ResponseConfiguration": { "ErrorPath": "string", "ResultPath": "string" } } }, "Tags": { "string" : "string" } }

Request Parameters

For information about the parameters that are common to all actions, see Common Parameters.

The request accepts the following data in JSON format.

ConnectionProperties

Defines the base URL and additional request parameters needed during connection creation for this connection type.

Type: ConnectionPropertiesConfiguration object

Required: Yes

ConnectionType

The name of the connection type. Must be between 1 and 255 characters and must be prefixed with "REST-" to indicate it is a REST-based connector.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\t]*

Required: Yes

ConnectorAuthenticationConfiguration

Defines the supported authentication types and required properties for this connection type, including Basic, OAuth2, and Custom authentication methods.

Type: ConnectorAuthenticationConfiguration object

Required: Yes

Description

A description of the connection type. Can be up to 2048 characters and provides details about the purpose and functionality of the connection type.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 1024.

Required: No

IntegrationType

The integration type for the connection. Currently only "REST" protocol is supported.

Type: String

Valid Values: REST

Required: Yes

RestConfiguration

Defines the HTTP request and response configuration, validation endpoint, and entity configurations for REST API interactions.

Type: RestConfiguration object

Required: Yes

Tags

The tags you assign to the connection type.

Type: String to string map

Map Entries: Minimum number of 0 items. Maximum number of 50 items.

Key Length Constraints: Minimum length of 1. Maximum length of 128.

Value Length Constraints: Minimum length of 0. Maximum length of 256.

Required: No

Response Syntax

{ "ConnectionTypeArn": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

ConnectionTypeArn

The Amazon Resource Name (ARN) of the registered connection type. This unique identifier can be used to reference the connection type in other AWS Glue operations.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 10240.

Pattern: arn:aws(-(cn|us-gov|iso(-[bef])?))?:glue:.*

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

Access to a resource was denied.

Message

A message describing the problem.

HTTP Status Code: 400

InternalServiceException

An internal service error occurred.

Message

A message describing the problem.

HTTP Status Code: 500

InvalidInputException

The input provided was not valid.

FromFederationSource

Indicates whether or not the exception relates to a federated source.

Message

A message describing the problem.

HTTP Status Code: 400

OperationTimeoutException

The operation timed out.

Message

A message describing the problem.

HTTP Status Code: 400

ResourceNumberLimitExceededException

A resource numerical limit was exceeded.

Message

A message describing the problem.

HTTP Status Code: 400

ValidationException

A value could not be validated.

Message

A message describing the problem.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: