Amazon API Gateway

2017/11/15 - Amazon API Gateway - 5 updated api methods

Changes  1. Extended GetDocumentationParts operation to support retrieving documentation parts resources without contents. 2. Added hosted zone ID in the custom domain response.

CreateDomainName (updated) Link ¶
Changes (response)
{'distributionHostedZoneId': 'string', 'regionalHostedZoneId': 'string'}

Creates a new domain name.

See also: AWS API Documentation

Request Syntax

client.create_domain_name(
    domainName='string',
    certificateName='string',
    certificateBody='string',
    certificatePrivateKey='string',
    certificateChain='string',
    certificateArn='string',
    regionalCertificateName='string',
    regionalCertificateArn='string',
    endpointConfiguration={
        'types': [
            'REGIONAL'|'EDGE',
        ]
    }
)
type domainName

string

param domainName

[REQUIRED]

(Required) The name of the DomainName resource.

type certificateName

string

param certificateName

The user-friendly name of the certificate that will be used by edge-optimized endpoint for this domain name.

type certificateBody

string

param certificateBody

[Deprecated] The body of the server certificate that will be used by edge-optimized endpoint for this domain name provided by your certificate authority.

type certificatePrivateKey

string

param certificatePrivateKey

[Deprecated] Your edge-optimized endpoint's domain name certificate's private key.

type certificateChain

string

param certificateChain

[Deprecated] The intermediate certificates and optionally the root certificate, one after the other without any blank lines, used by an edge-optimized endpoint for this domain name. If you include the root certificate, your certificate chain must start with intermediate certificates and end with the root certificate. Use the intermediate certificates that were provided by your certificate authority. Do not include any intermediaries that are not in the chain of trust path.

type certificateArn

string

param certificateArn

The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

type regionalCertificateName

string

param regionalCertificateName

The user-friendly name of the certificate that will be used by regional endpoint for this domain name.

type regionalCertificateArn

string

param regionalCertificateArn

The reference to an AWS-managed certificate that will be used by regional endpoint for this domain name. AWS Certificate Manager is the only supported source.

type endpointConfiguration

dict

param endpointConfiguration

The endpoint configuration of this DomainName showing the endpoint types of the domain name.

  • types (list) --

    A list of endpoint types of an API ( RestApi ) or its custom domain name ( DomainName ). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE" . For a regional API and its custom domain name, the endpoint type is REGIONAL .

    • (string) --

      The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region

rtype

dict

returns

Response Syntax

{
    'domainName': 'string',
    'certificateName': 'string',
    'certificateArn': 'string',
    'certificateUploadDate': datetime(2015, 1, 1),
    'regionalDomainName': 'string',
    'regionalHostedZoneId': 'string',
    'regionalCertificateName': 'string',
    'regionalCertificateArn': 'string',
    'distributionDomainName': 'string',
    'distributionHostedZoneId': 'string',
    'endpointConfiguration': {
        'types': [
            'REGIONAL'|'EDGE',
        ]
    }
}

Response Structure

  • (dict) --

    Represents a custom domain name as a user-friendly host name of an API ( RestApi ).

    When you deploy an API, Amazon API Gateway creates a default host name for the API. This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com format. With the default host name, you can access the API's root resource with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/ . When you set up a custom domain name of apis.example.com for this API, you can then access the same resource using the URL of the https://apis.examples.com/myApi , where myApi is the base path mapping ( BasePathMapping ) of your API under the custom domain name.

    Set a Custom Host Name for an API

    • domainName (string) --

      The name of the DomainName resource.

    • certificateName (string) --

      The name of the certificate that will be used by edge-optimized endpoint for this domain name.

    • certificateArn (string) --

      The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

    • certificateUploadDate (datetime) --

      The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

    • regionalDomainName (string) --

      The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by Amazon API Gateway when you create a regional endpoint.

    • regionalHostedZoneId (string) --

      The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • regionalCertificateName (string) --

      The name of the certificate that will be used for validating the regional domain name.

    • regionalCertificateArn (string) --

      The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.

    • distributionDomainName (string) --

      The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation.

    • distributionHostedZoneId (string) --

      The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • endpointConfiguration (dict) --

      The endpoint configuration of this DomainName showing the endpoint types of the domain name.

      • types (list) --

        A list of endpoint types of an API ( RestApi ) or its custom domain name ( DomainName ). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE" . For a regional API and its custom domain name, the endpoint type is REGIONAL .

        • (string) --

          The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region

