{
    "smithy": "1.0",
    "metadata": {
        "suppressions": [
            {
                "id": "HttpMethodSemantics",
                "namespace": "*"
            },
            {
                "id": "HttpResponseCodeSemantics",
                "namespace": "*"
            },
            {
                "id": "PaginatedTrait",
                "namespace": "*"
            },
            {
                "id": "HttpHeaderTrait",
                "namespace": "*"
            },
            {
                "id": "HttpUriConflict",
                "namespace": "*"
            },
            {
                "id": "Service",
                "namespace": "*"
            }
        ]
    },
    "shapes": {
        "com.amazonaws.outposts#AccessDeniedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>You do not have permission to perform this operation.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 403
            }
        },
        "com.amazonaws.outposts#AccountId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The ID of the AWS account.</p>",
                "smithy.api#length": {
                    "min": 12,
                    "max": 12
                }
            }
        },
        "com.amazonaws.outposts#Arn": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 1011
                },
                "smithy.api#pattern": "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:([a-z\\d-]+)/)[a-z]{2,8}-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#AvailabilityZone": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The Availability Zone.</p>\n         <p>You must specify <code>AvailabilityZone</code> or <code>AvailabilityZoneId</code>.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "[a-z\\d-]+"
            }
        },
        "com.amazonaws.outposts#AvailabilityZoneId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The ID of the Availability Zone.</p>\n         <p>You must specify <code>AvailabilityZone</code> or <code>AvailabilityZoneId</code>.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "[a-z]+[0-9]+-az[0-9]+"
            }
        },
        "com.amazonaws.outposts#CreateOutpost": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#CreateOutpostInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#CreateOutpostOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an Outpost.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/outposts",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#CreateOutpostInput": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.outposts#OutpostName",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.outposts#OutpostDescription"
                },
                "SiteId": {
                    "target": "com.amazonaws.outposts#SiteId",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "AvailabilityZone": {
                    "target": "com.amazonaws.outposts#AvailabilityZone"
                },
                "AvailabilityZoneId": {
                    "target": "com.amazonaws.outposts#AvailabilityZoneId"
                },
                "Tags": {
                    "target": "com.amazonaws.outposts#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to apply to the Outpost.</p>"
                    }
                }
            }
        },
        "com.amazonaws.outposts#CreateOutpostOutput": {
            "type": "structure",
            "members": {
                "Outpost": {
                    "target": "com.amazonaws.outposts#Outpost"
                }
            }
        },
        "com.amazonaws.outposts#DeleteOutpost": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#DeleteOutpostInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#DeleteOutpostOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes the Outpost.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/outposts/{OutpostId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#DeleteOutpostInput": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId",
                    "traits": {
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#DeleteOutpostOutput": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.outposts#DeleteSite": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#DeleteSiteInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#DeleteSiteOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes the site.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/sites/{SiteId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#DeleteSiteInput": {
            "type": "structure",
            "members": {
                "SiteId": {
                    "target": "com.amazonaws.outposts#SiteId",
                    "traits": {
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#DeleteSiteOutput": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.outposts#ErrorMessage": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S \\n]+$"
            }
        },
        "com.amazonaws.outposts#GetOutpost": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#GetOutpostInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#GetOutpostOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets information about the specified Outpost.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/outposts/{OutpostId}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostInput": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId",
                    "traits": {
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostInstanceTypes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#GetOutpostInstanceTypesInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#GetOutpostInstanceTypesOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the instance types for the specified Outpost.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/outposts/{OutpostId}/instanceTypes",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostInstanceTypesInput": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId",
                    "traits": {
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token",
                    "traits": {
                        "smithy.api#httpQuery": "NextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.outposts#MaxResults1000",
                    "traits": {
                        "smithy.api#httpQuery": "MaxResults"
                    }
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostInstanceTypesOutput": {
            "type": "structure",
            "members": {
                "InstanceTypes": {
                    "target": "com.amazonaws.outposts#InstanceTypeListDefinition"
                },
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token"
                },
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId"
                },
                "OutpostArn": {
                    "target": "com.amazonaws.outposts#OutpostArn"
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostOutput": {
            "type": "structure",
            "members": {
                "Outpost": {
                    "target": "com.amazonaws.outposts#Outpost"
                }
            }
        },
        "com.amazonaws.outposts#InstanceType": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The instance type.</p>"
            }
        },
        "com.amazonaws.outposts#InstanceTypeItem": {
            "type": "structure",
            "members": {
                "InstanceType": {
                    "target": "com.amazonaws.outposts#InstanceType"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about an instance type.</p>"
            }
        },
        "com.amazonaws.outposts#InstanceTypeListDefinition": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#InstanceTypeItem"
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about the instance types.</p>"
            }
        },
        "com.amazonaws.outposts#InternalServerException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An internal error has occurred.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500
            }
        },
        "com.amazonaws.outposts#LifeCycleStatus": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The life cycle status.</p>"
            }
        },
        "com.amazonaws.outposts#ListOutposts": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#ListOutpostsInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#ListOutpostsOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>List the Outposts for your AWS account.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/outposts",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.outposts#ListOutpostsInput": {
            "type": "structure",
            "members": {
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token",
                    "traits": {
                        "smithy.api#httpQuery": "NextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.outposts#MaxResults1000",
                    "traits": {
                        "smithy.api#httpQuery": "MaxResults"
                    }
                }
            }
        },
        "com.amazonaws.outposts#ListOutpostsOutput": {
            "type": "structure",
            "members": {
                "Outposts": {
                    "target": "com.amazonaws.outposts#outpostListDefinition"
                },
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token"
                }
            }
        },
        "com.amazonaws.outposts#ListSites": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#ListSitesInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#ListSitesOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the sites for the specified AWS account.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/sites",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.outposts#ListSitesInput": {
            "type": "structure",
            "members": {
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token",
                    "traits": {
                        "smithy.api#httpQuery": "NextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.outposts#MaxResults1000",
                    "traits": {
                        "smithy.api#httpQuery": "MaxResults"
                    }
                }
            }
        },
        "com.amazonaws.outposts#ListSitesOutput": {
            "type": "structure",
            "members": {
                "Sites": {
                    "target": "com.amazonaws.outposts#siteListDefinition"
                },
                "NextToken": {
                    "target": "com.amazonaws.outposts#Token"
                }
            }
        },
        "com.amazonaws.outposts#ListTagsForResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#ListTagsForResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.outposts#ListTagsForResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the tags for the specified resource.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tags/{ResourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#ListTagsForResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.outposts#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#ListTagsForResourceResponse": {
            "type": "structure",
            "members": {
                "Tags": {
                    "target": "com.amazonaws.outposts#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The resource tags.</p>"
                    }
                }
            }
        },
        "com.amazonaws.outposts#MaxResults1000": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#documentation": "<p>The maximum page size.</p>",
                "smithy.api#range": {
                    "min": 1,
                    "max": 1000
                }
            }
        },
        "com.amazonaws.outposts#NotFoundException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The specified request is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.outposts#Outpost": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId"
                },
                "OwnerId": {
                    "target": "com.amazonaws.outposts#OwnerId"
                },
                "OutpostArn": {
                    "target": "com.amazonaws.outposts#OutpostArn"
                },
                "SiteId": {
                    "target": "com.amazonaws.outposts#SiteId"
                },
                "Name": {
                    "target": "com.amazonaws.outposts#OutpostName"
                },
                "Description": {
                    "target": "com.amazonaws.outposts#OutpostDescription"
                },
                "LifeCycleStatus": {
                    "target": "com.amazonaws.outposts#LifeCycleStatus"
                },
                "AvailabilityZone": {
                    "target": "com.amazonaws.outposts#AvailabilityZone"
                },
                "AvailabilityZoneId": {
                    "target": "com.amazonaws.outposts#AvailabilityZoneId"
                },
                "Tags": {
                    "target": "com.amazonaws.outposts#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The Outpost tags.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about an Outpost.</p>"
            }
        },
        "com.amazonaws.outposts#OutpostArn": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Outpost.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/op-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#OutpostDescription": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The description of the Outpost.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S ]+$"
            }
        },
        "com.amazonaws.outposts#OutpostId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The ID of the Outpost.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 180
                },
                "smithy.api#pattern": "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:outpost/)?op-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#OutpostName": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The name of the Outpost.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "^[\\S ]+$"
            }
        },
        "com.amazonaws.outposts#OutpostsOlafService": {
            "type": "service",
            "version": "2019-12-03",
            "operations": [
                {
                    "target": "com.amazonaws.outposts#CreateOutpost"
                },
                {
                    "target": "com.amazonaws.outposts#DeleteOutpost"
                },
                {
                    "target": "com.amazonaws.outposts#DeleteSite"
                },
                {
                    "target": "com.amazonaws.outposts#GetOutpost"
                },
                {
                    "target": "com.amazonaws.outposts#GetOutpostInstanceTypes"
                },
                {
                    "target": "com.amazonaws.outposts#ListOutposts"
                },
                {
                    "target": "com.amazonaws.outposts#ListSites"
                },
                {
                    "target": "com.amazonaws.outposts#ListTagsForResource"
                },
                {
                    "target": "com.amazonaws.outposts#TagResource"
                },
                {
                    "target": "com.amazonaws.outposts#UntagResource"
                }
            ],
            "traits": {
                "aws.api#service": {
                    "sdkId": "Outposts",
                    "arnNamespace": "outposts",
                    "cloudFormationName": "Outposts",
                    "cloudTrailEventSource": "outposts.amazonaws.com",
                    "endpointPrefix": "outposts"
                },
                "aws.auth#sigv4": {
                    "name": "outposts"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#documentation": "<p>AWS Outposts is a fully managed service that extends AWS infrastructure, APIs, and tools\n      to customer premises. By providing local access to AWS managed infrastructure, AWS Outposts\n      enables customers to build and run applications on premises using the same programming\n      interfaces as in AWS Regions, while using local compute and storage resources for lower\n      latency and local data processing needs.</p>",
                "smithy.api#title": "AWS Outposts"
            }
        },
        "com.amazonaws.outposts#OwnerId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The AWS account ID of the Outpost owner.</p>",
                "smithy.api#length": {
                    "min": 12,
                    "max": 12
                },
                "smithy.api#pattern": "\\d{12}"
            }
        },
        "com.amazonaws.outposts#ServiceQuotaExceededException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>You have exceeded a service quota.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 402
            }
        },
        "com.amazonaws.outposts#Site": {
            "type": "structure",
            "members": {
                "SiteId": {
                    "target": "com.amazonaws.outposts#SiteId"
                },
                "AccountId": {
                    "target": "com.amazonaws.outposts#AccountId"
                },
                "Name": {
                    "target": "com.amazonaws.outposts#SiteName"
                },
                "Description": {
                    "target": "com.amazonaws.outposts#SiteDescription"
                },
                "Tags": {
                    "target": "com.amazonaws.outposts#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The site tags.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about a site.</p>"
            }
        },
        "com.amazonaws.outposts#SiteDescription": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The description of the site.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S ]+$"
            }
        },
        "com.amazonaws.outposts#SiteId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The ID of the site.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "os-[a-f0-9]{17}"
            }
        },
        "com.amazonaws.outposts#SiteName": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The name of the site.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S ]+$"
            }
        },
        "com.amazonaws.outposts#TagKey": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 128
                },
                "smithy.api#pattern": "^(?!aws:)[a-zA-Z+-=._:/]+$"
            }
        },
        "com.amazonaws.outposts#TagKeyList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#TagKey"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.outposts#TagMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.outposts#TagKey"
            },
            "value": {
                "target": "com.amazonaws.outposts#TagValue"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.outposts#TagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#TagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.outposts#TagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Adds tags to the specified resource.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tags/{ResourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#TagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.outposts#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.outposts#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to add to the resource.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#TagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.outposts#TagValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 256
                },
                "smithy.api#pattern": "^[\\S \\n]+$"
            }
        },
        "com.amazonaws.outposts#Token": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The pagination token.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1005
                },
                "smithy.api#pattern": ".*\\S.*"
            }
        },
        "com.amazonaws.outposts#UntagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#UntagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.outposts#UntagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#InternalServerException"
                },
                {
                    "target": "com.amazonaws.outposts#NotFoundException"
                },
                {
                    "target": "com.amazonaws.outposts#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes tags from the specified resource.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tags/{ResourceArn}",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#UntagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.outposts#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "TagKeys": {
                    "target": "com.amazonaws.outposts#TagKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>The tag keys.</p>",
                        "smithy.api#httpQuery": "tagKeys",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.outposts#UntagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.outposts#ValidationException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A parameter is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.outposts#outpostListDefinition": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#Outpost"
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about the Outposts.</p>"
            }
        },
        "com.amazonaws.outposts#siteListDefinition": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#Site"
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about the sites.</p>"
            }
        }
    }
}
