{
    "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
                },
                "smithy.api#pattern": "^\\d{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>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^([a-zA-Z]+-){1,3}([a-zA-Z]+)?(\\d+[a-zA-Z]?)?$"
            }
        },
        "com.amazonaws.outposts#AvailabilityZoneId": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The ID of the Availability Zone.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "^[a-zA-Z]+\\d-[a-zA-Z]+\\d$"
            }
        },
        "com.amazonaws.outposts#AvailabilityZoneIdList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#AvailabilityZoneId"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 5
                }
            }
        },
        "com.amazonaws.outposts#AvailabilityZoneList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#AvailabilityZone"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 5
                }
            }
        },
        "com.amazonaws.outposts#ConflictException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.outposts#ErrorMessage"
                },
                "ResourceId": {
                    "target": "com.amazonaws.outposts#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource causing the conflict.</p>"
                    }
                },
                "ResourceType": {
                    "target": "com.amazonaws.outposts#ResourceType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the resource causing the conflict.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Updating or deleting this resource can cause an inconsistent state.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.outposts#CreateOrder": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.outposts#CreateOrderInput"
            },
            "output": {
                "target": "com.amazonaws.outposts#CreateOrderOutput"
            },
            "errors": [
                {
                    "target": "com.amazonaws.outposts#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.outposts#ConflictException"
                },
                {
                    "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 order for an Outpost.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/orders",
                    "code": 200
                }
            }
        },
        "com.amazonaws.outposts#CreateOrderInput": {
            "type": "structure",
            "members": {
                "OutpostIdentifier": {
                    "target": "com.amazonaws.outposts#OutpostIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      The ID or the Amazon Resource Name (ARN) of the Outpost.\n    </p>",
                        "smithy.api#required": {}
                    }
                },
                "LineItems": {
                    "target": "com.amazonaws.outposts#LineItemRequestListDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The line items that make up the order.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PaymentOption": {
                    "target": "com.amazonaws.outposts#PaymentOption",
                    "traits": {
                        "smithy.api#documentation": "<p>The payment option for the order.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PaymentTerm": {
                    "target": "com.amazonaws.outposts#PaymentTerm",
                    "traits": {
                        "smithy.api#documentation": "<p>The payment terms for the order.</p>"
                    }
                }
            }
        },
        "com.amazonaws.outposts#CreateOrderOutput": {
            "type": "structure",
            "members": {
                "Order": {
                    "target": "com.amazonaws.outposts#Order",
                    "traits": {
                        "smithy.api#documentation": "<p>Information about this order.</p>"
                    }
                }
            }
        },
        "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#ConflictException"
                },
                {
                    "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>\n         <p>You can specify <code>AvailabilityZone</code> or <code>AvailabilityZoneId</code>.</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#ConflictException"
                },
                {
                    "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#documentation": "<p>\n      The ID of the Outpost.\n    </p>",
                        "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#ConflictException"
                },
                {
                    "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#documentation": "<p>\n      The ID of the Outpost.\n    </p>",
                        "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#documentation": "<p>\n      The ID of the Outpost.\n    </p>",
                        "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",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      The ID of the Outpost.\n    </p>"
                    }
                },
                "OutpostArn": {
                    "target": "com.amazonaws.outposts#OutpostArn"
                }
            }
        },
        "com.amazonaws.outposts#GetOutpostOutput": {
            "type": "structure",
            "members": {
                "Outpost": {
                    "target": "com.amazonaws.outposts#Outpost"
                }
            }
        },
        "com.amazonaws.outposts#ISO8601Timestamp": {
            "type": "timestamp"
        },
        "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>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 20
                },
                "smithy.api#pattern": "^[ A-Za-z]+$"
            }
        },
        "com.amazonaws.outposts#LifeCycleStatusList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#LifeCycleStatus"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 5
                }
            }
        },
        "com.amazonaws.outposts#LineItem": {
            "type": "structure",
            "members": {
                "CatalogItemId": {
                    "target": "com.amazonaws.outposts#SkuCode",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      The ID of the catalog item.\n    </p>"
                    }
                },
                "LineItemId": {
                    "target": "com.amazonaws.outposts#LineItemId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the line item.</p>"
                    }
                },
                "Quantity": {
                    "target": "com.amazonaws.outposts#LineItemQuantity",
                    "traits": {
                        "smithy.api#documentation": "<p>The quantity of the line item.</p>"
                    }
                },
                "Status": {
                    "target": "com.amazonaws.outposts#Status",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the line item.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about a line item.</p>"
            }
        },
        "com.amazonaws.outposts#LineItemId": {
            "type": "string",
            "traits": {
                "smithy.api#pattern": "^ooi-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#LineItemListDefinition": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#LineItem"
            }
        },
        "com.amazonaws.outposts#LineItemQuantity": {
            "type": "integer",
            "traits": {
                "smithy.api#range": {
                    "min": 1,
                    "max": 20
                }
            }
        },
        "com.amazonaws.outposts#LineItemRequest": {
            "type": "structure",
            "members": {
                "CatalogItemId": {
                    "target": "com.amazonaws.outposts#SkuCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the catalog item.</p>"
                    }
                },
                "Quantity": {
                    "target": "com.amazonaws.outposts#LineItemQuantity",
                    "traits": {
                        "smithy.api#documentation": "<p>The quantity of a line item request.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about a line item request.</p>"
            }
        },
        "com.amazonaws.outposts#LineItemRequestListDefinition": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.outposts#LineItemRequest"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 20
                }
            }
        },
        "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>Create a list of the Outposts for your AWS account. Add filters to your request to return\n      a more specific list of results. Use filters to match an Outpost lifecycle status,\n      Availibility Zone (<code>us-east-1a</code>), and AZ ID (<code>use1-az1</code>). </p>\n    \n         <p>If you specify multiple filters, the filters are joined with an <code>AND</code>, and the request returns only \n      results that match all of the specified filters.</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"
                    }
                },
                "LifeCycleStatusFilter": {
                    "target": "com.amazonaws.outposts#LifeCycleStatusList",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      A filter for the lifecycle status of the Outpost. \n    </p>\n         <p> Filter values are case sensitive. If you specify multiple values for a filter, the values\n      are joined with an <code>OR</code>, and the request returns all results that match any of the\n      specified values. </p>",
                        "smithy.api#httpQuery": "LifeCycleStatusFilter"
                    }
                },
                "AvailabilityZoneFilter": {
                    "target": "com.amazonaws.outposts#AvailabilityZoneList",
                    "traits": {
                        "smithy.api#documentation": "<p> A filter for the Availibility Zone (<code>us-east-1a</code>) of the Outpost. </p>\n    \n         <p> Filter values are case sensitive. If you specify multiple values for a filter, the values\n      are joined with an <code>OR</code>, and the request returns all results that match any of the\n      specified values. </p>",
                        "smithy.api#httpQuery": "AvailabilityZoneFilter"
                    }
                },
                "AvailabilityZoneIdFilter": {
                    "target": "com.amazonaws.outposts#AvailabilityZoneIdList",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      A filter for the AZ IDs (<code>use1-az1</code>) of the Outpost.\n    </p>\n    \n         <p> Filter values are case sensitive. If you specify multiple values for a filter, the values\n      are joined with an <code>OR</code>, and the request returns all results that match any of the\n      specified values. </p>",
                        "smithy.api#httpQuery": "AvailabilityZoneIdFilter"
                    }
                }
            }
        },
        "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#Order": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostIdOnly",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      The ID of the Outpost.\n    </p>"
                    }
                },
                "OrderId": {
                    "target": "com.amazonaws.outposts#OrderId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the order.</p>"
                    }
                },
                "Status": {
                    "target": "com.amazonaws.outposts#OrderStatus",
                    "traits": {
                        "smithy.api#documentation": "<p>The status of the order</p>"
                    }
                },
                "LineItems": {
                    "target": "com.amazonaws.outposts#LineItemListDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The line items for the order</p>"
                    }
                },
                "PaymentOption": {
                    "target": "com.amazonaws.outposts#PaymentOption",
                    "traits": {
                        "smithy.api#documentation": "<p>The payment option for the order.</p>"
                    }
                },
                "OrderSubmissionDate": {
                    "target": "com.amazonaws.outposts#ISO8601Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The submission date for the order.</p>"
                    }
                },
                "OrderFulfilledDate": {
                    "target": "com.amazonaws.outposts#ISO8601Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The fulfillment date of the order.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about an order.</p>"
            }
        },
        "com.amazonaws.outposts#OrderId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 20
                },
                "smithy.api#pattern": "^oo-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#OrderStatus": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "RECEIVED",
                        "name": "RECEIVED"
                    },
                    {
                        "value": "PENDING",
                        "name": "PENDING"
                    },
                    {
                        "value": "PROCESSING",
                        "name": "PROCESSING"
                    },
                    {
                        "value": "INSTALLING",
                        "name": "INSTALLING"
                    },
                    {
                        "value": "FULFILLED",
                        "name": "FULFILLED"
                    },
                    {
                        "value": "CANCELLED",
                        "name": "CANCELLED"
                    }
                ]
            }
        },
        "com.amazonaws.outposts#Outpost": {
            "type": "structure",
            "members": {
                "OutpostId": {
                    "target": "com.amazonaws.outposts#OutpostId",
                    "traits": {
                        "smithy.api#documentation": "<p>\n      The ID of the Outpost.\n    </p>"
                    }
                },
                "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>"
                    }
                },
                "SiteArn": {
                    "target": "com.amazonaws.outposts#SiteArn"
                }
            },
            "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": 0,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S ]*$"
            }
        },
        "com.amazonaws.outposts#OutpostId": {
            "type": "string",
            "traits": {
                "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#OutpostIdOnly": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 20
                },
                "smithy.api#pattern": "^op-[a-f0-9]{17}$"
            }
        },
        "com.amazonaws.outposts#OutpostIdentifier": {
            "type": "string",
            "traits": {
                "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#CreateOrder"
                },
                {
                    "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#PaymentOption": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ALL_UPFRONT",
                        "name": "ALL_UPFRONT"
                    },
                    {
                        "value": "NO_UPFRONT",
                        "name": "NO_UPFRONT"
                    },
                    {
                        "value": "PARTIAL_UPFRONT",
                        "name": "PARTIAL_UPFRONT"
                    }
                ]
            }
        },
        "com.amazonaws.outposts#PaymentTerm": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "THREE_YEARS",
                        "name": "THREE_YEARS"
                    }
                ]
            }
        },
        "com.amazonaws.outposts#ResourceType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "OUTPOST",
                        "name": "OUTPOST"
                    }
                ]
            }
        },
        "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>"
                    }
                },
                "SiteArn": {
                    "target": "com.amazonaws.outposts#SiteArn"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Information about a site.</p>"
            }
        },
        "com.amazonaws.outposts#SiteArn": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the site.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 255
                },
                "smithy.api#pattern": "^arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:site/(os-[a-f0-9]{17})$"
            }
        },
        "com.amazonaws.outposts#SiteDescription": {
            "type": "string",
            "traits": {
                "smithy.api#documentation": "<p>The description of the site.</p>",
                "smithy.api#length": {
                    "min": 1,
                    "max": 1001
                },
                "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": "^(arn:aws([a-z-]+)?:outposts:[a-z\\d-]+:\\d{12}:site/)?(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#SkuCode": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 10
                },
                "smithy.api#pattern": "^OR-[A-Z0-9]{7}$"
            }
        },
        "com.amazonaws.outposts#Status": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S ]+$"
            }
        },
        "com.amazonaws.outposts#String": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 1000
                },
                "smithy.api#pattern": "^[\\S \\n]+$"
            }
        },
        "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": "^(\\d+)##(\\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>"
            }
        }
    }
}