GetDocumentationParts (updated) Link ¶
Changes (request)
{'locationStatus': 'DOCUMENTED | UNDOCUMENTED'}

See also: AWS API Documentation

Request Syntax

client.get_documentation_parts(
    restApiId='string',
    type='API'|'AUTHORIZER'|'MODEL'|'RESOURCE'|'METHOD'|'PATH_PARAMETER'|'QUERY_PARAMETER'|'REQUEST_HEADER'|'REQUEST_BODY'|'RESPONSE'|'RESPONSE_HEADER'|'RESPONSE_BODY',
    nameQuery='string',
    path='string',
    position='string',
    limit=123,
    locationStatus='DOCUMENTED'|'UNDOCUMENTED'
)
type restApiId

string

param restApiId

[REQUIRED]

[Required] The string identifier of the associated RestApi.

type type

string

param type

The type of API entities of the to-be-retrieved documentation parts.

type nameQuery

string

param nameQuery

The name of API entities of the to-be-retrieved documentation parts.

type path

string

param path

The path of API entities of the to-be-retrieved documentation parts.

type position

string

param position

The current pagination position in the paged result set.

type limit

integer

param limit

The maximum number of returned results per page.

type locationStatus

string

param locationStatus

The status of the API documentation parts to retrieve. Valid values are DOCUMENTED for retrieving DocumentationPart resources with content and UNDOCUMENTED for DocumentationPart resources without content.

rtype

dict

returns

Response Syntax

{
    'position': 'string',
    'items': [
        {
            'id': 'string',
            'location': {
                'type': 'API'|'AUTHORIZER'|'MODEL'|'RESOURCE'|'METHOD'|'PATH_PARAMETER'|'QUERY_PARAMETER'|'REQUEST_HEADER'|'REQUEST_BODY'|'RESPONSE'|'RESPONSE_HEADER'|'RESPONSE_BODY',
                'path': 'string',
                'method': 'string',
                'statusCode': 'string',
                'name': 'string'
            },
            'properties': 'string'
        },
    ]
}

