{
    "smithy": "1.0",
    "shapes": {
        "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The user does not have sufficient access to perform this action. </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 403
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#AccountId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 12,
                    "max": 12
                },
                "smithy.api#pattern": "^\\d{12}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#AdditionalDetails": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.migrationhubrefactorspaces#AdditionalDetailsKey"
            },
            "value": {
                "target": "com.amazonaws.migrationhubrefactorspaces#AdditionalDetailsValue"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#AdditionalDetailsKey": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 50
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#AdditionalDetailsValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApiGatewayEndpointType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "REGIONAL",
                        "name": "REGIONAL"
                    },
                    {
                        "value": "PRIVATE",
                        "name": "PRIVATE"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApiGatewayId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 10,
                    "max": 10
                },
                "smithy.api#pattern": "^[a-z0-9]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxyConfig": {
            "type": "structure",
            "members": {
                "ProxyUrl": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint URL of the API Gateway proxy. </p>"
                    }
                },
                "ApiGatewayId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayId",
                    "traits": {
                        "smithy.api#documentation": "<p>The resource ID of the API Gateway for the proxy. </p>"
                    }
                },
                "VpcLinkId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcLinkId",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>VpcLink</code> ID of the API Gateway proxy. </p>"
                    }
                },
                "NlbArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NlbArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Network Load Balancer configured by the API Gateway proxy. </p>"
                    }
                },
                "NlbName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NlbName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Network Load Balancer that is configured by the API Gateway proxy.\n    </p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of API Gateway endpoint created. </p>"
                    }
                },
                "StageName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#StageName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the API Gateway stage. The name defaults to <code>prod</code>. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A wrapper object holding the Amazon API Gateway proxy configuration. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxyInput": {
            "type": "structure",
            "members": {
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of endpoint to use for the API Gateway proxy. If no value is specified in\n      the request, the value is set to <code>REGIONAL</code> by default.</p>\n         <p>If the value is set to <code>PRIVATE</code> in the request, this creates a private API\n      endpoint that is isolated from the public internet. The private endpoint can only be accessed\n      by using Amazon Virtual Private Cloud (Amazon VPC) endpoints for Amazon API Gateway that\n      have been granted access. </p>"
                    }
                },
                "StageName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#StageName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the API Gateway stage. The name defaults to <code>prod</code>. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A wrapper object holding the Amazon API Gateway endpoint input. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxySummary": {
            "type": "structure",
            "members": {
                "ProxyUrl": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint URL of the API Gateway proxy. </p>"
                    }
                },
                "ApiGatewayId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayId",
                    "traits": {
                        "smithy.api#documentation": "<p>The resource ID of the API Gateway for the proxy. </p>"
                    }
                },
                "VpcLinkId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcLinkId",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>VpcLink</code> ID of the API Gateway proxy. </p>"
                    }
                },
                "NlbArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NlbArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Network Load Balancer configured by the API Gateway proxy. </p>"
                    }
                },
                "NlbName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NlbName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the Network Load Balancer that is configured by the API Gateway proxy.\n    </p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of API Gateway endpoint created. </p>"
                    }
                },
                "StageName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#StageName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the API Gateway stage. The name defaults to <code>prod</code>. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A wrapper object holding the Amazon API Gateway proxy summary. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApplicationId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 14,
                    "max": 14
                },
                "smithy.api#pattern": "^app-[0-9A-Za-z]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApplicationName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 3,
                    "max": 63
                },
                "smithy.api#pattern": "^(?!app-)[a-zA-Z0-9]+[a-zA-Z0-9-_ ]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApplicationState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    },
                    {
                        "value": "UPDATING",
                        "name": "UPDATING"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApplicationSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationSummary"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ApplicationSummary": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the application. </p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the application. </p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the application owner (which is always the same as\n      the environment owner account ID).</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the application creator. </p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the virtual private cloud (VPC). </p>"
                    }
                },
                "ProxyType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ProxyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The proxy type of the proxy created within the application. </p>"
                    }
                },
                "ApiGatewayProxy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxySummary",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint URL of the Amazon API Gateway proxy. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the application. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the application. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the application resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application is created. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The list of <code>ApplicationSummary</code> objects. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#Boolean": {
            "type": "boolean",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CidrBlock": {
            "type": "string"
        },
        "com.amazonaws.migrationhubrefactorspaces#CidrBlocks": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CidrBlock"
            },
            "traits": {
                "smithy.api#length": {
                    "min": 1
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ClientToken": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[\\x20-\\x7E]{1,64}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ConflictException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "ResourceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ResourceType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of resource. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Updating or deleting a resource can cause an inconsistent state.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateApplication": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateApplicationRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateApplicationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an Amazon Web Services Migration Hub Refactor Spaces application. The account that owns the environment also owns the\n      applications created inside the environment, regardless of the account that creates the\n      application. Refactor Spaces provisions an Amazon API Gateway, API Gateway VPC link, and\n        Network Load Balancer for the application proxy inside your account.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/environments/{EnvironmentIdentifier}/applications",
                    "code": 200
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateApplicationRequest": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name to use for the application. </p>",
                        "smithy.api#required": {}
                    }
                },
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the virtual private cloud (VPC).</p>",
                        "smithy.api#required": {}
                    }
                },
                "ProxyType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ProxyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The proxy type of the proxy created within the application. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ApiGatewayProxy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxyInput",
                    "traits": {
                        "smithy.api#documentation": "<p>A wrapper object holding the API Gateway endpoint type and stage name for the\n      proxy. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to assign to the application. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair.</p>"
                    }
                },
                "ClientToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n      request.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateApplicationResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the application.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the application. The format for this ARN is \n<code>arn:aws:refactor-spaces:<i>region</i>:<i>account-id</i>:<i>resource-type/resource-id</i>\n            </code>. For more information about ARNs, \nsee <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">\n                    Amazon Resource Names (ARNs)</a> in the \n                    <i>Amazon Web Services General Reference</i>.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the application owner (which is always the same as\n      the environment owner account ID).</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of application creator.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment in which the application is created.</p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the Amazon VPC. </p>"
                    }
                },
                "ProxyType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ProxyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The proxy type of the proxy created within the application. </p>"
                    }
                },
                "ApiGatewayProxy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxyInput",
                    "traits": {
                        "smithy.api#documentation": "<p>A wrapper object holding the API Gateway endpoint type and stage name for the\n      proxy. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the application. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the application. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application is created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateEnvironment": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateEnvironmentRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateEnvironmentResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an Amazon Web Services Migration Hub Refactor Spaces environment. The caller owns the environment resource, and all\n      Refactor Spaces applications, services, and routes created within the environment. They are referred\n      to as the <i>environment owner</i>. The environment owner has cross-account\n      visibility and control of Refactor Spaces resources that are added to the environment by other\n      accounts that the environment is shared with. When creating an environment, Refactor Spaces\n      provisions a transit gateway in your account.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/environments",
                    "code": 200
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateEnvironmentRequest": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the environment.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the environment.</p>"
                    }
                },
                "NetworkFabricType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NetworkFabricType",
                    "traits": {
                        "smithy.api#documentation": "<p>The network fabric type of the environment.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to assign to the environment. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair.</p>"
                    }
                },
                "ClientToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n      request.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateEnvironmentResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the environment.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the environment.</p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description of the environment.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "NetworkFabricType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NetworkFabricType",
                    "traits": {
                        "smithy.api#documentation": "<p>The network fabric type of the environment.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of environment owner.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the environment. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the created environment. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair..</p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment is created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateRoute": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateRouteRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateRouteResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an Amazon Web Services Migration Hub Refactor Spaces route. The account owner of the service resource is always the\n      environment owner, regardless of which account creates the route. Routes target a service in\n      the application. If an application does not have any routes, then the first route must be\n      created as a <code>DEFAULT</code>\n            <code>RouteType</code>.</p>\n         <p>When you create a route, Refactor Spaces configures the Amazon API Gateway to send traffic\n      to the target service as follows:</p>\n         <ul>\n            <li>\n               <p>If the service has a URL endpoint, and the endpoint resolves to a private IP address,\n          Refactor Spaces routes traffic using the API Gateway VPC link. </p>\n            </li>\n            <li>\n               <p>If the service has a URL endpoint, and the endpoint resolves to a public IP address,\n          Refactor Spaces routes traffic over the public internet.</p>\n            </li>\n            <li>\n               <p>If the service has an Lambda function endpoint, then Refactor Spaces\n          configures the Lambda function's resource policy to allow the application's\n            API Gateway to invoke the function.</p>\n            </li>\n         </ul>\n         <p>A one-time health check is performed on the service when the route is created. If the\n      health check fails, the route transitions to <code>FAILED</code>, and no traffic is sent to\n      the service.</p>\n         <p>For Lambda functions, the Lambda function state is checked. If the\n      function is not active, the function configuration is updated so that Lambda\n      resources are provisioned. If the Lambda state is <code>Failed</code>, then the\n      route creation fails. For more information, see the <a href=\"https://docs.aws.amazon.com/lambda/latest/dg/API_GetFunctionConfiguration.html#SSS-GetFunctionConfiguration-response-State\">GetFunctionConfiguration's State response parameter</a> in the <i>Lambda Developer Guide</i>.</p>\n         <p>For public URLs, a connection is opened to the public endpoint. If the URL is not\n      reachable, the health check fails. For private URLs, a target group is created and the target\n      group health check is run.</p>\n         <p>The <code>HealthCheckProtocol</code>, <code>HealthCheckPort</code>, and\n        <code>HealthCheckPath</code> are the same protocol, port, and path specified in the URL or\n      health URL, if used. All other settings use the default values, as described in <a href=\"https://docs.aws.amazon.com/elasticloadbalancing/latest/application/target-group-health-checks.html\">Health checks\n        for your target groups</a>. The health check is considered successful if at least one\n      target within the target group transitions to a healthy state.</p>\n         <p>Services can have HTTP or HTTPS URL endpoints. For HTTPS URLs, publicly-signed\n      certificates are supported. Private Certificate Authorities (CAs) are permitted only if the\n      CA's domain is publicly resolvable.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes",
                    "code": 200
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateRouteRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment in which the route is created.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application within which the route is being created.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ServiceIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the service in which the route is created. Traffic that matches this route is\n      forwarded to this service.</p>",
                        "smithy.api#required": {}
                    }
                },
                "RouteType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteType",
                    "traits": {
                        "smithy.api#documentation": "<p>The route type of the route. <code>DEFAULT</code> indicates that all traffic that does not\n      match another route is forwarded to the default route. Applications must have a default route\n      before any other routes can be created. <code>URI_PATH</code> indicates a route that is based\n      on a URI path.</p>",
                        "smithy.api#required": {}
                    }
                },
                "UriPathRoute": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UriPathRouteInput",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the URI path route type. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to assign to the route. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair.. </p>"
                    }
                },
                "ClientToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n      request.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateRouteResponse": {
            "type": "structure",
            "members": {
                "RouteId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the route.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the route. The format for this ARN is \n<code>arn:aws:refactor-spaces:<i>region</i>:<i>account-id</i>:<i>resource-type/resource-id</i>\n            </code>. For more information about ARNs, \nsee <a href=\"https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html\">\n                    Amazon Resource Names (ARNs)</a> in the \n                    <i>Amazon Web Services General Reference</i>.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route creator.</p>"
                    }
                },
                "RouteType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteType",
                    "traits": {
                        "smithy.api#documentation": "<p>The route type of the route.</p>"
                    }
                },
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of service in which the route is created. Traffic that matches this route is\n      forwarded to this service.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application in which the route is created.</p>"
                    }
                },
                "UriPathRoute": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UriPathRouteInput",
                    "traits": {
                        "smithy.api#documentation": "<p>onfiguration for the URI path route type. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the route. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the created route. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route is created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateService": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateServiceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#CreateServiceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an Amazon Web Services Migration Hub Refactor Spaces service. The account owner of the service is always the\n      environment owner, regardless of which account in the environment creates the service.\n      Services have either a URL endpoint in a virtual private cloud (VPC), or a Lambda\n      function endpoint.</p>\n         <important>\n            <p>If an Amazon Web Services resource is launched in a service VPC, and you want it to be\n        accessible to all of an environment’s services with VPCs and routes, apply the\n          <code>RefactorSpacesSecurityGroup</code> to the resource. Alternatively, to add more\n        cross-account constraints, apply your own security group.</p>\n         </important>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/services",
                    "code": 200
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateServiceRequest": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the service.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the service.</p>"
                    }
                },
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment in which the service is created.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application which the service is created.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the VPC.</p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of endpoint to use for the service. The type can be a URL in a VPC or an Lambda function.</p>",
                        "smithy.api#required": {}
                    }
                },
                "UrlEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UrlEndpointInput",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the URL endpoint type.</p>"
                    }
                },
                "LambdaEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointInput",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the Lambda endpoint type.</p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to assign to the service. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair.. </p>"
                    }
                },
                "ClientToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ClientToken",
                    "traits": {
                        "smithy.api#documentation": "<p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the\n      request.</p>",
                        "smithy.api#idempotencyToken": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#CreateServiceResponse": {
            "type": "structure",
            "members": {
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service.</p>"
                    }
                },
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the service.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the service.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service creator.</p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the created service.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application that the created service belongs to. </p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the VPC. </p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint type of the service.</p>"
                    }
                },
                "UrlEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UrlEndpointInput",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the URL endpoint type. </p>"
                    }
                },
                "LambdaEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointInput",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the Lambda endpoint type.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the service. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the created service. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair.. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service is created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteApplication": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteApplicationRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteApplicationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an Amazon Web Services Migration Hub Refactor Spaces application. Before you can delete an application, you must first\n      delete any services or routes within the application.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteApplicationRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteApplicationResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the application.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the application.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application’s environment.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the application. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment was last updated. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironment": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironmentRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironmentResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an Amazon Web Services Migration Hub Refactor Spaces environment. Before you can delete an environment, you must first\n      delete any applications and services within the environment.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/environments/{EnvironmentIdentifier}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironmentRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironmentResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the environment.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the environment.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the environment. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment was last updated. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes the resource policy set for the environment. </p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/resourcepolicy/{Identifier}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicyRequest": {
            "type": "structure",
            "members": {
                "Identifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourcePolicyIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Amazon Resource Name (ARN) of the resource associated with the policy. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteRoute": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteRouteRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteRouteResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an Amazon Web Services Migration Hub Refactor Spaces route.</p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes/{RouteIdentifier}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteRouteRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment to delete the route from.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application to delete the route from.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "RouteIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the route to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteRouteResponse": {
            "type": "structure",
            "members": {
                "RouteId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the route to delete.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the route.</p>"
                    }
                },
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the service that the route belongs to.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application that the route belongs to.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the route. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route was last updated. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteService": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteServiceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#DeleteServiceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an Amazon Web Services Migration Hub Refactor Spaces service. </p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/services/{ServiceIdentifier}",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteServiceRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment that the service is in.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>Deletes a Refactor Spaces service.</p>\n         <note>\n            <p>The <code>RefactorSpacesSecurityGroup</code> security group must be removed from all\n        Amazon Web Services resources in the virtual private cloud (VPC) prior to deleting a service with a URL\n        endpoint in a VPC.</p>\n         </note>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ServiceIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the service to delete.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#DeleteServiceResponse": {
            "type": "structure",
            "members": {
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service.</p>"
                    }
                },
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the service.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the service.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application that the service is in.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the service. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service was last updated. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#Description": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 256
                },
                "smithy.api#pattern": "^[a-zA-Z0-9-_\\s\\.\\!\\*\\#\\@\\']+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#Ec2TagValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 255
                },
                "smithy.api#pattern": "^.*$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 14,
                    "max": 14
                },
                "smithy.api#pattern": "^env-[0-9A-Za-z]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 3,
                    "max": 63
                },
                "smithy.api#pattern": "^(?!env-)[a-zA-Z0-9]+[a-zA-Z0-9-_ ]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentSummary"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentSummary": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the environment. </p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the environment. </p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description of the environment. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "NetworkFabricType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NetworkFabricType",
                    "traits": {
                        "smithy.api#documentation": "<p>The network fabric type of the environment. </p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the environment owner.</p>"
                    }
                },
                "TransitGatewayId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TransitGatewayId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the transit gateway set up by the environment. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the environment. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the environment. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the environment resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment is created. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The summary information for environments as a response to <code>ListEnvironments</code>.\n    </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentVpc": {
            "type": "structure",
            "members": {
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the VPC. </p>"
                    }
                },
                "AccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the virtual private cloud (VPC) owner. </p>"
                    }
                },
                "CidrBlocks": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#CidrBlocks",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of Amazon Virtual Private Cloud (Amazon VPC) CIDR blocks. </p>"
                    }
                },
                "VpcName": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Ec2TagValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the VPC at the time it is added to the environment. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the VPC was last updated by the environment. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the VPC is first added to the environment. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Provides summary information for the <code>EnvironmentVpc</code> resource as a response to\n        <code>ListEnvironmentVpc</code>.</p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#EnvironmentVpcs": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentVpc"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ErrorCode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "INVALID_RESOURCE_STATE",
                        "name": "INVALID_RESOURCE_STATE"
                    },
                    {
                        "value": "RESOURCE_LIMIT_EXCEEDED",
                        "name": "RESOURCE_LIMIT_EXCEEDED"
                    },
                    {
                        "value": "RESOURCE_CREATION_FAILURE",
                        "name": "RESOURCE_CREATION_FAILURE"
                    },
                    {
                        "value": "RESOURCE_UPDATE_FAILURE",
                        "name": "RESOURCE_UPDATE_FAILURE"
                    },
                    {
                        "value": "SERVICE_ENDPOINT_HEALTH_CHECK_FAILURE",
                        "name": "SERVICE_ENDPOINT_HEALTH_CHECK_FAILURE"
                    },
                    {
                        "value": "RESOURCE_DELETION_FAILURE",
                        "name": "RESOURCE_DELETION_FAILURE"
                    },
                    {
                        "value": "RESOURCE_RETRIEVAL_FAILURE",
                        "name": "RESOURCE_RETRIEVAL_FAILURE"
                    },
                    {
                        "value": "RESOURCE_IN_USE",
                        "name": "RESOURCE_IN_USE"
                    },
                    {
                        "value": "RESOURCE_NOT_FOUND",
                        "name": "RESOURCE_NOT_FOUND"
                    },
                    {
                        "value": "STATE_TRANSITION_FAILURE",
                        "name": "STATE_TRANSITION_FAILURE"
                    },
                    {
                        "value": "REQUEST_LIMIT_EXCEEDED",
                        "name": "REQUEST_LIMIT_EXCEEDED"
                    },
                    {
                        "value": "NOT_AUTHORIZED",
                        "name": "NOT_AUTHORIZED"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ErrorMessage": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 0,
                    "max": 255
                },
                "smithy.api#pattern": "^[\\p{Alnum}\\p{Punct}\\p{Blank}]*$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ErrorResourceType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ENVIRONMENT",
                        "name": "ENVIRONMENT"
                    },
                    {
                        "value": "APPLICATION",
                        "name": "APPLICATION"
                    },
                    {
                        "value": "ROUTE",
                        "name": "ROUTE"
                    },
                    {
                        "value": "SERVICE",
                        "name": "SERVICE"
                    },
                    {
                        "value": "TRANSIT_GATEWAY",
                        "name": "TRANSIT_GATEWAY"
                    },
                    {
                        "value": "TRANSIT_GATEWAY_ATTACHMENT",
                        "name": "TRANSIT_GATEWAY_ATTACHMENT"
                    },
                    {
                        "value": "API_GATEWAY",
                        "name": "API_GATEWAY"
                    },
                    {
                        "value": "NLB",
                        "name": "NLB"
                    },
                    {
                        "value": "TARGET_GROUP",
                        "name": "TARGET_GROUP"
                    },
                    {
                        "value": "LOAD_BALANCER_LISTENER",
                        "name": "LOAD_BALANCER_LISTENER"
                    },
                    {
                        "value": "VPC_LINK",
                        "name": "VPC_LINK"
                    },
                    {
                        "value": "LAMBDA",
                        "name": "LAMBDA"
                    },
                    {
                        "value": "VPC",
                        "name": "VPC"
                    },
                    {
                        "value": "SUBNET",
                        "name": "SUBNET"
                    },
                    {
                        "value": "ROUTE_TABLE",
                        "name": "ROUTE_TABLE"
                    },
                    {
                        "value": "SECURITY_GROUP",
                        "name": "SECURITY_GROUP"
                    },
                    {
                        "value": "VPC_ENDPOINT_SERVICE_CONFIGURATION",
                        "name": "VPC_ENDPOINT_SERVICE_CONFIGURATION"
                    },
                    {
                        "value": "RESOURCE_SHARE",
                        "name": "RESOURCE_SHARE"
                    },
                    {
                        "value": "IAM_ROLE",
                        "name": "IAM_ROLE"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ErrorResponse": {
            "type": "structure",
            "members": {
                "Code": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorCode",
                    "traits": {
                        "smithy.api#documentation": "<p>The error code associated with the error. </p>"
                    }
                },
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>The message associated with the error. </p>"
                    }
                },
                "AccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the resource owner. </p>"
                    }
                },
                "ResourceIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource. </p>"
                    }
                },
                "ResourceType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResourceType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of resource. </p>"
                    }
                },
                "AdditionalDetails": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AdditionalDetails",
                    "traits": {
                        "smithy.api#documentation": "<p>Additional details about the error. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Error associated with a resource returned for a Get or List resource response. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetApplication": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetApplicationRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetApplicationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets an Amazon Web Services Migration Hub Refactor Spaces application.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetApplicationRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetApplicationResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the application.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the application.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the application owner (which is always the same as\n      the environment owner account ID).</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the application creator. </p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application.</p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the virtual private cloud (VPC). </p>"
                    }
                },
                "ProxyType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ProxyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The proxy type of the proxy created within the application. </p>"
                    }
                },
                "ApiGatewayProxy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApiGatewayProxyConfig",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint URL of the API Gateway proxy. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the application. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the application. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the application resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the application is created. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetEnvironment": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetEnvironmentRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetEnvironmentResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets an Amazon Web Services Migration Hub Refactor Spaces environment.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetEnvironmentRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetEnvironmentResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the environment.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the environment.</p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the environment. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "NetworkFabricType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NetworkFabricType",
                    "traits": {
                        "smithy.api#documentation": "<p>The network fabric type of the environment. </p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the environment owner.</p>"
                    }
                },
                "TransitGatewayId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TransitGatewayId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the transit gateway set up by the environment. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the environment. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags to assign to the environment. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the environment resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the environment is created. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets the resource-based permission policy that is set for the given environment. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/resourcepolicy/{Identifier}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicyRequest": {
            "type": "structure",
            "members": {
                "Identifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourcePolicyIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource associated with the policy. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicyResponse": {
            "type": "structure",
            "members": {
                "Policy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#PolicyString",
                    "traits": {
                        "smithy.api#documentation": "<p>A JSON-formatted string for an Amazon Web Services resource-based policy. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetRoute": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetRouteRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetRouteResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets an Amazon Web Services Migration Hub Refactor Spaces route.</p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes/{RouteIdentifier}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetRouteRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "RouteIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the route.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetRouteResponse": {
            "type": "structure",
            "members": {
                "RouteId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the route.</p>\n         <p>\n            <b>DEFAULT</b>: All traffic that does not match another route is\n      forwarded to the default route. Applications must have a default route before any other routes\n      can be created.</p>\n         <p>\n            <b>URI_PATH</b>: A route that is based on a URI path.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the route.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route creator.</p>"
                    }
                },
                "RouteType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of route.</p>"
                    }
                },
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application that the route belongs to. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>Unique identifier of the environment.</p>"
                    }
                },
                "SourcePath": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UriPath",
                    "traits": {
                        "smithy.api#documentation": "<p>The path to use to match traffic. Paths must start with <code>/</code> and are relative to\n      the base of the application. </p>"
                    }
                },
                "Methods": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#HttpMethods",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of HTTP methods to match. An empty list matches all values. If a method is present,\n      only HTTP requests using that method are forwarded to this route’s service. </p>"
                    }
                },
                "IncludeChildPaths": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Boolean",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether to match all subpaths of the given source path. If this value is\n        <code>false</code>, requests must match the source path exactly before they are forwarded to\n      this route's service. </p>"
                    }
                },
                "PathResourceToId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#PathResourceToId",
                    "traits": {
                        "smithy.api#documentation": "<p>A mapping of Amazon API Gateway path resources to resource IDs. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the route. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the route. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the route resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp of when the route is created. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetService": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetServiceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#GetServiceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets an Amazon Web Services Migration Hub Refactor Spaces service. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/services/{ServiceIdentifier}",
                    "code": 200
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetServiceRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ServiceIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the service.</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#GetServiceResponse": {
            "type": "structure",
            "members": {
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service.</p>"
                    }
                },
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the service.</p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the service.</p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service creator.</p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>The description of the service. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment.</p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application.</p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the virtual private cloud (VPC). </p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint type of the service.</p>"
                    }
                },
                "UrlEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UrlEndpointConfig",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the URL endpoint type.</p>\n         <p>The <b>Url</b> isthe URL of the endpoint type.</p>\n         <p>The <b>HealthUrl</b> is the health check URL of the endpoint\n      type. </p>"
                    }
                },
                "LambdaEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointConfig",
                    "traits": {
                        "smithy.api#documentation": "<p>The configuration for the Lambda endpoint type.</p>\n         <p>The <b>Arn</b> is the Amazon Resource Name (ARN) of the Lambda function associated with this service. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the service. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the service. A tag is a label that you assign to an Amazon Web Services resource. Each tag consists of a key-value pair. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the service resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>The timestamp of when the service is created.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#HttpMethod": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "DELETE",
                        "name": "DELETE"
                    },
                    {
                        "value": "GET",
                        "name": "GET"
                    },
                    {
                        "value": "HEAD",
                        "name": "HEAD"
                    },
                    {
                        "value": "OPTIONS",
                        "name": "OPTIONS"
                    },
                    {
                        "value": "PATCH",
                        "name": "PATCH"
                    },
                    {
                        "value": "POST",
                        "name": "POST"
                    },
                    {
                        "value": "PUT",
                        "name": "PUT"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#HttpMethods": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#HttpMethod"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#InternalServerException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An unexpected error occurred while processing the request.</p>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#InvalidResourcePolicyException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The resource policy is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#LambdaArn": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "^arn:(aws[a-zA-Z-]*)?:lambda:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\\d{1}:\\d{12}:function:[a-zA-Z0-9-_]+(:\n(\\$LATEST|[a-zA-Z0-9-_]+))?$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointConfig": {
            "type": "structure",
            "members": {
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Lambda endpoint. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The configuration for the Lambda endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointInput": {
            "type": "structure",
            "members": {
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Lambda endpoint. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The input for the Lambda endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointSummary": {
            "type": "structure",
            "members": {
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the Lambda endpoint. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The summary for the Lambda endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListApplications": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListApplicationsRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListApplicationsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all the Amazon Web Services Migration Hub Refactor Spaces applications within an environment. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults",
                    "items": "ApplicationSummaryList"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListApplicationsRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining\n      results, make another call with the returned <code>nextToken</code> value.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListApplicationsResponse": {
            "type": "structure",
            "members": {
                "ApplicationSummaryList": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of <code>ApplicationSummary</code> objects. </p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcs": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcsRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all Amazon Web Services Migration Hub Refactor Spaces service virtual private clouds (VPCs) that are part of the\n      environment. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/vpcs",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults",
                    "items": "EnvironmentVpcList"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcsRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining\n      results, make another call with the returned <code>nextToken</code> value.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcsResponse": {
            "type": "structure",
            "members": {
                "EnvironmentVpcList": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentVpcs",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of <code>EnvironmentVpc</code> objects. </p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironments": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentsRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists Amazon Web Services Migration Hub Refactor Spaces environments owned by a caller account or shared with the caller\n      account. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults",
                    "items": "EnvironmentSummaryList"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentsRequest": {
            "type": "structure",
            "members": {
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining\n      results, make another call with the returned <code>nextToken</code> value.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentsResponse": {
            "type": "structure",
            "members": {
                "EnvironmentSummaryList": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of <code>EnvironmentSummary</code> objects. </p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListRoutes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListRoutesRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListRoutesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all the Amazon Web Services Migration Hub Refactor Spaces routes within an application. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/routes",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults",
                    "items": "RouteSummaryList"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListRoutesRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining\n      results, make another call with the returned <code>nextToken</code> value.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListRoutesResponse": {
            "type": "structure",
            "members": {
                "RouteSummaryList": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of <code>RouteSummary</code> objects. </p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListServices": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListServicesRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListServicesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ConflictException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all the Amazon Web Services Migration Hub Refactor Spaces services within an application. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/environments/{EnvironmentIdentifier}/applications/{ApplicationIdentifier}/services",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults",
                    "items": "ServiceSummaryList"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListServicesRequest": {
            "type": "structure",
            "members": {
                "EnvironmentIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the environment. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "ApplicationIdentifier": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the application. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>",
                        "smithy.api#httpQuery": "nextToken"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#MaxResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to return with a single call. To retrieve the remaining\n      results, make another call with the returned <code>nextToken</code> value.</p>",
                        "smithy.api#httpQuery": "maxResults"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListServicesResponse": {
            "type": "structure",
            "members": {
                "ServiceSummaryList": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceSummaries",
                    "traits": {
                        "smithy.api#documentation": "<p> The list of <code>ServiceSummary</code> objects. </p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token for the next page of results.</p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListTagsForResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListTagsForResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ListTagsForResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the tags of a resource. The caller account must be the same as the resource’s\n        <code>OwnerAccountId</code>. Listing tags in other accounts is not supported. </p>",
                "smithy.api#http": {
                    "method": "GET",
                    "uri": "/tags/{ResourceArn}"
                },
                "smithy.api#readonly": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListTagsForResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ListTagsForResourceResponse": {
            "type": "structure",
            "members": {
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of tags assigned to the resource. </p>"
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#MaxResults": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1,
                    "max": 100
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#NetworkFabricType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "TRANSIT_GATEWAY",
                        "name": "TRANSIT_GATEWAY"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#NextToken": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "^[a-zA-Z0-9/\\+\\=]{0,2048}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#NlbArn": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 20,
                    "max": 2048
                },
                "smithy.api#pattern": "^arn:aws:elasticloadbalancing:[a-zA-Z0-9\\-]+:\\w{12}:[a-zA-Z_0-9+=,.@\\-_/]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#NlbName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 32
                },
                "smithy.api#pattern": "^(?!internal-)[a-zA-Z0-9]+[a-zA-Z0-9-_ ]+.*[^-]$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PathResourceToId": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.migrationhubrefactorspaces#PathResourceToIdKey"
            },
            "value": {
                "target": "com.amazonaws.migrationhubrefactorspaces#PathResourceToIdValue"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PathResourceToIdKey": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PathResourceToIdValue": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 10,
                    "max": 10
                },
                "smithy.api#pattern": "^[a-z0-9]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PolicyString": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 300000
                },
                "smithy.api#pattern": "^.*\\S.*$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ProxyType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "API_GATEWAY",
                        "name": "API_GATEWAY"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InvalidResourcePolicyException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ThrottlingException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Attaches a resource-based permission policy to the Amazon Web Services Migration Hub Refactor Spaces environment. The policy\n      must contain the same actions and condition statements as the\n        <code>arn:aws:ram::aws:permission/AWSRAMDefaultPermissionRefactorSpacesEnvironment</code>\n      permission in Resource Access Manager. The policy must not contain new lines or blank lines.\n    </p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/resourcepolicy",
                    "code": 200
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicyRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource to which the policy is being attached.\n    </p>",
                        "smithy.api#required": {}
                    }
                },
                "Policy": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#PolicyString",
                    "traits": {
                        "smithy.api#documentation": "<p>A JSON-formatted string for an Amazon Web Services resource-based policy. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.migrationhubrefactorspaces#RefactorSpaces": {
            "type": "service",
            "traits": {
                "aws.api#service": {
                    "sdkId": "Migration Hub Refactor Spaces",
                    "arnNamespace": "refactor-spaces"
                },
                "aws.auth#sigv4": {
                    "name": "refactor-spaces"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#cors": {
                    "additionalExposedHeaders": [
                        "x-amzn-errortype",
                        "x-amzn-requestid",
                        "x-amzn-errormessage",
                        "x-amzn-trace-id",
                        "x-amz-apigw-id",
                        "date"
                    ],
                    "additionalAllowedHeaders": [
                        "content-type"
                    ],
                    "origin": "*"
                },
                "smithy.api#documentation": "<fullname>Amazon Web Services Migration Hub Refactor Spaces</fullname>\n    \n         <p>This API reference provides descriptions, syntax, and other details about each of the\n      actions and data types for Amazon Web Services Migration Hub Refactor Spaces (Refactor Spaces). The topic for each action shows the API\n      request parameters and the response. Alternatively, you can use one of the Amazon Web Services SDKs to\n      access an API that is tailored to the programming language or platform that you're using. For\n      more information, see <a href=\"https://aws.amazon.com/tools/#SDKs\">Amazon Web Services SDKs</a>.</p>\n         <p>To share Refactor Spaces environments with other Amazon Web Services accounts or with Organizations\n      and their OUs, use Resource Access Manager's <code>CreateResourceShare</code> API. See <a href=\"https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html\">CreateResourceShare</a> in the <i>Amazon Web Services RAM API Reference</i>.</p>",
                "smithy.api#title": "AWS Migration Hub Refactor Spaces"
            },
            "version": "2021-10-26",
            "operations": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#CreateApplication"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#CreateEnvironment"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#CreateRoute"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#CreateService"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#DeleteApplication"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#DeleteEnvironment"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#DeleteResourcePolicy"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#DeleteRoute"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#DeleteService"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#GetApplication"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#GetEnvironment"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#GetResourcePolicy"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#GetRoute"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#GetService"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListApplications"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironments"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListEnvironmentVpcs"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListRoutes"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListServices"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ListTagsForResource"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#PutResourcePolicy"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagResource"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UntagResource"
                }
            ]
        },
        "com.amazonaws.migrationhubrefactorspaces#ResourceArn": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 20,
                    "max": 2048
                },
                "smithy.api#pattern": "^arn:aws:refactor-spaces:[a-zA-Z0-9\\-]+:\\w{12}:[a-zA-Z_0-9+=,.@\\-_/]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ResourceIdentifier": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 3,
                    "max": 63
                },
                "smithy.api#pattern": "(^(env|svc|pxy|rte|app)-([0-9A-Za-z]{10}$))"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "ResourceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ResourceType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of resource. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request references a resource that does not exist. </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ResourcePolicyIdentifier": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 20,
                    "max": 2048
                },
                "smithy.api#pattern": "^arn:aws:refactor-spaces:[a-zA-Z0-9\\-]+:\\w{12}:[a-zA-Z_0-9+=,.@\\-_/]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RetryAfterSeconds": {
            "type": "integer"
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteActivationState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 14,
                    "max": 14
                },
                "smithy.api#pattern": "^rte-[0-9A-Za-z]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    },
                    {
                        "value": "UPDATING",
                        "name": "UPDATING"
                    },
                    {
                        "value": "INACTIVE",
                        "name": "INACTIVE"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#RouteSummary"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteSummary": {
            "type": "structure",
            "members": {
                "RouteId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the route. </p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the route. </p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the route creator. </p>"
                    }
                },
                "RouteType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteType",
                    "traits": {
                        "smithy.api#documentation": "<p>The route type of the route. </p>"
                    }
                },
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service. </p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "SourcePath": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UriPath",
                    "traits": {
                        "smithy.api#documentation": "<p>The path to use to match traffic. Paths must start with <code>/</code> and are relative to\n      the base of the application.</p>"
                    }
                },
                "Methods": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#HttpMethods",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of HTTP methods to match. An empty list matches all values. If a method is present,\n      only HTTP requests using that method are forwarded to this route’s service. </p>"
                    }
                },
                "IncludeChildPaths": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Boolean",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether to match all subpaths of the given source path. If this value is\n        <code>false</code>, requests must match the source path exactly before they are forwarded to\n      this route's service.</p>"
                    }
                },
                "PathResourceToId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#PathResourceToId",
                    "traits": {
                        "smithy.api#documentation": "<p>A mapping of Amazon API Gateway path resources to resource IDs. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the route. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the route. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the route resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the route is created. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The summary information for the routes as a response to <code>ListRoutes</code>. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#RouteType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "DEFAULT",
                        "name": "DEFAULT"
                    },
                    {
                        "value": "URI_PATH",
                        "name": "URI_PATH"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceEndpointType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "LAMBDA",
                        "name": "LAMBDA"
                    },
                    {
                        "value": "URL",
                        "name": "URL"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 14,
                    "max": 14
                },
                "smithy.api#pattern": "^svc-[0-9A-Za-z]{10}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 3,
                    "max": 63
                },
                "smithy.api#pattern": "^(?!svc-)[a-zA-Z0-9]+[a-zA-Z0-9-_ ]+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceQuotaExceededException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "ResourceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the resource. </p>",
                        "smithy.api#required": {}
                    }
                },
                "ResourceType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of resource. </p>",
                        "smithy.api#required": {}
                    }
                },
                "QuotaCode": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Service quota requirement to identify originating quota. Reached throttling quota\n      exception. </p>"
                    }
                },
                "ServiceCode": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Service quota requirement to identify originating service. Reached throttling quota\n      exception service code. </p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The request would cause a service quota to be exceeded. </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 402
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATING",
                        "name": "CREATING"
                    },
                    {
                        "value": "ACTIVE",
                        "name": "ACTIVE"
                    },
                    {
                        "value": "DELETING",
                        "name": "DELETING"
                    },
                    {
                        "value": "FAILED",
                        "name": "FAILED"
                    }
                ]
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceSummaries": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#ServiceSummary"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ServiceSummary": {
            "type": "structure",
            "members": {
                "ServiceId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the service. </p>"
                    }
                },
                "Name": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the service. </p>"
                    }
                },
                "Arn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the service. </p>"
                    }
                },
                "OwnerAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service owner.</p>"
                    }
                },
                "CreatedByAccountId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#AccountId",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Web Services account ID of the service creator. </p>"
                    }
                },
                "Description": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Description",
                    "traits": {
                        "smithy.api#documentation": "<p>A description of the service. </p>"
                    }
                },
                "EnvironmentId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#EnvironmentId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the environment. </p>"
                    }
                },
                "ApplicationId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ApplicationId",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique identifier of the application. </p>"
                    }
                },
                "VpcId": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#VpcId",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of the virtual private cloud (VPC). </p>"
                    }
                },
                "EndpointType": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceEndpointType",
                    "traits": {
                        "smithy.api#documentation": "<p>The endpoint type of the service. </p>"
                    }
                },
                "UrlEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UrlEndpointSummary",
                    "traits": {
                        "smithy.api#documentation": "<p>The summary of the configuration for the URL endpoint type. </p>"
                    }
                },
                "LambdaEndpoint": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#LambdaEndpointSummary",
                    "traits": {
                        "smithy.api#documentation": "<p>A summary of the configuration for the Lambda endpoint type. </p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ServiceState",
                    "traits": {
                        "smithy.api#documentation": "<p>The current state of the service. </p>"
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The tags assigned to the service. </p>"
                    }
                },
                "Error": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ErrorResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Any error associated with the service resource. </p>"
                    }
                },
                "LastUpdatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service was last updated. </p>"
                    }
                },
                "CreatedTime": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Timestamp",
                    "traits": {
                        "smithy.api#documentation": "<p>A timestamp that indicates when the service is created. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A summary for the service as a response to <code>ListServices</code>. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#StageName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 128
                },
                "smithy.api#pattern": "^[-a-zA-Z0-9_]*$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#String": {
            "type": "string"
        },
        "com.amazonaws.migrationhubrefactorspaces#TagKeys": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.migrationhubrefactorspaces#String"
            },
            "traits": {
                "smithy.api#sensitive": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#TagMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.migrationhubrefactorspaces#String",
                "traits": {
                    "smithy.api#length": {
                        "min": 1,
                        "max": 128
                    },
                    "smithy.api#pattern": "^(?!aws:).+"
                }
            },
            "value": {
                "target": "com.amazonaws.migrationhubrefactorspaces#String",
                "traits": {
                    "smithy.api#length": {
                        "max": 256
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "A collection of up to 50 unique tags",
                "smithy.api#length": {
                    "max": 50
                },
                "smithy.api#sensitive": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#TagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#TagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#TagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes the tags of a given resource. Tags are metadata which can be used to manage a\n      resource. To tag a resource, the caller account must be the same as the resource’s\n        <code>OwnerAccountId</code>. Tagging resources in other accounts is not supported.</p>\n         <note>\n            <p>Amazon Web Services Migration Hub Refactor Spaces does not propagate tags to orchestrated resources, such as an\n        environment’s transit gateway.</p>\n         </note>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/tags/{ResourceArn}"
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#TagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource</p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The new or modified tags for the resource. </p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#TagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.migrationhubrefactorspaces#ThrottlingException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "QuotaCode": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Service quota requirement to identify originating quota. Reached throttling quota\n      exception. </p>"
                    }
                },
                "ServiceCode": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>Service quota requirement to identify originating service. Reached throttling quota\n      exception service code. </p>"
                    }
                },
                "RetryAfterSeconds": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RetryAfterSeconds",
                    "traits": {
                        "smithy.api#documentation": "<p>The number of seconds to wait before retrying. </p>",
                        "smithy.api#httpHeader": "Retry-After"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Request was denied because the request was throttled. </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 429
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#Timestamp": {
            "type": "timestamp"
        },
        "com.amazonaws.migrationhubrefactorspaces#TransitGatewayId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 21,
                    "max": 21
                },
                "smithy.api#pattern": "^tgw-[-a-f0-9]{17}$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UntagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.migrationhubrefactorspaces#UntagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.migrationhubrefactorspaces#UntagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#InternalServerException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.migrationhubrefactorspaces#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Adds to or modifies the tags of the given resource. Tags are metadata which can be used to\n      manage a resource. To untag a resource, the caller account must be the same as the resource’s\n        <code>OwnerAccountId</code>. Untagging resources across accounts is not supported. </p>",
                "smithy.api#http": {
                    "method": "DELETE",
                    "uri": "/tags/{ResourceArn}"
                },
                "smithy.api#idempotent": {}
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UntagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource. </p>",
                        "smithy.api#httpLabel": {},
                        "smithy.api#required": {}
                    }
                },
                "TagKeys": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#TagKeys",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of keys of the tags to be removed from the resource. </p>",
                        "smithy.api#httpQuery": "tagKeys",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UntagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.migrationhubrefactorspaces#Uri": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "^https?://[-a-zA-Z0-9+\\x38@#/%?=~_|!:,.;]*[-a-zA-Z0-9+\\x38@#/%=~_|]$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UriPath": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 2048
                },
                "smithy.api#pattern": "^(/[a-zA-Z0-9._-]+)+$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UriPathRouteInput": {
            "type": "structure",
            "members": {
                "SourcePath": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#UriPath",
                    "traits": {
                        "smithy.api#documentation": "<p>The path to use to match traffic. Paths must start with <code>/</code> and are relative to\n      the base of the application.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ActivationState": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#RouteActivationState",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether traffic is forwarded to this route’s service after the route is created.\n    </p>",
                        "smithy.api#required": {}
                    }
                },
                "Methods": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#HttpMethods",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of HTTP methods to match. An empty list matches all values. If a method is present,\n      only HTTP requests using that method are forwarded to this route’s service. </p>"
                    }
                },
                "IncludeChildPaths": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Boolean",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether to match all subpaths of the given source path. If this value is\n        <code>false</code>, requests must match the source path exactly before they are forwarded to\n      this route's service. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The configuration for the URI path route type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UrlEndpointConfig": {
            "type": "structure",
            "members": {
                "Url": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The HTTP URL endpoint. </p>"
                    }
                },
                "HealthUrl": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The health check URL of the URL endpoint type. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The configuration for the URL endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UrlEndpointInput": {
            "type": "structure",
            "members": {
                "Url": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The URL to route traffic to. The URL must be an <a href=\"https://datatracker.ietf.org/doc/html/rfc3986\">rfc3986-formatted URL</a>. If the\n      host is a domain name, the name must be resolvable over the public internet. If the scheme is\n        <code>https</code>, the top level domain of the host must be listed in the <a href=\"https://www.iana.org/domains/root/db\">IANA root zone database</a>. </p>",
                        "smithy.api#required": {}
                    }
                },
                "HealthUrl": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The health check URL of the URL endpoint type. If the URL is a public endpoint, the\n        <code>HealthUrl</code> must also be a public endpoint. If the URL is a private endpoint\n      inside a virtual private cloud (VPC), the health URL must also be a private endpoint, and the\n      host must be the same as the URL. </p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The configuration for the URL endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#UrlEndpointSummary": {
            "type": "structure",
            "members": {
                "Url": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p> The URL to route traffic to. The URL must be an <a href=\"https://datatracker.ietf.org/doc/html/rfc3986\">rfc3986-formatted URL</a>. If the\n      host is a domain name, the name must be resolvable over the public internet. If the scheme is\n        <code>https</code>, the top level domain of the host must be listed in the <a href=\"https://www.iana.org/domains/root/db\">IANA root zone database</a>. </p>"
                    }
                },
                "HealthUrl": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#Uri",
                    "traits": {
                        "smithy.api#documentation": "<p>The health check URL of the URL endpoint type. If the URL is a public endpoint, the\n        <code>HealthUrl</code> must also be a public endpoint. If the URL is a private endpoint\n      inside a virtual private cloud (VPC), the health URL must also be a private endpoint, and the\n      host must be the same as the URL.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The summary of the configuration for the URL endpoint type. </p>"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#ValidationException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.migrationhubrefactorspaces#String",
                    "traits": {
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The input does not satisfy the constraints specified by an Amazon Web Service.\n    </p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#VpcId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 12,
                    "max": 21
                },
                "smithy.api#pattern": "^vpc-[-a-f0-9]{8}([-a-f0-9]{9})?$"
            }
        },
        "com.amazonaws.migrationhubrefactorspaces#VpcLinkId": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 10,
                    "max": 10
                },
                "smithy.api#pattern": "^[a-z0-9]{10}$"
            }
        }
    }
}