Response Structure

  • (dict) --

    The collection of documentation parts of an API.

    Documenting an API, DocumentationPart

    • position (string) --

    • items (list) --

      The current page of elements from this collection.

      • (dict) --

        A documentation part for a targeted API entity.

        A documentation part consists of a content map ( properties ) and a target ( location ). The target specifies an API entity to which the documentation content applies. The supported API entity types are API , AUTHORIZER , MODEL , RESOURCE , METHOD , PATH_PARAMETER , QUERY_PARAMETER , REQUEST_HEADER , REQUEST_BODY , RESPONSE , RESPONSE_HEADER , and RESPONSE_BODY . Valid location fields depend on the API entity type. All valid fields are not required.

        The content map is a JSON string of API-specific key-value pairs. Although an API can use any shape for the content map, only the Swagger-compliant documentation fields will be injected into the associated API entity definition in the exported Swagger definition file.

        Documenting an API, DocumentationParts

        • id (string) --

          The DocumentationPart identifier, generated by Amazon API Gateway when the DocumentationPart is created.

        • location (dict) --

          The location of the API entity to which the documentation applies. Valid fields depend on the targeted API entity type. All the valid location fields are not required. If not explicitly specified, a valid location field is treated as a wildcard and associated documentation content may be inherited by matching entities, unless overridden.

          • type (string) --

            The type of API entity to which the documentation content applies. It is a valid and required field for API entity types of API , AUTHORIZER , MODEL , RESOURCE , METHOD , PATH_PARAMETER , QUERY_PARAMETER , REQUEST_HEADER , REQUEST_BODY , RESPONSE , RESPONSE_HEADER , and RESPONSE_BODY . Content inheritance does not apply to any entity of the API , AUTHORIZER , METHOD , MODEL , REQUEST_BODY , or RESOURCE type.

          • path (string) --

            The URL path of the target. It is a valid field for the API entity types of RESOURCE , METHOD , PATH_PARAMETER , QUERY_PARAMETER , REQUEST_HEADER , REQUEST_BODY , RESPONSE , RESPONSE_HEADER , and RESPONSE_BODY . The default value is / for the root resource. When an applicable child entity inherits the content of another entity of the same type with more general specifications of the other location attributes, the child entity's path attribute must match that of the parent entity as a prefix.

          • method (string) --

            The HTTP verb of a method. It is a valid field for the API entity types of METHOD , PATH_PARAMETER , QUERY_PARAMETER , REQUEST_HEADER , REQUEST_BODY , RESPONSE , RESPONSE_HEADER , and RESPONSE_BODY . The default value is * for any method. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's method attribute must match that of the parent entity exactly.

          • statusCode (string) --

            The HTTP status code of a response. It is a valid field for the API entity types of RESPONSE , RESPONSE_HEADER , and RESPONSE_BODY . The default value is * for any status code. When an applicable child entity inherits the content of an entity of the same type with more general specifications of the other location attributes, the child entity's statusCode attribute must match that of the parent entity exactly.

          • name (string) --

            The name of the targeted API entity. It is a valid and required field for the API entity types of AUTHORIZER , MODEL , PATH_PARAMETER , QUERY_PARAMETER , REQUEST_HEADER , REQUEST_BODY and RESPONSE_HEADER . It is an invalid field for any other entity type.

        • properties (string) --

          A content map of API-specific key-value pairs describing the targeted API entity. The map must be encoded as a JSON string, e.g., "{ \"description\": \"The API does ...\" }" . Only Swagger-compliant documentation-related fields from the propertiesmap are exported and, hence, published as part of the API entity definitions, while the original documentation parts are exported in a Swagger extension of x-amazon-apigateway-documentation .

GetDomainName (updated) Link ¶
Changes (response)
{'distributionHostedZoneId': 'string', 'regionalHostedZoneId': 'string'}

Represents a domain name that is contained in a simpler, more intuitive URL that can be called.

See also: AWS API Documentation

Request Syntax

client.get_domain_name(
    domainName='string'
)
type domainName

string

param domainName

[REQUIRED]

The name of the DomainName resource.

rtype

dict

returns

Response Syntax

{
    'domainName': 'string',
    'certificateName': 'string',
    'certificateArn': 'string',
    'certificateUploadDate': datetime(2015, 1, 1),
    'regionalDomainName': 'string',
    'regionalHostedZoneId': 'string',
    'regionalCertificateName': 'string',
    'regionalCertificateArn': 'string',
    'distributionDomainName': 'string',
    'distributionHostedZoneId': 'string',
    'endpointConfiguration': {
        'types': [
            'REGIONAL'|'EDGE',
        ]
    }
}

Response Structure

  • (dict) --

    Represents a custom domain name as a user-friendly host name of an API ( RestApi ).

    When you deploy an API, Amazon API Gateway creates a default host name for the API. This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com format. With the default host name, you can access the API's root resource with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/ . When you set up a custom domain name of apis.example.com for this API, you can then access the same resource using the URL of the https://apis.examples.com/myApi , where myApi is the base path mapping ( BasePathMapping ) of your API under the custom domain name.

    Set a Custom Host Name for an API

    • domainName (string) --

      The name of the DomainName resource.

    • certificateName (string) --

      The name of the certificate that will be used by edge-optimized endpoint for this domain name.

    • certificateArn (string) --

      The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

    • certificateUploadDate (datetime) --

      The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

    • regionalDomainName (string) --

      The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by Amazon API Gateway when you create a regional endpoint.

    • regionalHostedZoneId (string) --

      The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • regionalCertificateName (string) --

      The name of the certificate that will be used for validating the regional domain name.

    • regionalCertificateArn (string) --

      The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.

    • distributionDomainName (string) --

      The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation.

    • distributionHostedZoneId (string) --

      The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • endpointConfiguration (dict) --

      The endpoint configuration of this DomainName showing the endpoint types of the domain name.

      • types (list) --

        A list of endpoint types of an API ( RestApi ) or its custom domain name ( DomainName ). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE" . For a regional API and its custom domain name, the endpoint type is REGIONAL .

        • (string) --

          The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region

GetDomainNames (updated) Link ¶
Changes (response)
{'items': {'distributionHostedZoneId': 'string',
           'regionalHostedZoneId': 'string'}}

Represents a collection of DomainName resources.

See also: AWS API Documentation

Request Syntax

client.get_domain_names(
    position='string',
    limit=123
)
type position

string

param position

The current pagination position in the paged result set.

type limit

integer

param limit

The maximum number of returned results per page. The value is 25 by default and could be between 1 - 500.

rtype

dict

returns

Response Syntax

{
    'position': 'string',
    'items': [
        {
            'domainName': 'string',
            'certificateName': 'string',
            'certificateArn': 'string',
            'certificateUploadDate': datetime(2015, 1, 1),
            'regionalDomainName': 'string',
            'regionalHostedZoneId': 'string',
            'regionalCertificateName': 'string',
            'regionalCertificateArn': 'string',
            'distributionDomainName': 'string',
            'distributionHostedZoneId': 'string',
            'endpointConfiguration': {
                'types': [
                    'REGIONAL'|'EDGE',
                ]
            }
        },
    ]
}

Response Structure

  • (dict) --

    Represents a collection of DomainName resources.

    Use Client-Side Certificate

    • position (string) --

    • items (list) --

      The current page of elements from this collection.

      • (dict) --

        Represents a custom domain name as a user-friendly host name of an API ( RestApi ).

        When you deploy an API, Amazon API Gateway creates a default host name for the API. This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com format. With the default host name, you can access the API's root resource with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/ . When you set up a custom domain name of apis.example.com for this API, you can then access the same resource using the URL of the https://apis.examples.com/myApi , where myApi is the base path mapping ( BasePathMapping ) of your API under the custom domain name.

        Set a Custom Host Name for an API

        • domainName (string) --

          The name of the DomainName resource.

        • certificateName (string) --

          The name of the certificate that will be used by edge-optimized endpoint for this domain name.

        • certificateArn (string) --

          The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

        • certificateUploadDate (datetime) --

          The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

        • regionalDomainName (string) --

          The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by Amazon API Gateway when you create a regional endpoint.

        • regionalHostedZoneId (string) --

          The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

        • regionalCertificateName (string) --

          The name of the certificate that will be used for validating the regional domain name.

        • regionalCertificateArn (string) --

          The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.

        • distributionDomainName (string) --

          The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation.

        • distributionHostedZoneId (string) --

          The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

        • endpointConfiguration (dict) --

          The endpoint configuration of this DomainName showing the endpoint types of the domain name.

          • types (list) --

            A list of endpoint types of an API ( RestApi ) or its custom domain name ( DomainName ). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE" . For a regional API and its custom domain name, the endpoint type is REGIONAL .

            • (string) --

              The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region

UpdateDomainName (updated) Link ¶
Changes (response)
{'distributionHostedZoneId': 'string', 'regionalHostedZoneId': 'string'}

Changes information about the DomainName resource.

See also: AWS API Documentation

Request Syntax

client.update_domain_name(
    domainName='string',
    patchOperations=[
        {
            'op': 'add'|'remove'|'replace'|'move'|'copy'|'test',
            'path': 'string',
            'value': 'string',
            'from': 'string'
        },
    ]
)
type domainName

string

param domainName

[REQUIRED]

The name of the DomainName resource to be changed.

type patchOperations

list

param patchOperations

A list of update operations to be applied to the specified resource and in the order specified in this list.

  • (dict) -- A single patch operation to apply to the specified resource. Please refer to http://tools.ietf.org/html/rfc6902#section-4 for an explanation of how each operation is used.

    • op (string) --

      An update operation to be performed with this PATCH request. The valid value can be "add", "remove", or "replace". Not all valid operations are supported for a given resource. Support of the operations depends on specific operational contexts. Attempts to apply an unsupported operation on a resource will return an error message.

    • path (string) --

      The op operation's target, as identified by a JSON Pointer value that references a location within the targeted resource. For example, if the target resource has an updateable property of {"name":"value"} , the path for this property is /name . If the name property value is a JSON object (e.g., {"name": {"child/name": "child-value"}} ), the path for the child/name property will be /name/child~1name . Any slash ("/") character appearing in path names must be escaped with "~1", as shown in the example above. Each op operation can have only one path associated with it.

    • value (string) --

      The new target value of the update operation. When using AWS CLI to update a property of a JSON value, enclose the JSON object with a pair of single quotes in a Linux shell, e.g., '{"a": ...}'. In a Windows shell, see Using JSON for Parameters.

    • from (string) --

      Not supported.

rtype

dict

returns

Response Syntax

{
    'domainName': 'string',
    'certificateName': 'string',
    'certificateArn': 'string',
    'certificateUploadDate': datetime(2015, 1, 1),
    'regionalDomainName': 'string',
    'regionalHostedZoneId': 'string',
    'regionalCertificateName': 'string',
    'regionalCertificateArn': 'string',
    'distributionDomainName': 'string',
    'distributionHostedZoneId': 'string',
    'endpointConfiguration': {
        'types': [
            'REGIONAL'|'EDGE',
        ]
    }
}

Response Structure

  • (dict) --

    Represents a custom domain name as a user-friendly host name of an API ( RestApi ).

    When you deploy an API, Amazon API Gateway creates a default host name for the API. This default API host name is of the {restapi-id}.execute-api.{region}.amazonaws.com format. With the default host name, you can access the API's root resource with the URL of https://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}/ . When you set up a custom domain name of apis.example.com for this API, you can then access the same resource using the URL of the https://apis.examples.com/myApi , where myApi is the base path mapping ( BasePathMapping ) of your API under the custom domain name.

    Set a Custom Host Name for an API

    • domainName (string) --

      The name of the DomainName resource.

    • certificateName (string) --

      The name of the certificate that will be used by edge-optimized endpoint for this domain name.

    • certificateArn (string) --

      The reference to an AWS-managed certificate that will be used by edge-optimized endpoint for this domain name. AWS Certificate Manager is the only supported source.

    • certificateUploadDate (datetime) --

      The timestamp when the certificate that was used by edge-optimized endpoint for this domain name was uploaded.

    • regionalDomainName (string) --

      The domain name associated with the regional endpoint for this custom domain name. You set up this association by adding a DNS record that points the custom domain name to this regional domain name. The regional domain name is returned by Amazon API Gateway when you create a regional endpoint.

    • regionalHostedZoneId (string) --

      The region-specific Amazon Route 53 Hosted Zone ID of the regional endpoint. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • regionalCertificateName (string) --

      The name of the certificate that will be used for validating the regional domain name.

    • regionalCertificateArn (string) --

      The reference to an AWS-managed certificate that will be used for validating the regional domain name. AWS Certificate Manager is the only supported source.

    • distributionDomainName (string) --

      The domain name of the Amazon CloudFront distribution associated with this custom domain name for an edge-optimized endpoint. You set up this association when adding a DNS record pointing the custom domain name to this distribution name. For more information about CloudFront distributions, see the Amazon CloudFront documentation.

    • distributionHostedZoneId (string) --

      The region-agnostic Amazon Route 53 Hosted Zone ID of the edge-optimized endpoint. The valid value is Z2FDTNDATAQYW2 for all the regions. For more information, see Set up a Regional Custom Domain Name and AWS Regions and Endpoints for API Gateway.

    • endpointConfiguration (dict) --

      The endpoint configuration of this DomainName showing the endpoint types of the domain name.

      • types (list) --

        A list of endpoint types of an API ( RestApi ) or its custom domain name ( DomainName ). For an edge-optimized API and its custom domain name, the endpoint type is "EDGE" . For a regional API and its custom domain name, the endpoint type is REGIONAL .

        • (string) --

          The endpoint type. The valid value is EDGE for edge-optimized API setup, most suitable for mobile applications, REGIONAL for regional API endpoint setup, most suitable for calling from AWS Region